価値を経由せず、方策 $\pi_\theta(a\mid s)$ を直接パラメータ化して、目的関数を勾配上昇で上げる。連続行動と確率的方策に強く、PPOをはじめとする現代強化学習の主流へつながるアプローチだ。

講義スライド: PDF

なぜ方策を直接扱うか

価値ベースは価値関数を学び、そこから貪欲に方策を取り出す。方策ベースは方策を直接パラメータに置いて最適化する。両者を合わせたものがactor-criticだ。

方策を直接扱うと良い点がいくつもある。収束がより滑らかで、連続・高次元の行動を自然に扱え、何より確率的方策を出せる。欠点は局所最適に陥りやすく、方策評価が非効率で分散が大きいことだ。

確率的方策がなぜ本質的に必要なのかを、シルバーは二つの例で示す。一つ目はじゃんけんだ。決定的に出せば相手に見抜かれ搾取される。唯一の最適解(ナッシュ均衡)は、三つを1/3ずつ均等に出す確率的方策だ。価値ベースの貪欲方策は、こうした最適解を原理的に表現できない。二つ目はエイリアシング格子だ。二つのマスが観測上まったく同じで区別できないと、決定的方策はそのマスでいつも同じ方向を選び、片側で行き止まりに閉じ込められる。確率的方策は左右を混ぜて抜け出す。部分観測において無作為が薬になる場面だ。

何を最大化するか

まず目的関数を定めねばならない。エピソード型の問題なら開始状態の価値 $J_1(\theta) = v_{\pi_\theta}(s_1)$ だ。終わりのない連続型なら、方策を長く回したとき各状態に留まる割合(定常分布 $d^{\pi_\theta}(s)$)で重み付けした平均価値や、ステップあたりの平均報酬を使う。三つの目的関数は形が異なるが、驚くべきことに方策勾配定理は三つすべてに同じ形で成り立つ。だから一つだけ導出しておけば残りがついてくる。

有限差分

勾配を求める最も愚直な方法は有限差分だ。パラメータを一軸ずつ少し揺らして目的関数がどれだけ変わるかを測り、傾きを近似する。パラメータが $n$ 個なら $n$ 回評価せねばならず遅く雑音も多いが、方策が微分不可能でもよく実装が易しい。実際、四足歩行ロボットAIBOの高速歩行はこの方法で調整された。脚の軌道を定める十二個のパラメータを揺らしながら、人が手で合わせた歩みより速い毎秒291ミリメートルの歩行を、ロボットが自力で見つけ出した。しかしパラメータが増えると有限差分はすぐに壁にぶつかり、解析的な勾配が必要になる。

モンテカルロ方策勾配

解析的に勾配を求めるにはトリックが一つ要る。目的関数の勾配には $\nabla_\theta \sum_a \pi_\theta(a\mid s)\, Q(s,a)$ のような和が現れるが、これは方策に関する期待値ではなくサンプルで推定できない。ここで尤度比の恒等式 $\nabla_\theta \pi_\theta = \pi_\theta \nabla_\theta \log \pi_\theta$ を使うと、再び $\pi_\theta$ に関する期待値に戻る。このとき飛び出す $\nabla_\theta \log \pi_\theta(a\mid s)$ がスコア関数だ。logはここから来る。

$$\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\!\left[ \nabla_\theta \log \pi_\theta(a\mid s)\; q_{\pi_\theta}(s,a) \right]$$

スコア関数の形は方策ごとにきれいに落ちる。離散行動のソフトマックス方策なら、スコアは「選んだ行動の特徴 $\phi(s,a)$ から方策下の平均特徴を引いたもの」だ。平均より良かった方向へ確率を押すという意味だ。連続行動のガウス方策なら $(a-\mu)\phi/\sigma^2$ で、実際の行動が平均より上で結果が良かったなら、平均をそちらへ動かす。

$q$ の位置に実際のリターン $G_t$ を入れるとREINFORCE、すなわちモンテカルロ方策勾配だ。不偏だが分散が大きく学習が揺れる。シルバーのパックワールドの例のように、連続で力を加える問題で方策勾配が自然に効く。

actor-critic

分散を減らす鍵は、$G_t$ の代わりにクリティックが推定した価値を使うことだ。クリティックは方策を評価する問題(第4講)を解き、アクターはその評価で方策を押す。両者を一緒に学習する。

ここにベースラインを引くと分散がさらに減る。核心はスコア関数の期待値が0だという点だ。$\sum_a \nabla_\theta \pi_\theta(a\mid s) = \nabla_\theta \sum_a \pi_\theta = \nabla_\theta 1 = 0$ なので、状態だけに依存するどんなベースライン $B(s)$ を引いても勾配の期待値はそのままだ。分散だけ減る。最良のベースラインは状態価値 $V(s)$ で、そのとき $q(s,a) - V(s)$ がまさにアドバンテージ関数 $A(s,a)$ だ。

実用的にもっと嬉しい事実がある。TD誤差 $\delta = r + \gamma V(s') - V(s)$ の期待値がちょうどアドバンテージだ。

$$\mathbb{E}[\delta \mid s,a] = Q(s,a) - V(s) = A(s,a)$$

だから $Q$ 近似器を別に置く必要なく、$V$ 一つだけ学べばアドバンテージを不偏に得られる。これがA2Cへつながる実務標準だ。

クリティックに近似を使うと勾配が狂わないか心配になるが、クリティックを方策と「適合する」ように選べば(特徴がスコア関数と合い誤差を最小化すれば)近似を使っても勾配が正確だという定理がある(適合関数近似)。また第4講で見たMCとTD(0)とTD(λ)のスペクトルは、クリティックだけでなくアクターにもそのまま適用される。アクターの目標にリターン(高分散)を使うか、TD誤差(高バイアス)を使うか、適格度トレースでその間を混ぜるかを選べる。

自然方策勾配

もう一歩。同じ方策を別のパラメータでも表現できるが、素朴な勾配は表現の仕方によって方向が変わる。自然方策勾配は、パラメータ空間ではなく方策(分布)空間で一定距離だけ動くように、フィッシャー情報行列で勾配を正す。驚くべきことに適合近似と組み合わせると、自然勾配の方向がクリティックのパラメータ $w$ そのものになる。アクターをクリティックの方向へ押せばよいという意味だ。後のTRPOとPPOが、方策が一度に遠くへ行きすぎないようKL距離を制約する発想は、まさにこの自然勾配の末裔だ。

六つの顔、一つの式

講義は方策勾配のさまざまな形を一つの表にまとめて終わる。すべてスコア関数に何かを掛けた形だ。

  • REINFORCE: スコア × リターン $G_t$
  • Q actor-critic: スコア × $Q_w(s,a)$
  • アドバンテージ actor-critic: スコア × $A_w(s,a)$
  • TD actor-critic: スコア × $\delta$
  • TD(λ) actor-critic: スコア × $\delta$、適格度トレースとともに
  • 自然 actor-critic: フィッシャー逆行列で上の勾配を正す

何を掛けるかがバイアスと分散のトレードオフを定める。このactor-criticとアドバンテージ推定が、信頼領域とクリッピングで安定化されたPPOのような現代手法の骨格だ。資料記事で予告した目標地点がここでつながる。