EN

深層強化学習アルゴリズムDQN(Deep Q-Learning)

2019年10月3日 木曜日

Examples

Posted by Shinnosuke Usami

深層強化学習の力を世に知らしめたと言っても過言ではない代表的な深層強化学習アルゴリズム、DQNのexampleを公開しました。

さくっとAtariゲームを遊ばせてみよう

ウェブ上を検索しているとDQNのexampleは大量に存在しますが、学習済モデルを公開しているものは少ないです。本exampleは実行時に遊ばせてみたいゲームを指定するだけで、ローカル環境に学習済モデルがなくても我々開発チームで学習したモデルがnnp形式で自動的にダウンロードされ、実行されるようになっています。

例えばPhoenixというAtariゲームを遊ばせたい場合には下記のコマンドを実行することで自動的にassetディレクトリにPhoenixNoFrameskip-v4/qnet.nnpがダウンロードされ、DQNにゲームをプレーさせることができます。(※ゲームの実行速度を配慮してGPU実行することを推奨します)


$ python play_atari.py --extension cudnn --gym-env PhoenixNoFrameskip-v4

Phoenixは学習がうまく行っているとラストボスを倒せるかどうかというところまで行きます。この動画ではラストボスを倒すと同時にエージェント自体も倒れるという珍場面が発生します。

 

論文の再現実験をしてみよう

DQNの学習環境とともに、学習最中に評価が実行される環境を用意しています。DQNの元論文の評価方法を再現したコードが含まれており、論文の再現実験ができるようになっています。

下記のようなPhoenixの学習を流すことで評価結果が得られる仕組みとなっています。


$ python train_atari.py --extension cudnn --gym-env PhoenixNoFrameskip-v4

この評価を59個のAtariゲームに対して実施した結果をこちらに載せています。本評価はOpenAI baselineのパラメータを使用しているため、元論文(50M Steps)よりも少ないステップ数(10M Steps)で良い性能が出せていることが分かります。