Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

【DL、RL、A3C+】Montezumaで最高得点2600点取得!!!

A3C+独自機能("on-highscore-learning"と命名、OHLと略記)でMontezuma's Revengeを評価しており、平均点500点強で伸びなくなり49M STEPSで中断しましたが、Trainingデータでのプレイ動画を撮り忘れたので念の為撮ったところ、何と、初の最高得点2600点を取得出来ました!!!

youtu.be

プレイ動画を見ると、最初の画面で取得済みの鍵と、退治済みのモンスターが復活していました。これらのおかげて2600点になった次第です。このように鍵が復活することは初めて知りました。人工知能に教えられたということになりますね。

それにしても、数千回以上のTraining中に2600点が出なかったのに、たまたまプレイ動画生成での10回程度のプレイ時に26000点が出たのは、確率的に見て非常に不思議です。

ところで、動画を撮るときにゲーム画面を表示していると遅いので、次のようにしてください。

$ python a3c_display.py --rom montezuma_revenge.bin --record-screen-dir screen --display=False

なお、これまでは得点を端末にprint出力していましたが、端末画面から得点の文字列を探すのが大変なので、各エピソードのディレクトリ名に得点などを含めることにしました。例えば、"montezuma_revenge-e001-r2600-s4501.mp4"は、rom名が"montezuma_revenge.bin"、プレイしたエピソード番号が001、得点が2600、プレイSTEPS数が4501を示します。

動画への変換は下記で行ってください(avconvインストール済みが前提)。なお、変換した動画を取り出した後は、screenディレクトリは直ぐに削除したほうが良いです(i-nodeがかなり減るため)。

$ run-avconv-all screen