【論文調査】Experience Replay関連の論文6本
0. はじめに
強化学習用Experience Replayライブラリcpprbの次なる開発に向けて論文調査をし、自分のブログに調査スライドを公開したので、その紹介記事です。
サイトにスライドを埋め込んで公開する方法については別途記事として 準備中です。 (追記2/13)公開しました。
off-policy の強化学習では、探索によって得られた遷移を一旦保存しておいて、シャッフルしてから学習に利用する Experience Replay が広く利用されています。
Experience Replayの有名な拡張として、保存した遷移をTD誤差の大きさに応じてサンプルする Prioritized Experience Replay (PER) があります。
PERの後にも、サンプリング効率の向上のために様々な手法が提案されており、それを調査して概要をまとめました。詳しい内容については原論文を参照ください。
1. Competitive Experience Replay (CER)
H. Liu et. al., “Competitive Experience Replay”, ICLR (2019) (arXiv)
- 「ロボットアームを特定の位置にあるタスクを行う」など、ゴールが設定されていてかつ報酬が疎な状況で効率的に探索する手法
- 2つのエージェント
と\pi _A を同時に学習 (GANみたいに競わせる)\pi _B - 学習時には、ランダムに保存されているエピソードを選択し、それぞれのエピソードからランダムに遷移を選びミニバッチを作成
- エージェント
はエージェント\pi _A が探索していない状態を探すように、\pi _B
エージェント はエージェント\pi _B が探索した状態に到達するように、\pi _A
ミニバッチ内の報酬を(非対称に)増減-
, ifr^i _A \gets r^i _A -1 {}^{\exists}j, |s^i _A - s^j _B| < \delta -
:r^j _B \gets r^j _B +N はN を満たす|s^i _A - s^j _B| < \delta の数s^i _A
-
- エージェント
の初期化方法は2パターン\pi _B - independent-CER: タスクの初期分布どおりに初期化する (
)s^0 _B \sim p(s^0) - interect-CER: エージェント
の状態からランダムサンプルする (\pi _A )s^0 _B \sim p(s^i _A)
- independent-CER: タスクの初期分布どおりに初期化する (
- Hindsight Experience Replay (HER)と組み合わせることで、性能向上が見られる
原論文より引用
2. Remember and Forget for Experience Replay (ReF-ER)
G. Novati and P. Koumoutsakos, “Remember and Forget for Experience Replay”, ICML (2019) (arXiv, code)
- 現在の方策とあまりに離れている行動方策から取得された遷移の利用を制限することで、サンプル効率を向上させる手法
- 重要度(importance)を次のように定義:
ただし、\rho _t = \frac{\pi (a_t\mid s_t)}{\mu_t(a_t\mid s_t)} : 現在の方策、\pi : 行動方策\mu _t -
なら "near-policy"、それ以外なら "far-policy"\frac{1}{c_{\text{max}}} < \rho _t < c_{\text{max}} -
ルール1: far-policy の時、損失のgradientを0にする。
\hat{g}(w) \to 0 -
ルール2: KLダイバージェンスによる正規化項を加える。
\hat{g}^D (w) = \mathbb{E}[\nabla D_{\text{KL}}(\mu _k (\cdot \mid s_k) \| \pi ^w(\cdot \mid s_k))] -
\hat{g}^{\text{ReF-ER}}(w) = \beta \hat{g}(w) + (1-\beta)\hat{g}^D(w) -
は焼きなまし項\beta \beta \gets \begin{cases}(1-\eta)\beta & \text{if}~\frac{n_{\text{far}}}{N} > D \cr (1-\eta)\beta + \eta & \text{otherwise}\end{cases} -
: 学習率、\eta : far-policyの遷移の数、n_{\text{far}} : 全遷移の数、N : ハイパーパラメータD
-
原論文からの引用。ReF-ER-1: ルール1のみ適用。ReF-ER-2: ルール2のみ適用。ReF-ER: ルール1&2の両方を適用
3. Experience Replay Optimization (ERO)
D. Zha et. al., “Experience Replay Optimization”, IJCAI (2019) (arXiv)
- Replay Bufferをマスクする確率を別のネットワークのReplay Policy (
)で学習させる手法\phi
(エージェントのPolicyとReplay Policyの両方をそれぞれ学習させる) - 遷移に対してスコア(
)を定義:\boldsymbol{\lambda} \boldsymbol{\lambda} = \lbrace \phi(f_{B_i}\mid \theta ^{\phi}) \mid \mathcal{B}_i \in \mathcal{B} \rbrace \in \mathbb{R}^N
ただし、 :f_{B_i} 番目の遷移の特徴量i - マスク(
)はベルヌーイ分布で作成\boldsymbol{I} \boldsymbol{I}\sim \text{Bernoulli}(\boldsymbol{\lambda}) - マスクが、1となる遷移の中から一様にエージェントの学習用ミニバッチをサンプルする
- サンプルした遷移に対して、新しいスコアを再計算して保存する
- Replay Policyは、replay reward (
: エピソードの累計報酬の増加量)を最大化するように学習させるr^r = r^c _{\pi} - r^c_{\pi ^{\prime}} \nabla _{\theta ^{\phi}}\mathcal{J} \sim \sum _{j:\mathcal{B}_j\in\mathcal{B}}~r^r \nabla _{\theta ^{\phi}} [I_j\log \phi + (1-I_j)\log (1-\phi)]
原論文より引用
4. Attentive Experience Replay (AER)
P. Sun et. al., “Attentive Experience Replay”, AAAI (2020) 34, 5900-5907
- 状態の類似度を計算し、類似度の高い状態をエージェントのpolicyの学習に利用する手法
- ミニバッチのサイズ
のk 倍の\lambda 個の遷移を一様にサンプルするk\times\lambda - (タスク依存の)類似度関数
を用いて、今の状態\mathcal{F} とサンプルしたs_i の類似度を計算し、s_k
類似度の高い 個をミニバッチに採用するk - MuJoCoには、コサイン類似度:
\mathcal{F}(s_i,s_k) = \frac{s_i \cdot s_k}{|s_i||s_k|} - Atari 2600には、512次元の埋め込み特徴量の差:
\mathcal{F}(s_i,s_k) = - |\phi (s_i) - \phi (s_k)|_2
- MuJoCoには、コサイン類似度:
-
は焼きなましパラメータで、\lambda と\lambda _0 \to 1 ステップを利用して徐々に変化\alpha \cdot T -
: ハイパーパラメータ、\alpha < 1 : トータルステップ数T
-
原論文より引用
5. Dynamic Experience Replay (DER)
J. Luo and H. Li, “Dynamic Experience Replay”, CoRL (2020) (arXiv)
- ロボットコントロール等のタスクにおいて、人間が作成したデモンストレーションだけではなく、タスクを成功したエピソードもデモンストレーションの一部として採用する手法
- デモンストレーション用に特別な領域を持つ複数のReplay Bufferを用意
\lbrace B_1,\dots, B_n \rbrace - Workerは、探索した遷移を無作為に選んだ
に保存し、タスクを成功した際には別のReplay BufferB_i にも保存する\mathbb{T} - Trainerは、無作為に選んだ
からpriorityに応じて遷移をサンプルし学習するB_j - 方策更新後にpriorityを更新する
- 定期的に、各Replay Buffer
のデモンストレーション領域の遷移をB_i の遷移で置き換える\mathbb{T}
原論文より引用
6. Neural Experience Replay Sampler (NERS)
Y. Oh et. al., “Learning to Sample with Local and Global Contexts in Experience Replay Buffer”, ICLR (2021) (arXiv)
- Replay Bufferからサンプルする確率を別のネットワークNERSで学習する手法
- EROと異なり、PERのpriority (=TD誤差の大きさ)にあたるスコア(
)を予測する\sigma_i
- EROと異なり、PERのpriority (=TD誤差の大きさ)にあたるスコア(
- Actor/Criticの学習に利用したミニバッチの遷移に対して
- スコア(
)をNERSで更新する\sigma _i - インデックス(
)を保存しておく (I )\mathcal{I} = \mathcal{I} \cup I
- スコア(
- エピソード終端で、
から一様にサンプルし(\mathcal{I} )、replay rewardI_{\text{train}} \sim \mathcal{I} を最大化するようにNERSを学習させる (その後r^{\text{re}} に戻す)\mathcal{I} = \empty - 入力は、
D(I_{\text{train}}) = \lbrace s_{\kappa(i)}, a_{\kappa(i)}, r_{\kappa(i)}, s_{\kappa(i)+1},\kappa(i), \delta _{\kappa(i)}, r_{\kappa(i)} +\gamma \max _a Q_{\hat{\theta}}(s_{\kappa(i)},a) \rbrace _{i\in I_{\text{train}}} -
:\kappa(i) 番目の時刻、i : TD誤差、\delta _{\kappa(i)} : 割引率、\gamma : ターゲットネットワークのパラメータ\hat{\theta} \nabla _{\phi}\mathbb{E}_{\text{train}}[r^{\text{re}}] = \mathbb{E}_{I_{\text{train}}}\left [ r^{\text{re}}\sum _{i\in I_{\text{train}}} \nabla _{\phi}\log \sigma _i (D(I_{\text{train}})) \right ]
- 入力は、
- NERSは3種類のネットワーク(
)の組合せ (下の引用図も参照)f_l, f_g, f_s -
: ローカルネットワーク。遷移ごとに計算f_l -
: グローバルネットワーク。遷移ごとに計算し、ミニバッチで平均するf_g -
: スコアネットワーク。f_s の出力とf_l の出力を結合したものを入力に各遷移のスコア (f_g ) を計算\sigma _i
-
原論文より引用
原論文より引用
追記 2/18
Experience Replayの理論に関する調査記事を書きました。
Discussion