【DL、RL、A3C+】Montezumaの得点:得点時履歴学習の影響大
A3C+の論文に基づいたコードでMontezuma's Revengeの得点要因を調査しているところですが、直前の記事での予測のように、当方が独自で入れ込んだ「高得点が出た時に、その履歴(状態、アクション、得点の履歴)から学習させる機能」の効果が高いことが分かりました。
まだ途中ですが、「A3Cにpseudo-countを入れただけ」と較べて、「高得点が出た時に、その履歴から学習させる機能(以下、得点時履歴学習機能と略す)」をオプションでONにすると、急激に平均得点が高まることが確認できました。
得点時履歴学習機能OFF(〜30M STEPS)
30M STEPSまで学習させましたが、下記のように、平均得点が100点強のところで、上昇が止まっています。
途中から得点時履歴学習機能ON(30〜39M、履歴長150)
上記で30M STEPSまで学習させたcheckpoint(Tensorflowのnetwork + pseudo-countデータ)をベースに、30M STEPS以降で得点時履歴学習機能をONにした学習曲線が下記です。31M STEPSあたりから平均得点が急激に上昇し、30M STEPSでほぼ500点になっているのが分かります。ちなみに、学習履歴の長さは、150 STEPS(ゲーム内時間で10秒)としました。
ちなみに、上記の図は得点時履歴学習機能OFFの場合との比較のために530点以下を抜粋したものです。実際のグラフは下記のように、2500点が出始めています。
途中から得点時履歴学習機能ON(30〜37M、履歴長30)
上記とほぼ同じ条件ですが、得点時履歴学習機能での学習する履歴の長さを30 STEPS(ゲーム内時間で2秒)に短くしたものが下記です。学習する履歴の長さが150 STEPSのグラフと較べて、学習が遅いことが分かります。
なお、グラフの立ち上がりは良い感じなので、この後で直ぐに500点を超えると思われます。
今後の進め方
作成したコードで調整可能なパラメーターは、履歴長以外にも色々あるので、それらのパラメーターも含めて、どのような組み合わせが良いか確認したいところですが、マシンパワーがとても足りず、膨大な時間が掛かるので、とりあえずは、上記の2つに関して評価を進める良いです。
50〜80M STEPSぐらいまでは学習を進め、平均得点がどの程度上がるか確認したいと考えています。ただ、途中で平均点数の上昇が止まるようでしたら、更に色々と試してみるつもりです。例えば、得点が十分に高い場合のみ学習させるなど。