【強化学習】Experience Replayの理論
0. はじめに
開発している強化学習向けExperience Replayライブラリcpprbのサイトに書いたExperience Replayの理論に関する調査の日本語焼き直し記事です。
前回の論文調査記事はこちら
1. Experience Replayとは
L. Lin[1]によって1992年に提案(少なくとも命名[2])された手法のExperience Replay(経験再生)は、遷移(一般的には
Experience Replayを利用する主たる目的の1つにサンプル効率の向上があります。強化学習に用いる環境のトライ&エラーはコストが高いことが多く(例えば、高精度なシミュレーションは計算コストが高いですし、実世界でロボットを下手に動かすと壊れたり、周囲の人に危険がおよんだりします)、可能な限り一度収集した遷移を再利用することが望まれています。
L. Linは同じ論文の中で、現在の方策と異なる方策から取得した遷移を再利用すると学習の結果を歪めうるとも既に言及しています。これ以後、Experience Replayの性質に関する研究や、サンプル効率の向上のための様々な拡張が提案されてきました。
2. Experience ReplayにおけるOn-Policynessの影響
W. Fedus等[3]は2020年にExperience Replayにおける on-policyness(今の方策と行動方策の近さ)の影響について実験を行いました。この論文の鍵となるメトリクスは遷移の歳 (age of transition) で、その遷移が生成されてから方策が何回更新されたかで定義されています。
通常、Replay Bufferはサイズが一定のリング・バッファ(Wikipedia)によって実装されているため、限界まで遷移が保存されている際には一番古い遷移が新しく入ってきた遷移によって上書きされます。そのためreplay ratio
実際、著者等の実験の結果はreplay ratioに依存しています。
- replay ratioを小さくすると性能が向上する
- Replay Buffer内の最も古い遷移の歳を変化させず、Replay Bufferのサイズを大きくする
- Replay Bufferのサイズを変化させず、Replay Buffer内の最も古い遷移の歳を若くする
- replay ratioを変化させず、Replay Bufferのサイズを大きくすると、性能は上がったり下がったり
- 相反する2つの影響(Replay Bufferのサイズの増大による向上+遷移の歳が古くなることによる劣化)によるもの
更に
3. Prioritized Experience Replay (PER)
最も有名なExperience Replay拡張の1つが、T. Schaul等[6]によって2016年に提案されたPrioritized Experience Replay (PER)です。PERのポイントはTD誤差
この論文では重要度の定義方法として2つ提案されています。比例方式
遷移
非一様な確率で遷移をサンプルすることによって生じる確率の歪みは重点サンプリングに則って重みを調整することで補正されます。
4. PERの理論的背景
A. Ang等[9]は2021年に理論面から PER がなぜうまくいくのかについての説明を試みています。彼らはExpected Value of Backup (EVB) という指標に着目しました。EVBはある経験(遷移と同義)
ただし、
この論文のポイントは、方策の更新が貪欲であるかぎりEVBの大きさの上限は定数倍したTD誤差の大きさによって抑えられるという点です。
ここで
この不等式だけでは完全な説明にはなりませんが、PERの成功を部分的には説明することができると思われます。(少なくともTD誤差が小さい遷移を用いてもEVBをそんなには向上することができないことはわかります。)
5. 損失関数と非一様なサンプリングの関係
S. Fujimoto等[10]は2020年に Experience Replayにおける損失関数と非一様なサンプリングとの関係性を明らかにしました。著者等は非一様なサンプリングの場合と『期待値』が等しくなる一様サンプリング下の損失関数を定式化しています。
ただし、
一般化した
再び
著者等は上記のPERにおけるバイアスを排除したPER拡張を Loss-Adjusted Prioritized Experience Replay (LAP) として次のように定義しました。
基本的には
さらに、著者等はこのLAPと一様サンプリング下で等価な損失関数として、Prioritized Approximation Loss (PAL) も提案しています。
この章の初めにも書きましたが両者は『期待値』が等価であって分散は異なります。実際のところ分散はPERで(=重要度に応じて)サンプルを行う方 (LAP) が小さくなります。一方、一様サンプリングを利用 (PAL) すればPERの計算コストを排除することができます。
まとめ
Experience Replay の原論文から始めて近年の理論的な論文までを整理しました。
PERがうまくいく理論的な背景の一因や、PERを適切に利用する方法についてわかりました。
一方、Replay Buffer から取り出す遷移の選び方を本質的にどうすれば良いかはまだ不明瞭の認識です。(前回の論文調査記事に挙げたEROやNERSのように選び方を学習する手法はその課題へのアプローチだと思っています。)
cpprbの今後の開発としては LAP や PAL の対応をしようかと検討中です。
2021/12/3更新
収束速度(
2021/12/11更新
Experience Replayの研究の傾向と個人の考察をまとめた記事を書きました。
-
L. Lin, “Self-improving reactive agents based on reinforcement learning, planning and teaching”, Mach. Learn. 8, 293-321 (1992) https://doi.org/10.1007/BF00992699 ↩︎
-
(1992年と古いこともあり定かではありませんが、)Experience Replayを含む様々な手法を比較・議論した論文であり、Experience Replay(またはその原型)が初出ではない可能性があります。一方、論文中で「The most straightforward way of reusing experiences is what I call experience replay.」と記載しているとおりL. Linが初めてExperience Replayという名称を利用し、その性質を検証・議論し、その後定着したと認識しています。 ↩︎
-
W. Fedus et al., “Revisiting Fundamentals of Experience Replay”, ICML (2020) (arXiv) ↩︎
-
Reverb[5]にはreplay ratioを制限する仕組みがあります。拙著の紹介記事も参照 ↩︎
-
A. Cassirer et al., “Reverb: An efficient data storage and transport system for ML research”, (2020) https://github.com/deepmind/reverb (code) ↩︎ ↩︎
-
T. Schaul et al., “Prioritized Experience Replay”, ICLR (2016) (arXiv) ↩︎
-
D. Prafulla et al., “Open AI Baeslines”, (2017) https://github.com/openai/baselines ↩︎
-
E. Liang et al., “RLlib: Abstractions for Distributed Reinforcement Learning”, ICML (2018) (arXiv, code) ↩︎
-
A. Ang et al., “Revisiting Prioritized Experience Replay: A Value Perspective” (2021) arXiv:2102.03261 (残念ながらICLR2021で不採択になっています。) ↩︎
-
S. Fujimoto et al., “An Equivalence between Loss Functions and Non-Uniform Sampling in Experience Replay” NeurIPS (2020)(arXiv) ↩︎
Discussion