OpenAI GymでのMontezuma's Revenge評価の影響要因
OpenAI Gymで得点に特に影響した要素について記載します。
の値
Pseudo-count(擬似的な出現回数)から計算されるReward計算式(下記)でのは特に影響が大きかったです。
Azure*1やGoogle Cloud Platform*2の無料枠で得られる計算資源しか使えないため、余り包括的なパラメーター探索はできていませんが、に関しては、0.015や0.01では殆ど点数が取れず、0.02がベストでした。0.03も上手く行きませんでした。
学習歴長
On-Highsocore-Learningでの学習履歴長もかなり影響が大きく、長ければ良いというわけではないようです。下記にの値が0.02で学習履歴長を変えた時のTraining Curveを載せます。30の時は乱高下するものの、0.2M step毎に平均点をチェックし、ベストな状態の学習データを残すようにプログラムしているので、生成した学習データを元に評価すると良い点数が取れます。学習歴長=30のときが、今回OpenAI Gymにアップした評価に用いた学習データです。
学習履歴長=25
学習履歴長=30
学習履歴長=35
学習履歴長=40
フレームスキップ数
上記に加え、ゲーム画面(frame)のスキップの仕方も影響しています。ゲームの操作(action)をOpenAI Gymに渡すと、OpenAI Gymは勝手に2〜4 frameスキップした後のframeを返す仕様になっており、スキップするフレーム数は一様乱数で求めています。これは、ゲームをできるだけ非決定的にするためです。
今回の評価では、学習する側で、OpenAI Gymを同じactionで2回呼び出し、その結果得られたframeをDeepLearningに使っています。これにより、スキップするフレーム数は、6を中心とした正規分布となり、少し決定性が増すので学習しやすくなっている、考えています。ちなみに、この処理をしない場合は、点数がほとんど上がりませんでした。
あとがき
豊富な計算資源があれば、一度に数十〜数百の評価ができるので、すぐに最適なパラメーターが求まるのですが、これができず残念です。計算資源を提供頂ける方がいれば、非常に助かります。