2560 文字
13 分
EMアルゴリズム使った強化学習 MPOとV-MPOについて

はじめに#

強化学習苦手の会 Advent Calendar 2020 19日目に書いた自分の記事の転載です。

今回話したいネタが、一年前に読んでもピンと来なかったMaximum a Posteriori Policy Optimization (MPO)とそのOn-Policy版のV-MPOです。私は数学苦手なので、踏み込んだ話よりこれらの論文を読んで「面白いな」と思ったポイントを共有していきたいです。(間違っていれば教えて下さい)

面白いと思った部分が

  • Soft Actor CriticとMPOが兄弟?
  • MPOの方策改善にEMアルゴリズムを使っている
  • MPOとV-MPOの関係は?

です。

MPOとV-MPO#

Soft Actor Critic と (V-)MPOは兄弟?#

Soft Actor CriticとMPOはどちらもControl as Inferenceから発展したアルゴリズムです。[DL輪読会]Control as Inferenceと発展 がとても参考になるのでぜひ読んでみてください。 Control as Inferenceの前に基礎となるMDPから単純なOn-Policy方策勾配アルゴリズムの変遷について話したいと思います。

MDPと簡単な方策勾配#

一般的なマルコフ決定過程(MDP)は、時刻ttにおける状態 stS\mathbf{s}_{t}\in\mathcal{S}と行動atA\mathbf{a}_{t} \in \mathcal{A}と報酬 rt=r(st,at){r}_{t} = r(\mathbf{s}_{t} , \mathbf{a}_{t} )を定義します。状態遷移確率を p(st+1st,at)p(\mathbf{s}_{t+1} | \mathbf{s}_{t}, \mathbf{a}_{t})とします。

エージェントはパラメトリック方策分布 πθ(atst)\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)と定義し、軌跡 τ=(s1,a1,)\tau=\left(s_{1}, a_{1}, \ldots\right)に対する分布を

p(τ)=ρ(s1)t=1Tp(st+1st,at)πθ(atst)(1)p(\tau)=\rho\left(\mathbf{s}_{1}\right) \prod_{t=1}^{T} p\left(\mathbf{s}_{t+1} \mid \mathbf{s}_{t}, \mathbf{a}_{t}\right) \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right) \tag{1}

とします。そして、(語弊がありますが)MDPでの目的はリターン(報酬の総和)を最大化する方策のパラメータベクトルθ\thetaをみつけることです。

θ=argmaxθEτπθ[t=1Tr(st,at)](1)\theta^{\star}=\arg \max_{\theta} E_{\tau \sim \pi_{\theta}}\left[ \sum_{t=1}^{T}r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right] \tag{1}

J(θ)=Eτπθ[t=1Tr(st,at)]J(\theta) = E_{\tau \sim \pi_{\theta}}\left[ \sum_{t=1}^{T}r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right] を目的関数とします。この目的関数の最大化するためには、勾配を求めることが考えられます。それが

θJ(θ)=Eτπθ[t=1Tr(st,at)θlnπθ(atst)](3)\nabla_{\theta} J(\theta) = E_{\tau \sim \pi_{\theta}}\left[ \sum_{t=1}^{T}r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) \nabla_{\theta} \ln \pi_{\theta}(\mathbf{a}_{t} \mid \mathbf{s}_{t}) \right] \tag{3}

で、α\alphaを学習率としたとき

θk+1=θk+αθJ(πθk)(4)\theta_{k+1}=\theta_{k}+\alpha \nabla_{\theta} J\left(\pi_{\theta_{k}}\right) \tag{4}

と、方策パラメータを更新していきます。 このr(st,at)r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)をさまざまな関数に置き換えていき、一般化させたのがGAE(General Advantage Estimation)のモチベーションですよね。

最適性制御のための推論#

一般的な強化学習が期待報酬を最大化する軌跡を見つけることに対して、Control as Inferenceでは、軌跡上の事前分布から、タスクが達成や方策が改善したなどの結果を条件付けし、この結果と一致する軌跡の事後分布を推定します。(1)(1)に対して、最適性変数 Ot={0,1}O_t = \{ 0, 1\}を加えます。そのとき軌跡に対する尤度関数を とします。このとき、 η\eta は温度です。

pπ(O=1τ)exp(trtη)(5)p_{\pi}(O=1 \mid \tau) \propto \exp \left(\frac{\sum_{t} r_{t}}{\eta}\right) \tag{5}

一般的な強化学習が(2)(2)のようにリターンを最大化する方策を見つけるのに対して、Control as Inferenceでは、最適性変数の対数周辺尤度の下界を計算します。ここの計算の違いが、SACとMPOの生き別けれ(?)になります。(気持ちが伝わってほしいだけなので、式変形は色々省いていたりしてます; 簡単のため事前分布logp(θ)\log p(\theta)を省いたりしてます)

