# 方策勾配法 ## 定義 方策勾配法(policy gradient method)は、方策 $\pi_\theta(a|s)=p(a|s;\theta)$ をパラメータ $\theta$ で特徴づけたうえで、期待収益 $J(\theta)$ の $\theta$ についての勾配を求め、その勾配方向にパラメータを更新することで期待収益を直接最大化する強化学習の手法である。価値(Q学習・TD学習など)を経由して方策を間接的に改善する価値ベースの手法とは対照的なアプローチであり、価値ベースが「価値」というクッションでサンプルのばらつきを一度吸収する分安定して学習しやすいのに対し、方策勾配ベースはサンプルごとのばらつきを直接受けて分散が大きく不安定になりやすい一方、不偏推定であるという特徴を持つ。行動が連続値・高次元で $\arg\max_a Q(s,a)$ を高速に求めにくい場合には、状態から直接行動をサンプリングできる方策勾配法が使われやすい。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12) ## 対数尤度比法と方策勾配定理 確率分布(方策)のパラメータについての勾配 $\partial J(\theta)/\partial\theta$ は素朴には計算できないが(勾配をとった $\nabla_\theta \pi_\theta(x)$ 自体は確率分布でなくなるためサンプリングでの推定ができない)、$\partial\pi(a|s;\theta)/\partial\theta=\pi(a|s;\theta)\cdot\partial\log\pi(a|s;\theta)/\partial\theta$ という対数の微分公式による変形(対数尤度比法、log likelihood ratio)を使うことで、勾配を確率分布からのサンプリングを使ったモンテカルロ推定が可能な形に変換できる。エピソード中に行動を1つしかとらない単純なケースでは、報酬 $r(s,a)$ を使って: $\frac{\partial J(\theta)}{\partial\theta}=\mathbb{E}_{s\sim d(s),\,a\sim\pi(a|s;\theta)}\left[\frac{\partial\log\pi(a|s;\theta)}{\partial\theta}r(s,a)\right]$ これを一般のエピソード長に拡張したものが**方策勾配定理**であり、報酬 $r(s,a)$ を単に行動価値 $Q(s,a)$ に置き換えるだけで、方策の勾配を $\mathbb{E}[\partial\log\pi_\theta(a|s)/\partial\theta \cdot Q(s,a)]$ として正確に求められることを示す(Sutton+ NIPS 1999)。方策勾配法において行動価値 $Q(s,a)$ さえ推定できれば、方策のパラメータ勾配を計算できる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12) ## REINFORCE と Actor-Critic 法 行動価値 $Q(s,a)$ の求め方によって2つのアプローチがある。 - **REINFORCE**(モンテカルロ方策勾配法): 現在のエピソードで得られた収益 $G$ を行動価値の不偏推定量として使い、$\partial J(\theta)/\partial\theta=\mathbb{E}[\partial\log\pi_\theta(a|s)/\partial\theta\cdot G]$ で方策を更新する。 - **Actor-Critic法**: 行動価値 $Q(s,a)$ をTD学習を使ってデータから同時に推定する。行動価値を「Critic」、方策 $\pi(a|s;\theta)$ を「Actor」と呼び、CriticはActorの良し悪しを評価し、ActorはCriticの評価を最大化するように行動を修正していく。CriticはTD法、ActorはREINFORCEと同じ対数尤度比法の勾配で更新する。 (Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12) ## アドバンテージ価値によるベースライン導入 対数尤度比法による勾配のモンテカルロ推定は各サンプルが不偏推定であるが、確率で割る項 $1/p(x)$ が出てくるために分散が大きくなりがちである。確率変数 $a$ に依存しない定数(ベースライン、baseline)を推定値から引いても勾配の期待値は変わらない(確率分布の合計が1で変わらないため)ことを利用し、分散を小さくできる。最も広く使われるベースラインは状態価値 $V(s)$ であり、この場合の更新目標はアドバンテージ価値 $A(s,a)=Q(s,a)-V(s)$ になる。アドバンテージ価値が正であれば、その行動をより選択するように、負であれば選択しないように方策を更新する。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12) 囲碁AlphaGoは、教師あり学習で方策ネットワークを初期化した後、REINFORCEによる自己対戦の強化学習で方策を改善する(収益 $z$ は勝敗の $\pm 1$)という方策勾配法の実例である(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.14)。詳細は [[AlphaGo]] を参照。 ## 横断的知見 - **古典的な方策勾配法(REINFORCE・Actor-Critic・アドバンテージベースライン)は、LLMのRL事後学習で使われるGRPOの直接の祖先にあたる**: [[検証可能報酬による強化学習]] が記録するGRPO(Group Relative Policy Optimization)は、複数ロールアウトに対する報酬の相対順位からアドバンテージを推定して方策を更新するが、これは本ページのREINFORCE(収益を行動価値の不偏推定として使う)とアドバンテージベースライン(状態価値の代わりにグループ内の相対評価を使う)の直接の応用である。DeepSeekMathがGRPOを提案した動機(価値関数モデルを別途学習するコストの回避)は、本ページのActor-Critic法が抱える「Critic(価値関数)を別途学習する必要がある」というコストに対する解決策と位置づけられる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12, [[検証可能報酬による強化学習]]) - **PPOのKLペナルティ付き代理目的関数は、Actor-Criticの構造を引き継ぎつつ「安定した学習」という価値ベースの長所を方策勾配法側に取り込む試みと解釈できる**: [[人間フィードバックからの強化学習]] が記録するPPO目的関数は $r_\theta(x,y)-\beta\log(\pi^{RL}/\pi^{SFT})$ という形でKL項を導入するが、これは本ページが指摘する「方策勾配ベースは分散が大きく不安定になりやすい」という性質を、初期方策からの乖離を抑えることで緩和する設計だと理解できる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] §4.12, [[人間フィードバックからの強化学習]]) ## 未解決の問い - 古典的な方策勾配定理は行動価値 $Q(s,a)$ さえ求まれば勾配が正確に計算できると主張するが、GRPOのようにグループ内相対比較でアドバンテージを近似する場合、この正確性はどの程度失われるか。近似誤差とグループサイズの関係は本チャプターでは扱われていない。 - Actor-Critic法における「Critic」(価値関数)を学習しない設計(GRPO)と学習する設計(古典的Actor-Critic、PPOの価値ヘッド)のどちらが大規模言語モデルのRLでは有利か、本ページのソースだけでは判断できない。 ## 関連 - source: [[@2022__Gihyo__ディープラーニングを支える技術〈2〉 - Chapter 4 深層強化学習]] - concept: [[強化学習]] / [[ベルマン方程式]] / [[検証可能報酬による強化学習]] / [[エージェント型強化学習]] / [[人間フィードバックからの強化学習]] - entity: [[AlphaGo]] ## 出典 - 岡野原大輔, 『ディープラーニングを支える技術〈2〉』, 技術評論社, 2022, 第4章, §4.12.