強化学習とDeep Q-Networkを簡単に解説してみた | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

強化学習とDeep Q-Networkを簡単に解説してみた

こんにちは、プロダクト開発チームの牧です。

今回はゲームAIやチャットボットなどに応用できる強化学習をご紹介します。
一般的に指す機械学習は大量の統計データから入力に対して出力の予測を行うものですが、
強化学習では多くの試行を行う中で入力に対する出力を最適化していく手法です。

強化学習とは?

強化学習とは、ある「環境」に置かれた「エージェント」が、
試行を繰り返し状態を観測することで最適な「行動」を得るための手法です。

教師あり学習を始めとする機械学習では入力に対して予測した答えを出力しますが、
強化学習では明確な答えを出力しないかわりに、「行動」の選択肢と「報酬(期待値)」を提示します。
「環境」を観測し「行動」することで「環境」が変化し変化による「報酬」が発生します。

マルバツゲームを例に基本的な学習の考え方を説明します。
マルバツゲーム
まずエージェント(打ち手)は最初ランダムで「◯」を打っていきます。
相手と対戦を行い、勝敗と盤面の状態をエージェントに送信します。
エージェントは報酬と盤面の状態を保存し、学習することで良い報酬(勝ち)に向けて最適な手をうつようになってきます。
このように対戦を数多く行うことでエージェントは学習を繰り返し最適化を行います。

Q学習とDeep Q-Network

Q学習は強化学習のなかで最も一般的に使用されるアルゴリズムです。
状態sと行動aがあり、状態sの時に行動aを行うと
報酬の期待値を返す関数Q(s, a)を基本とします。
最初の段階ではQ(s, a)の結果はランダムですが、良い報酬を得られると
Q(s, a)の結果を更新し値を大きくしていきます。
その後も良い報酬が得られた場合Q(s, a)を更新していくと、基本行動はランダムですが
Q(s, a)の値が大きい方向へ行動の方針が進んできます。
最終的に場面場面でより良い行動を行うように学習していきます。

Deep Q-NetworkとはDeepMind/Googleが作成した学習モデルで、
先ほどのQ学習に加え、畳み込みニューラルネットワークを用いた深層学習を
工夫して組み合わせることにより、高い精度を実現することができます。

英語の論文ですが、AtariのゲームとDeep Q-Networkを紹介した論文もあります。
Playing Atari with Deep Reinforcement Learning
上記の論文では、Deep Q-Networkを用いてAtariのゲームプレイで人間よりも優れたスコアを叩き出しています。
また、汎用性も高く、同じネットワーク・パラメータを幅広く利用することができます。

まとめ

機械学習の中でも強化学習という分野は、最近切り分けて考えられることが多いですが、
汎用的なAIを作っていく上では必要不可欠なものです。
専門性が高くカスタマイズされた機械学習がまだまだ多い印象ですが、
今後は深層強化学習を用いた汎用AIも多く出てくるでしょう。

今回学習例で取り上げたマルバツゲームの学習は、
後日に実例を別記事でご紹介しますので楽しみにお待ち下さい。

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

グラッドキューブは
「ISMS認証」を取得しています。

認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業

「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。

いますぐ無料で
お試しください。

SiTest の革新的な機能を
お試しいただけます。
利用規約

お名前【必須】
メールアドレス【必須】
電話番号【必須】