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

Itsukaraの日記

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

【DRL】Monezuma's Revengeで平均点が1500点を超えました

DRL Montezuma's Revenge 機械学習 Python

前々回記事に記載の通り、DeepMindがDRL (Deep Reinforcement Learning) の評価に利用しているAtari2600のゲーム60個の1つで最難関ゲームの1つであるMontezuma's Revengeに対して、高得点を取得するための挑戦を行っています。

先週前半に評価開始したものが、先週後半に60Mstepになり、一番良いパラメータの組み合わせでは、平均点が1500点を超えました。少し遅れましたが、報告させて頂きます。本件に関連したソースコードgithubにアップ済です。

今回の評価では、Double DQNに近づけるため乱数性を高めました。具体的には、greedinessとrepeat-action-ratioを導入しました。

greediness

greedinessは、状態空間の探索範囲をできるだけ拡大するために、一定の確率でランダムなアクションを行い、できるだけ色々なアクションを試すものです。DRLの初期手法であるDQNでは、最初の1Mstepはgreedinessを1.0(完全にランダム)から0.1まで線形に変化させ、その後は0.1に固定していました。Double DQNでは0.01でした。A3Cではgreedinessが入っていなかったので、greediness=0と同等でした。Pseudo-codeの論文のDouble DQNの場合は、Double DQNと同じgreedinessのようなので、A3Cでも0.01にしました。

repeat-action-ratio

repeat-action-ratio(rar)は、一定の確率で、前回のアクションを繰り返すものです。Pseudo-codeの論文によると、この確率をALEのデフォルト0.25にしたほうが点数が良かったとのことなので、同様にしました。ただし、ALEで一定の確率で前回のアクションを繰り返すと、実際はどのアクションが行われたか分からず、誤ったアクションに対して学習してしまうので、ALEではなくDRL側に同様の処理を入れました。ALEではrepeat-action-probabilityと呼んでいますが、区別するために、別のオプションにしました。

評価結果

論文と同様、rar=0.25方がrar=0.0よりも良い結果となり、平均点が1500点を超えました。

greediness=0.01 + rar=0.25での学習曲線

f:id:Itsukara:20160916141555p:plain

greediness=0.01 + rar=0.00での学習曲線

f:id:Itsukara:20160916141604p:plain

greediness=0.01 + rar=0.00 +学習長固定(90)での学習曲線

f:id:Itsukara:20160916141613p:plain

あとがき

今回の評価で、Google Cloud Platform (GCP)の無料枠($300)をほぼ使い切り、残りが$2.85になってしまいました。新たなメールIDやクレジットカードでGCPの無料枠を再度申し込もうと思いましたが、クレジットカード所有者の氏名・住所を照合している可能性があり、同じ氏名・住所が登録されたクレジットカードではNGの可能性があるので、一旦中止しました。そのかわり、Windows Azureを使いはじめることにしました。