【DL、RL、A3C+】Montezumaで2500点出ました!
直前の記事記載のように、A3c+でMontezuma's Revenge学習中にi-node不足で途中終了したので、終了前のpseudo-countデータ無しで途中再開して試しています。学習曲線は以下のようになってます。
平均得点が元のレベル元に戻るまで5M STEPS弱掛かってしまいました。なお、論文と比べると学習が遅いですが、pseudo-countを入れる前のA3Cコード自体が論文よりも学習が遅いので、仕方ないです(原因は不明)。
今のところ、訪問済みの部屋は以前と同じで0,1,2,5,6,7だけですが、最高点数は2500点が出ました。下記が、最高得点を出したプレイ動画です。
youtu.be
500点のプレイ動画(下記)とあまり変わりませんが、右下の部屋の左上で取得したSWORDで、その上の階のSKULLを退治することで、2000点入っています。無駄な動きが多いですが、SKULLを飛び越えたり、避けたりするところは、少し賢くなった気がします。
youtu.be
SWORDの表示
500点の動画ではSWORDが写っていませんでしたが、これは、実行オプションが不適切だったためでした。Atari2600のゲームは、ハードウェアの制限により、奇数フレームと偶数フレームを合わせることで正しい画面になります。これは、人間が目で見る上では問題ありませんが、学習データとしては不適切です。そのため、学習データとしては、2つのフレームの画像のmaxを取る必要があります。実行オプションとして「--color-maximizing-in-gs=True --color-averaging-in-ale=False」を指定すればそのような処理が行われます。
なお、上記、Atariのゲーム特性は論文で承知しており「color-maximizing-in-gs」というオプション+機能も作成済みでしたが、ALEにcolor-averagingという機能があり、Breakoutでは、両者に違いがなかったので使ってませんでした。Montezuma's Revengeでは、この違いを初めて実感しました。
ソースコード
ソースコードは以下にあります。ご参考まで。
github.com