読者です 読者をやめる 読者になる 読者になる

Itsukaraの日記

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

【DL、RL、A3C+】Montezumaの得点:得点時履歴学習の影響大

A3C+の論文に基づいたコードでMontezuma's Revengeの得点要因を調査しているところですが、直前の記事での予測のように、当方が独自で入れ込んだ「高得点が出た時に、その履歴(状態、アクション、得点の履歴)から学習させる機能」の効果が高いことが分かりました。

まだ途中ですが、「A3Cにpseudo-countを入れただけ」と較べて、「高得点が出た時に、その履歴から学習させる機能(以下、得点時履歴学習機能と略す)」をオプションでONにすると、急激に平均得点が高まることが確認できました。

得点時履歴学習機能OFF(〜30M STEPS)

30M STEPSまで学習させましたが、下記のように、平均得点が100点強のところで、上昇が止まっています。
f:id:Itsukara:20160902105050p:plain

途中から得点時履歴学習機能ON(30〜39M、履歴長150)

上記で30M STEPSまで学習させたcheckpoint(Tensorflowのnetwork + pseudo-countデータ)をベースに、30M STEPS以降で得点時履歴学習機能をONにした学習曲線が下記です。31M STEPSあたりから平均得点が急激に上昇し、30M STEPSでほぼ500点になっているのが分かります。ちなみに、学習履歴の長さは、150 STEPS(ゲーム内時間で10秒)としました。
f:id:Itsukara:20160902172341p:plain

ちなみに、上記の図は得点時履歴学習機能OFFの場合との比較のために530点以下を抜粋したものです。実際のグラフは下記のように、2500点が出始めています。
f:id:Itsukara:20160902172811p:plain

途中から得点時履歴学習機能ON(30〜37M、履歴長30)

上記とほぼ同じ条件ですが、得点時履歴学習機能での学習する履歴の長さを30 STEPS(ゲーム内時間で2秒)に短くしたものが下記です。学習する履歴の長さが150 STEPSのグラフと較べて、学習が遅いことが分かります。
f:id:Itsukara:20160902174102p:plain

なお、グラフの立ち上がりは良い感じなので、この後で直ぐに500点を超えると思われます。

今後の進め方

作成したコードで調整可能なパラメーターは、履歴長以外にも色々あるので、それらのパラメーターも含めて、どのような組み合わせが良いか確認したいところですが、マシンパワーがとても足りず、膨大な時間が掛かるので、とりあえずは、上記の2つに関して評価を進める良いです。

50〜80M STEPSぐらいまでは学習を進め、平均得点がどの程度上がるか確認したいと考えています。ただ、途中で平均点数の上昇が止まるようでしたら、更に色々と試してみるつもりです。例えば、得点が十分に高い場合のみ学習させるなど。

感想

Pseudo-countの論文を改めて読み直したところ、A3C+では、Montezuma's Revengeで平均273.70点と、当方よりも低い点数でした(200M STEPS)。論文で平均3000点取れていると書いてあるのは、Double DQNの場合でした。Double DQNの論文は十分に読んでませんが、DQNと同様に履歴を蓄積してその履歴から学習すると思われれるので、やはり、Montezuma's Revengeでは、履歴から学習することが重要と思われます。