はじめに
本日はDeep Q-Network(通称、DQN)について、既に結構詳しく説明した記事とかもあるようなので、エッセンスだけを抑えた簡単な概要を書こうと思います。
DQNとは、Deep learningとReinforcement learningを”うまく”組み合わせて、センサーの入力などの高次元の入力に既存の強化学習を適用させる技術です。
作者も論文内で幾度も強調している通り、単にそれらを組み合わせただけでなく、工夫して組み合わせてより高い精度を実現したことが、DQNの一つの重要な点だと思います。
DQNの特徴
Experience replay
(殆どの)Deep learningアルゴリズムはi.i.d.、つまり学習データに相関がないことを想定していますが、Reinforcement lerningでは問題の性質上temporalに偏ったデータになりがちです。そこで過去のデータを十分な数保存し(replay memoryと呼んでいる)、そこからrandom sampleすることで、擬似的にデータの偏りをなくしています。
各アクションをニューラルネットワークの出力層に持つ
Q値の計算において、状態とアクションを入力とし一つのscalar値を返す通常の方法とは異なり、状態のみを入力とし、出力層において各アクションごとの出力を持つようにしています。
これにより、一回のニューラルネットワークのforward passにより、全アクションの出力が得られるため、アクション数によってリニアに計算量が増えません。
高い汎用性
DQNは論文ではAtariのゲームに応用し、多くのゲームにおいて優れた人間のプレイヤーより良いスコアを出していますが、特筆すべきはスペースインベーダーやブロックくずしなど全く別種の学習とコントロールを必要とされるゲームでも、全く同じネットワーク・ハイパーパラメータを使用している点だと思います。つまり、一人の人間が練習すればテニスもできれば、水泳もできるように、特定の用途の問題にカスタマイズされた学習機ではなく同一の学習機で(まだまだ単純な問題とは言え)別種の問題を学習している汎用性の高さは驚くべきで、今後さらに様々な問題に機械学習が応用されていなく中で、汎用性を高めるという方向性はいよいよ高くなっていくと思います。
原論文
Playing Atari with Deep Reinforcement Learning
Human-level control through deep reinforcement learning (Nature)