概要
- 深層強化学習のエージェント(主にDQN)の学習をかなり効率化する手法を紹介
- 典型的な深層強化学習エージェントは、複数の理由で学習にかなり時間がかかる
- NNベースなので、学習係数を高くしすぎると学習が不安定になる上、破壊的干渉の影響を受けやすくなる。なので、学習係数を低くし、ゆっくり安定に学習を進めるしかない
- 教師あり学習と違い、強化学習の学習は報酬に依存する。難しいタスク・ゲームだと、この学習に欠かせない報酬の出現率がスパースなので、学習が進みにくい。その上、エージェントの報酬の予測・期待が「悲観的」になる
- Q学習などでは報酬と過去の状態・行動の紐づけのため、報酬情報が時間軸で過去へと伝搬されていく。しかし、ここも学習を安定させるため、この情報の伝搬を遅くしてしまう工夫がよくされる。
- これらの問題の対策として、この論文で新たな手法が紹介される
- 主にDQNのreplay buffer/memoryに加え、更にこった工夫をするかんじ
- replay memoryとまた別に、各アクションにDifferentiable Neural Dictionary(DND)と呼ぶメモリーが追加される
- 例えば、「左」「前」「右」がアクションであれば、3つのDNDを使う
- 行動空間が連続的の場合、ちょっとわからない...
- このメモリーはキーバリュー構造、言い換えるとPythonなどでよく見る辞書(dictionary)形式になっている
- キーは強化学習エージェントの内部状態h(隠れ層の活性)であり、そのときの状態sの埋め込みとも考えられる
- バリューは強化学習のアルゴリズムによるが、Q学習の場合はQ値になる
- こうなると、NNを用いた強化学習が流行る前によく見たテーブルベースの強化学習に似ている
- DNDはどんどん大きくなっていく(毎回新しいキーバリューが追加されるか、既存のキーのバリューが更新される)
- Q値の推定をするとき、従来と違い直接NNが計算するのではなく、DNDを利用して推定する
- 現在の内部状態hと近似しているキーのバリューを引き(カーネルと近傍法を利用、kd-treeで高速化)、重みづけ(近似しているほど高く)して総和する(Figure 1のLookup、Figure 2)
- このようにメモリーに追記していくので、報酬が高い経験をしたら、経験の情報はNNが学習(重みの変化)するまで待つ必要はなく、すぐにQ値の計算に反映される
- 結果:学習の目覚ましい高速化(論文で沢山の比較をしている)
今まで深層強化学習でも難しいと指摘されていたゲームの一つ「Frostbite」もこのような学習カーブ
- DNDと脳の海馬の関連も論文で書かれている
思ったこと
- 行動空間が連続的になっても使い方はあるか?
- Q学習ではなくactor-critic系にも適用できるか?その場合バリューは何になるか?
No comments:
Post a Comment