Bigger, Better, Faster: Human-level Atari with human-level efficiencyを読んだメモ

 実験の結果が

  • Atari 100k ベンチマークで、Human Normalized ScoreのIQM(26ゲーム中の上位25%と下位25%を除いた中間50%ゲームについての平均スコア)が1.045
  • 学習時間は6 hours on single GPU

とのことであり、魅力的。

 Max Schwarzer氏(Google DeepMind)が筆頭著者として関わっている一連の研究があるようだ。

  1. SPR(Self-Predictive Representations)
  2. SR-SPR(Scaled-by-Resetting SPR)
  3. BBF(Bigger, Better, Faster):この論文
    • SR-SPRに細かい工夫を詰め込んでネットワークサイズを大きくすることに成功し、性能向上

手法

 まずこれらの手法はQ値ベースの方策オフ型であり、Atari 100kベンチマークをやるに際しても、リプレイバッファに経験を溜めて定期的にサンプリングして学習をする。

 環境との相互作用1回(行動選択1回)に対して、「リプレイバッファからランダムサンプリングして損失計算して勾配法でネットワークのパラメータ更新」を何回やるか、というReplay Ratioを考える。これは一般的な手法だとRR = 0.25とか、せいぜい1とかになる。しかし、ネットワークの定期的なパラメータリセットを入れるとRR = 8とか16まで伸ばせるようになる。まずここまでがSR-SPRの主張。

 これに加えてBBFでは

  • Harder reset : SR-SPRでは最終層だけ完全リセット、それ以外はランダムパラメータと20%で線形補間、という形でリセットしていた。BBFではもっとリセットを強めて50%で線形補間する
  • Larger network : Impala-CNNを持ち出してきて、CNNのchを4倍などにする
  • Receding update horizon : 価値関数の学習でnステップTD誤差を計算するときのnを10から3まで小さくしていく。これはネットワークがリセットされてから最初の10kステップで行う。リセットは40kステップごとに行うので、要するに最初の学習の25%分で下げていく
    • これはhttps://www.learningtheory.org/colt2000/papers/KearnsSingh.pdfで主張されているらしい
    • nが大きいほど収束は速くなるが、最適価値関数に対して漸近誤差が大きくなるので、最初だけ大きくしておいてから下げて学習を速めることが狙い
    • nは大きければ大きいほど良いと思っていたのでこれは意外な話
  • Increasing discount factor:割引率を0.97から0.997まで上げていく。これもnと同じく学習の最初25%でやる [1512.02011] How to Discount Deep Reinforcement Learning: Towards New Dynamic Strategies
  • Weight decay:0.1という大きな値でAdamWを使って重み減衰を入れる
  • Removing noisy nets:SPRやSR-SPRではNoisy netを使っていたがこれを削除する

ということを行う。

 各工夫がどれだけ効いているか。

Figure 5

 Replay Ratio2と8で実験されている(横軸の範囲が揃っていないの見にくい……)

自分がグラフを見た印象では

  • とにかくNo Resetは論外。ネットワークのリセットは大事
    • しかもSR-SPRのリセットでも結構性能が落ちているので、強めのリセットが重要らしい
  • nを10に固定する場合でもかなり性能が落ちている。びっくり
  • その他はまぁほどほどか

 なので、「ネットワークのリセット」と「nステップTDのnの影響」について調べる。

ネットワークのリセット

 これについては一つ前の論文SR-SPRにいろいろ書かれている。

 どうもニューラルネットワークは学習を進めてしまうと一般化する能力を失うらしい。滑らかに2つのタスクを切り替えていくマルチタスク学習の設定でも、最初のタスクで長く学習しすぎると次のタスクでの性能が上がらないらしい。 ([1910.08475] On Warm-Starting Neural Network Training; [2106.00042] A study on the plasticity of neural networks)

 (確かに、学習によって全く可塑性を失わないのならばもっとFine-Tuningが大幅にできるようなことを意味するはずなので、そういう意味では当たり前なのかもしれない。しかし100kの定数倍程度の学習ステップ数でもそれが大きく効いてくることは意外)

 オンライン強化学習というのは、学習が進めば振る舞いが変わっていくので、ある意味では滑らかに連続したマルチタスク学習と言える(極端な例としてステージ制のゲームだったりすると明確)。Replay Rateを上げてしまうと、学習が進んでいない段階のもので長時間学習してしまうのと同じことになり、その結果次のタスク(それ以降のデータ)での性能が上がらなくなってしまうと捉える。そして一般化能力を回復させる手法がネットワークのリセットである。

 リセットタイミングでの精度低下が嫌な場合は、リセット直後にある程度(ほぼオフライン強化学習として)学習してしまえば良いらしい。なるほどではある。

 その他参考文献

nステップTDのnの影響

https://www.learningtheory.org/colt2000/papers/KearnsSingh.pdf

 だいぶ話が難しくてあまり理解はできていない。phased TDという解析用の条件設定(ただしそんなに非現実な設定というわけでもない)の下で、誤差の上限 \Delta

 
\Delta _ t \le \frac{1 - \gamma ^ k}{1 - \gamma} \sqrt{\frac{3 \log (k/\delta)}{n}} + \gamma ^ k \Delta _ {t - 1}

となるらしく、この右辺第一項はk(ややこしいが、この論文ではnステップTDのnをkとしている)が大きくなると大きくなる。右辺第二項はkが大きくなると小さくなる。なのでkがいい感じのところでトレードオフのバランスが取られるはずということになるらしい。

 若干自信はないが、直感的な解釈としては、nステップを大きくとれば当然nステップ分は実報酬を使うことになり、たいていその分散は大きいのでそれに影響されるということなのだと思う。分散が大きいだけでバイアスではないので長い目で見ると漸近誤差には影響ないのかと思っていたが、確率的な収束を考えると理論的にも考えられるのか。

 理解は浅いが、まぁそうかなという気分にはなってきたので、nをいじるのは必要なことだと感じられてきた。