経験再生(Experience Replay)

Experience Replay

経験再生とは

経験再生(Experience Replay)とは、エージェントが環境と相互作用して得た経験(状態、行動、報酬、次状態のタプル)をバッファに蓄積し、学習時にランダムにサンプリングして再利用する手法です。DQNの成功の鍵となった技術の一つであり、オフポリシー型の深層強化学習で広く使われています。

なぜ経験再生が必要か

強化学習で得られるデータには2つの問題があります。第一に、連続するデータは時間的に相関が強く、これをそのまま学習に使うとニューラルネットワークの学習が不安定になります。第二に、得られたデータを一度使って捨てるのはサンプル効率が悪いです。経験再生はランダムサンプリングにより相関を解消し、データの再利用によりサンプル効率を向上させます。

リプレイバッファ

経験はリプレイバッファ(Replay Buffer)と呼ばれるFIFO型のメモリに保存されます。通常100万ステップ分程度のデータを保持し、新しい経験が追加されると古い経験が削除されます。学習時にはバッファからミニバッチ分のデータをランダムにサンプリングして勾配更新を行います。

経験再生の制限

経験再生はオフポリシー手法でのみ使用可能です。オンポリシー手法(A2C、PPOなど)では過去の方策で収集したデータをそのまま使えないため、経験再生は適用できません。