2021年7月24日土曜日

不可解な自滅の理由は Catastrophic forgetting ではなかった

 昨日立てた仮説は、リプレイメモリの容量が足りないために途中でどのように自滅をしていたかを忘れて再度自滅をしてしまう、ということだった。(Catastrophic forgetting としてフォーラムで解説されている。) これを検証するためにリプレイメモリを30万回分から100万回分に増やしてLv1のマルスと再度戦わせた。その結果がこちらである。

リプレイメモリ30万回のとき

リプレイメモリ100万回のとき
となった。50000ステップごとに評価モード(Greedy Policyになる)で報酬を5回計算し、その平均をとっている。1ストックにつき2ポイントでダメージには部分点が入る。勝利者には+1ポイントされる。一見して言えることは、ノイズが大きくて結論が出しにくいという点である。おそらくリプレイメモリ30万回の最初の方で結果の上ぶれもあり、それがその後の成長を隠していた可能性もある。両方の図を見ると双方今後もっとゆっくりとしたペースで成長を続け、いずれはコンピュータマルスLv1を難なく倒す日が来る可能性も考えられる。
リプレイメモリが多くて困ることはないので、リプレイメモリ100万のまましばらくトレーニングを続けることにする。可能であればトレーニングを加速したい。今のところアイディアは2つある。1つはより深い(多層の)ネットワークを使うこと。深いネットワークはより強い可塑性を与えるのでパフォーマンスがよくなる可能性がある(強化学習においてはその効果があまり聞かれないので注意は必要だが)。もう1つはコントローラ出力をスティックとボタンに分離すること。今は9 x 6の54通りのどれかという形で出力しているが、分離するとスティック部で9つ、ボタンで6つとなり、出力しなければいけない数字の数が15まで減少する。この単純化はトレーニングの上で役に立たないだろうか。今のトレーニングを継続しつつコードを書き始めてみることにする。

ちなみに今のガオガエンの動きはこんな感じである。





0 件のコメント:

コメントを投稿