上記の式を語弊を恐れずに以下のように解釈することができます。

面白ポイント:もともと、一般的な強化学習に最適性変数を加えることによって、ベイズの枠組みで最適制御問題を確率的に推論できるようになりました。SACは、対数周辺尤度の下限に対して、logp(τ)\log p(\tau) を対数一様分布と仮定することで無視し、変分分布を方策πθ\pi_{\theta}として目的関数を求めています。それに対して、MPOは、確率分布ppを方策πθ\pi_{\theta}としています。そして、変分分布qqをノンパラメトリックな分布とし、logpθ(O=1)\log p_\theta(O=1)の下限がなるべくタイトになるようなqqを計算(推定 or 学習)してから、その変分分布によって再重み付けされたサンプルを用いてπθ(as)\pi_\theta(a | s)を学習します。

方策改善にEMアルゴリズムを使っている#

上記した面白ポイントで言及している通り、

そして、変分分布qqをノンパラメトリックな分布とし、logpθ(O=1)\log p_\theta(O=1)の下限がなるべくタイトになるようなqqを計算(推定 or 学習)してから、その変分分布によって再重み付けされたサンプルを用いてπθ(as)\pi_\theta(a | s)を学習

する手段として

  • E-step: qqについて J(q,πθ)\mathcal{J}(q, \pi_\theta) を最適化する
  • M-step: πθ\pi_\thetaについて J(q,πθ)\mathcal{J}(q, \pi_\theta) を最適化する

のステップそれぞれを交互に座標上昇してJ\mathcal{J}を最適化するEMアルゴリズムを使っています。私は、このControl as Inferenceの文脈から派生したからこそEM-アルゴリズムのようなベイズ推定がRLで使えるということがアツく感じます。

ここで、少し余談(ホントは書きたいがボリューム増えそうで心が折れた話)です。 E-stepでは KL(q(ast)πθ(ast))\mathrm{KL}\left(q(a | s_t) \| \pi_{\theta}(a | s_t) \right)を最小化するようなqqを見つけるわけなんですが、式変形をする途中で、式(5)(5)の温度η\etaに対して、以下のような制約付き最適化問題を考えるようになります。

maxqμq(s)q(as)Qθi(s,a)dads s.t.μq(s)KL(q(as),π(as,θi))da<ϵ μq(s)q(as)dads=1(6)\begin{array}{l} \max {q} \int \mu{q}(s) \int q(a \mid s) Q{\theta_{i}}(s, a) d a d s \\\ \text {s.t.} \int \mu_{q}(s) \mathrm{KL}\left(q(a \mid s), \pi\left(a \mid s, \theta_{i}\right)\right) d a<\epsilon \\\ \iint \mu_{q}(s) q(a \mid s) d a d s=1 \end{array} \tag{6}

上記の制約付き最適化問題から以下のラグランジュ方程式(緩和)を考え、η\etaについての双対関数を導出します。これを最適化します。

L(q,η,γ)=μq(s)q(as)Qθi(s,a) dads+  η(ϵμq(s)q(as)logq(as)π(as,θi))+γ(1μq(s)q(as)dads)\begin{aligned} L(q, \eta, \gamma)=& \int \mu_{q}(s) \int q(a \mid s) Q_{\theta_{i}}(s, a) \text { dads+ } \\\ & \eta\left(\epsilon-\int \mu_{q}(s) \int q(a \mid s) \log \frac{q(a \mid s)}{\pi\left(a \mid s, \theta_{i}\right)}\right)+\gamma\left(1-\iint \mu_{q}(s) q(a \mid s) d a d s\right) \end{aligned}

一年前この論文を読んだとき、ラグランジュ緩和がわからなかった(今もわからん)ので、現在わかってることを話してみます。(ここも怪しいので間違っていたら教えて下さい)

  1. (6)(6)のような難しい制約問題がある
  2. すべての制約を最大化したい方程式にまとめる。→ラグランジュ緩和
  3. ラグランジュ緩和した方程式の最大値 \geq 下の制約問題の最大値(となる)

→ 良いラグランジュ乗数を見つけたい

  • ラグランジュ未定乗数法を使う
  • MPOのように双対関数を導いて乗数について最大化を行う

このようにして、制約問題を最大化することができます。

私は今までこのような制約問題に対して、TRPOのようなペナルティ法を用いるアルゴリズムは見たことがありますが、双対問題から解くのは見たことがなく、面白ポイントだと思いました。 最適化数学的には、ラグランジュ関数のラグランジュ乗数を双対関数から簡単に見つけづらい→ペナルティ法を使うという論理だと思うので、逆に双対関数を使っているのが面白いんですかね。

