Tuesday, March 7, 2017

Neural Episodic Controlのノート

概要
  • 深層強化学習のエージェント(主に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