AI・機械学習
上級

Experience Replay(経験再生)(エクスペリエンスリプレイ)

過去のタスクの訓練データを小さなバッファ(メモリ)に保存し、新タスクの学習時に過去データと混合して訓練することで破壊的忘却を防ぐ継続学習手法。人間の脳の海馬リプレイ機構に着想を得ており、実装が直感的かつ効果が高いことから最も広く使われている。

0 回閲覧
0 いいね

Experience Replay(経験再生)とは

Experience Replay は、継続学習における破壊的忘却を防ぐリプレイベースの手法群の代表格である。基本的なアイデアは「過去のデータの一部を保存し、新しいデータと一緒に学習する」という極めてシンプルなものだが、その効果は高く、多くの継続学習ベンチマークで最強クラスの性能を示す。

元々は強化学習の文脈で Lin(1992)が提案した手法で、経験(state, action, reward, next_state)をバッファに保存してランダムにサンプリングして学習するDQNの基盤技術として知られる。継続学習の文脈では、Robins(1995)の「Pseudorehearsal」に始まり、教師あり学習でのデータリプレイとして再定式化された。

基本構造

Experience Replay の基本構造は以下の通りである。

[メモリバッファ M] ← 旧タスクのデータをサンプリング保存
[新タスクデータ D_new] + [メモリバッファ M からのサンプル]
→ 混合バッチで学習
→ 学習後、新タスクのデータの一部を M に追加

バッファ管理戦略

戦略概要メモリ効率多様性
Reservoir Sampling全データから等確率でサンプリング高高
Ring BufferFIFO で古いデータを順次置換高低(最新偏重)
Herdingクラス中心に近いサンプルを優先保存中中
Gradient-based忘却に最も寄与するサンプルを優先中高
K-means Clusteringクラスタ中心に近いサンプルを保存中高
Mean of Features特徴量の平均に近いサンプルを保存中中

バッファサイズの影響

バッファサイズ(タスクあたり)忘却率新タスク性能推奨場面
0(リプレイなし)30-40%最高ベースライン
100 サンプル15-20%高メモリ制約環境
500 サンプル8-12%高標準的な設定
2,000 サンプル3-5%中-高忘却最小化重視
10,000 サンプル1-2%中メモリに余裕がある場合

500-2,000サンプル/タスクが精度とメモリのバランスが最もよい。

主要な変種

Dark Experience Replay(DER/DER++)

Buzzega et al.(2020)が提案。データのラベルだけでなく、モデルの出力ロジット(logits)も一緒に保存する。リプレイ時にロジットのKL Divergenceも損失に加えることで、表現レベルの一貫性を保つ。DER++はさらに正則化項を追加した改良版。

Generative Replay

過去のデータを保存する代わりに、生成モデル(GAN/VAE)で過去データの分布を学習し、合成データを生成してリプレイする。プライバシー保護に有利だが、生成品質がボトルネック。

Gradient Episodic Memory(GEM)

Lopez-Paz & Ranzato(2017)が提案。リプレイバッファのデータに対する勾配方向を制約として、旧タスクの性能が悪化しない方向にのみ新タスクの勾配を投影する。忘却をゼロに近づけるが計算コストが高い。

Averaged GEM(A-GEM)

GEMの計算コストを軽減した近似版。バッファからのランダムサンプルで制約を近似し、実用的な速度を実現。

LLMでの活用パターン

パターンバッファ内容用途バッファサイズ目安
Instruction Replay旧タスクの指示-応答ペアInstruction Tuning の継続5,000-20,000 ペア
Alignment ReplayRLHF の選好データ安全性の維持1,000-5,000 ペア
Language Replay各言語のテキスト多言語能力の維持10,000 文/言語
Capability Replayコード・数学・推論のサンプル汎用能力の維持5,000-10,000 サンプル

データ混合比の影響

新データと旧データ(リプレイ)の混合比は性能に大きく影響する。

新:旧比新タスク性能旧タスク忘却率推奨場面
1:0最高30-40%ベースライン
3:1高10-15%新タスク重視
1:1中-高5-8%バランス型
1:3中2-3%旧タスク保護重視
1:5低-中1-2%忘却最小化

一般的には 1:1〜1:3 がバランスが良い。新タスクの学習が遅い場合は比率を新タスク寄りに調整。

よくある質問(FAQ)

Q1: Experience Replay は過去のデータを保存するため、プライバシーの問題はないですか? A: バッファに実データを保存するため、データ保護規制(GDPR等)の文脈で課題がある。対策として、(1)Generative Replayで合成データに置き換える、(2)差分プライバシーを適用してバッファデータにノイズを加える、(3)勾配ベースの蒸留でデータ自体ではなく勾配情報を保存する等の手法がある。

Q2: バッファサイズが限られる場合、どのサンプルを保存すべきですか? A: Gradient-based Selection(勾配が大きい=忘却リスクが高いサンプル)が最も効果的。次いで Herding(クラス代表サンプル)、Reservoir Sampling(ランダム)の順。ランダムでも500サンプル/タスクあれば忘却率を半分以下にできるため、複雑な選択戦略の費用対効果は限定的。

Q3: Experience Replay と EWC はどちらが効果的ですか? A: 多くのベンチマークで Experience Replay が EWC を上回る。特に10タスク以上の長いタスク列では、EWCのFisher行列累積による飽和に対し、Replayは安定した効果を維持。ただし、EWCはデータ保存不要というメリットがある。最良の結果は両者の併用で得られる。

まとめ

  • Experience Replay は過去データの保存・混合学習で忘却を防ぐシンプルかつ効果的な手法
  • バッファサイズ 500-2,000 サンプル/タスクが精度・メモリの最適バランス
  • DER++(ロジット保存付き)が現時点で最も高性能なリプレイ手法
  • 新:旧 = 1:1〜1:3 の混合比が汎用的に推奨
  • EWC との併用でさらに 15-25% の忘却軽減効果