V-MPOとMPOの関係は?#

尤度関数が違う#

MPOの尤度関数が(5)(5)に対してV-MPOでは状態-行動に対する尤度関数を

pθold (I=1τ)exp(tAπθ old (st,at)η)(7)p_{\theta_{\text {old }}}(\mathcal{I}=1 \mid \tau) \propto \exp \left(\frac{\sum_{t} A^{\pi_{\theta \text { old }}(s_t, a_t)}}{\eta}\right) \tag{7}

としてます。SACやMPOのOtO_tが行動に対して報酬が最大になるというバイナリイベントとして解釈できたのに対して、V-MPOのIt\mathcal{I}_tは前回の方策に対して現在の方策が相対的に改善したかというバイナリイベントとして解釈できます。方策が改善されればI=1\mathcal{I}=1で、されてなければI=0\mathcal{I}=0です。

方策評価が違う#

MPOの方策評価に Retraceアルゴリズム(off-policy)

LV(ϕ)=minϕEμ0(s),b(as)[(Qθi(st,at,ϕ)Qtret )2], with  Qtret =Qϕ(st,at)+j=tγjt(k=t+1jck)[r(sj,aj)+Eπ(asj+1)[Qϕ(sj+1,a)]Qϕ(sj,aj)] ck=min(1,π(aksk)b(aksk))(8)\begin{align} \mathcal{L}_{V}(\phi)&=\min_{\phi} \mathbb{E}_{\mu_{0}(s), b(a \mid s)}\left[\left(Q_{\theta_{i}}\left(s_{t}, a_{t}, \phi\right)-Q_{t}^{\text {ret }}\right)^{2}\right], \text { with } \\\ Q_{t}^{\text {ret }}&=Q_{\phi^{\prime}}\left(s_{t}, a_{t}\right)+\sum_{j=t}^{\infty} \gamma^{j-t}\left(\prod_{k=t+1}^{j} c_{k}\right)\left[r\left(s_{j}, a_{j}\right)+\mathbb{E}_{\pi\left(a \mid s_{j+1}\right)}\left[Q_{\phi^{\prime}}\left(s_{j+1}, a\right)\right]-Q_{\phi^{\prime}}\left(s_{j}, a_{j}\right)\right] \\\ c_{k}&=\min \left(1, \frac{\pi\left(a_{k} \mid s_{k}\right)}{b\left(a_{k} \mid s_{k}\right)}\right) \end{align} \tag{8}

を使っているのに対して、V-MPOの方策評価に nnステップ目的(on-policy)

LV(ϕ)=12DstD(Vϕπ(st)Gt(n))2(9)\mathcal{L}_{V}(\phi)=\frac{1}{2|\mathcal{D}|} \sum{s_{t} \sim \mathcal{D}}\left(V_{\phi}^{\pi}\left(s_{t}\right)-G_{t}^{(n)}\right)^{2} \tag{9}

を使っているのが、MPO(off-policy)とV-MPO(on-policy)の違いです。

V-MPOのAdvantage関数の計算#

V-MPOでは軌跡のサンプルのうち、advantage関数の値が高い50%をE-Stepのバッチに用いることによって、大幅に学習が改善されたそうです。この考え方は共分散行列適応進化戦略(CMA-ES)のテクニックに似ているそうです。 数学的にこのようなことをして良いと言えるのかまだよくわかりません…

最後に#

MPO、V-MPOは今までのような強化学習の方策改善とは違いEMスタイルを用いている点が面白いですよね。その土壌としてControl as Inferenceという変分ベイズが背景にあるので、ベイズの恩恵が受けられそうで、これからの強化学習の発展が楽しみです。 本当は、実装してみたり、式変形をもっと丁寧に書いたり、理解が歯抜けになっている部分をきちんと埋めてからこの記事を書きたかったですが、時間がなかったり、アカデミックじゃない個人でこのような論文を精読するにはなかなか骨が折れます…。せっかく強化学習苦手の会があるので、積極的に参加して話し合っていきたいです。

前回のアドベントカレンダQ-learningの収束性について書いたの2年前か… :thinking_face: 時間がすぎるの速いですね

もうすぐ一年が終わりますが、皆さん来年もよろしくお願いします。

EMアルゴリズム使った強化学習 MPOとV-MPOについて
https://fuwari.vercel.app/posts/2020-12-v-mpo/
作者
1eon
公開日
2020-12-01
ライセンス
CC BY-NC-SA 4.0