方策勾配法と方策勾配定理の意味について解説

1. 方策勾配法とは?

方策勾配法(Policy Gradient)は、強化学習の代表的な手法のひとつです。 AI(エージェント)が「どのように行動すれば報酬を最大化できるか」を学ぶ際、方策勾配法では行動のルール(方策)そのものを少しずつ改良していきます。

方策にパラメータ$\theta$を導入するので、$\pi_\theta(a|s)$と表記されます。

はるか
はるか
最近、方策勾配法ってよく聞く。
ふゅか
ふゅか
エージェントが「どう動けば得をするか」を学ぶ仕組みよ。行動のルール自体を調整していくのが特徴ね。

2. 方策ベースと価値ベース

強化学習には大きく2つの考え方があります。

手法 学ぶ対象
価値ベース 行動の価値(Q値など)を学ぶ Q学習など
方策ベース 行動そのものの確率分布を学ぶ 方策勾配法

方策ベースの手法では、「どの行動をどれくらいの確率で取るか」を表す方策を直接学習します。 この関数には「パラメータ(θ)」があり、AIはこのパラメータを少しずつ更新していくことで方策を改善していきます。

一方、価値ベースの手法では価値関数から方策を決定する。

3. 基本の考え方

エージェントの目標は、得られる報酬の合計(期待収益)を最大化することです。

そのために、まず環境とのやり取りで得られる一連のデータ、すなわちMDP(マルコフ決定過程)エピソードを次のように表します。

$$ \tau = (S_0,A_0,R_0,S_1,A_1,R_1,S_2,A_2,R_2\cdots,S_t,A_t,R_t,S_{t+1})$$

ここで、

  • $S_t$:時刻 tの状態(state)
  • $A_t$:その状態で選択した行動(action)
  • $R_t$:その行動によって得られた報酬(reward)

方策(policy)$\pi_\theta$は、このエピソード$\tau$に従います

次に、割引率$\gamma$を使って、エピソード全体で得られる収益(return)を考えます。

$$G(\tau) =\sum_{t=0}^{T} \gamma^t R_t$$

収益の期待値を $ J(\theta) $ とすると、

$$J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}[G(\tau)]$$

方策のパラメータ$\theta$は、勾配(gradient)を使って次のように更新します。

\[ \theta \leftarrow \theta + \alpha \nabla_\theta J(\theta) \]

ここで

  • $\alpha$:学習率(どのくらいパラメータを変えるか)
  • $\nabla_\theta J(\theta)$:報酬を増やす方向(勾配)

つまり、「報酬が増えた方向」にパラメータ$\theta$を動かします。この方法は勾配上昇法と呼ばれます。

 

4. 方策勾配法で重要な数式(方策勾配定理)

方策勾配法や方策ベースの手法でよく登場するのが、方策勾配定理と呼ばれる数式です。これは、報酬の期待値を最大化するために、方策パラメータの勾配をどのように求めるかを示しています。

$$\nabla_\theta J(\theta) = E_{\tau \sim \pi_\theta}[\nabla_\theta \log \pi(A|S)(Q(S,A)-b(s))]$$

ここで、$b(S)$ はベースラインと呼ばれる値です。この項は期待値が 0 であるため、あってもなくても理論上は変わりません。ただし学習の安定化のために導入され、一般的には平均が使われます。

一応期待値の中にあるので大文字にしてます。

証明はここではしません。別の記事でするかもしれないです。

4.1. 意味

ここでは、数式の意味を考えてみましょう。

いきなりナブラとかでてきてごつい感じですね。

$$\nabla_\theta J(\theta) = E_{\tau \sim \pi_\theta}[\nabla_\theta \log \pi(A|S)(Q(S,A)-b(S))]$$

勾配を計算しているので例えば、偏微分の式で表すと、方策勾配定理は次のように表されます。

$$ \frac{\partial J(\theta)}{\partial \theta_i} = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \frac{\partial}{\partial \theta_i} \log \pi(A|S) \, \big(Q(S,A) – b(S)\big) \right] $$

この勾配を先ほど紹介した勾配上昇法の更新式に代入します。

\[ \theta \leftarrow \theta + \alpha \nabla_\theta J(\theta) \]

ここで符号に注目して考えると、$\nabla_\theta J(\theta) > 0$ であるとき、以下の2つのパターンが見えてきます。

  1. [1] $q(s,a) – b(s) > 0$ かつ $\nabla_\theta \log \pi(a|s) > 0$
  2. [2] $q(s,a) – b(s) < 0$ かつ $\nabla_\theta \log \pi(a|s) < 0$

[1] のケースの場合、

$Q(s,a) – b(s) > 0$ ということは、平均(ベースライン)よりも行動価値関数(行動・状態が与えられたときの収益の期待値)が高いことを意味します。

また、$\nabla_\theta \log \pi(a|s) > 0$ ということは、$\pi(a|s)$ が増える方向へ$\theta$を更新、すなわちより良い行動をとりやすくなることを表しています。

[2] のケースの場合、

$Q(s,a) – b(s) < 0$ ということは、平均(ベースライン)よりも行動価値関数が低く、望ましくない行動であることを意味します。

さらに、$\nabla_\theta \log \pi(a|s) < 0$ ということは、$\pi(a|s)$ が減る方向へ$\theta$を更新、つまり良くない行動をとりにくくすることを表しています。

このように、方策勾配定理では「良い行動の確率を上げ、悪い行動の確率を下げる」という仕組みが成り立っています。

はるか
はるか
方策勾配定理って、結局どういう意味?
ふゅか
ふゅか
簡単に言うと、「良い行動の確率を上げて、悪い行動の確率を下げる」式なの!
はるか
はるか
勾配が正なら強化、負なら抑制。

5. 派生手法

方策勾配法の流れを改良した手法は多く存在します。

手法 特徴
REINFORCE 最も基本的な方策勾配法。報酬が直接反映されるが分散が大きい。
A2C / A3C 並列環境を使って学習を安定・高速化。
TRPO 方策を更新しすぎないよう制約を加える。
PPO TRPOをシンプルに改良。現在の主流アルゴリズム。

特に PPO(Proximal Policy Optimization) は、強化学習の研究やゲームAI、ロボット制御などで広く使われています。

PR
ノートンストア