はじめに
前回の記事では、関数近似による価値関数学習について学びました。線形・非線形関数近似により、大規模・連続状態空間に対応できる強力な手法を理解しました。しかし、これまでの手法はすべて価値ベースのアプローチでした。
本記事では、強化学習のもう1つの主要なアプローチである方策勾配法(Policy Gradient Methods) について詳しく解説します。価値関数を経由せず、方策パラメータを直接最適化する手法を学びます。
これまでのシリーズで学んだ内容は以下の通りです。
-
第1回 - 強化学習の全体像と問題設定
-
第2回 - 環境側の定式化(マルコフ決定過程)
-
第3回 - エージェント側の概念とプランニングアルゴリズム(価値反復法)
-
第4回 - モデルフリー学習とモンテカルロ法
-
第5回 - 時間差分学習とTD誤差
-
第6回 - 多段階TD学習とEligibility Trace
-
第7回 - 関数近似による価値関数学習
-
第8回(本記事)- 方策勾配法の基礎理論
方策勾配法とは何か
価値ベース手法との違い
これまで学んできた手法を振り返ってみましょう。
価値ベース手法の流れでは、まず価値関数V^\pi(s)またはQ^\pi(s,a)を推定し、次に推定した価値関数から方策を導出(ε-greedy、Boltzmann選択など)し、最後に導出された方策で行動選択を行います。
価値ベース手法の利点は理論的基盤の堅固さと収束保証の明確さです。一方で、方策が価値関数に間接的に依存するため、複雑な行動空間では制約があります。また、確率的方策の学習にも制約があります。
方策勾配法の流れでは、方策\pi(a|s; \boldsymbol{\theta})をパラメータ\boldsymbol{\theta}で直接表現します。目的関数J(\boldsymbol{\theta})(期待累積報酬)を最大化するために勾配\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta})を計算し、パラメータ更新します。
方策勾配法の利点
連続行動空間への自然な対応
価値ベース手法では、連続行動空間で最適行動を見つけるために\max_a Q(s,a)の計算が必要になります。これは計算量的に困難な問題です。
方策勾配法では、方策自体が行動の確率分布として表現されるため、連続行動空間でも自然に対応できます。例えば、ガウス分布の平均と分散をパラメータ化すれば、連続行動を直接出力できます。
確率的方策の学習
価値ベース手法では、決定的な方策(各状態で1つの行動を選択)が基本となります。確率的方策を実現するには、ε-greedyやBoltzmann選択などの追加的な仕組みが必要です。
方策勾配法では、方策が確率分布として表現されるため、本質的に確率的です。これにより、探索と活用のバランスを自然に学習できます。
方策の滑らかな変化
価値関数の小さな変化が方策の大きな変化を引き起こす可能性があります(特に価値が近い行動間で)。
方策勾配法では、パラメータの変化に対して方策が滑らかに変化するため、安定した学習が期待できます。
方策の数学的表現
パラメトリック方策
方策\pi(a|s; \boldsymbol{\theta})をパラメータベクトル\boldsymbol{\theta} \in \mathbb{R}^dで表現します。
離散行動空間での方策表現
Softmax方策
最も一般的な表現の1つです。
\pi(a|s; \boldsymbol{\theta}) = \frac{\exp(\boldsymbol{\theta}^T \boldsymbol{\phi}(s,a))}{\sum_{a'} \exp(\boldsymbol{\theta}^T \boldsymbol{\phi}(s,a'))}
ここで、\boldsymbol{\phi}(s,a)は状態-行動ペアの特徴ベクトルです。
連続行動空間での方策表現
ガウス方策
連続行動に対しては、ガウス分布を使用することが一般的です。
\pi(a|s; \boldsymbol{\theta}) = \frac{1}{\sqrt{2\pi\sigma^2(s)}} \exp\left(-\frac{(a - \mu(s))^2}{2\sigma^2(s)}\right)
ここで、\mu(s)と\sigma^2(s)はそれぞれ平均と分散で、これらをニューラルネットワークなどでパラメータ化します。
方策勾配定理
目的関数の定義
方策勾配法の目標は、期待累積報酬を最大化することです。まず、基本的な概念を正確に定義してから、方策勾配定理の詳細な証明をします。
軌道と累積報酬の数学的定義
強化学習における軌道(trajectory)\tauは、エージェントと環境の相互作用から生成される状態・行動・報酬の系列です。
累積報酬G_0の定義
軌道\tauに対して、初期時刻からの累積報酬G_0を以下のように定義します。
G_0(\tau) = \sum_{t=0}^{T-1} \gamma^t r_t
ここで、\gamma \in [0,1)は割引率です。
エピソード型タスクの目的関数
開始状態が固定されている場合、目的関数は軌道に関する期待値として定義されます。
J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} [G_0(\tau)]
軌道の確率分布は方策\pi_{\boldsymbol{\theta}}によって決まるため、\tau \sim \pi_{\boldsymbol{\theta}}と表記します。
軌道確率の明示的表現
軌道\tauの確率P(\tau; \boldsymbol{\theta})は以下のように分解されます。
P(\tau; \boldsymbol{\theta}) = \mu_0(s_0) \prod_{t=0}^{T-1} \pi(a_t|s_t; \boldsymbol{\theta}) P(s_{t+1}, r_t|s_t, a_t)
ここで
-
\mu_0(s_0)は初期状態分布(多くの場合、s_0は固定なので\mu_0(s_0) = 1)
-
\pi(a_t|s_t; \boldsymbol{\theta})は方策(パラメータ\boldsymbol{\theta}に依存)
-
P(s_{t+1}, r_t|s_t, a_t)は環境の遷移確率(\boldsymbol{\theta}に依存しない)
目的関数を軌道確率で明示的に表現すると以下のようになります。
J(\boldsymbol{\theta}) = \sum_{\tau} P(\tau; \boldsymbol{\theta}) G_0(\tau)
継続型タスクの場合
無限長エピソードでは、定常分布\mu^\pi(s)を用いて平均報酬で目的関数を定義します。
J(\boldsymbol{\theta}) = \sum_s \mu^\pi(s) \sum_a \pi(a|s; \boldsymbol{\theta}) R(s,a)
ここで、\mu^\pi(s) = \lim_{T \to \infty} \frac{1}{T} \sum_{t=0}^{T-1} \mathbb{P}[S_t = s | \pi]は方策\piの定常状態分布です。
継続型タスクでも類似の方策勾配定理が成り立ちますが、本記事ではエピソード型に焦点を当てて解説します。
方策勾配定理の証明
方策勾配定理は、目的関数の勾配を環境のモデルを知らずに計算可能な形で表現する基本定理です。
定理の主張
詳細な証明
Step 1: 目的関数の勾配
目的関数J(\boldsymbol{\theta}) = \sum_{\tau} P(\tau; \boldsymbol{\theta}) G_0(\tau)の勾配を求めます。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \sum_{\tau} \nabla_{\boldsymbol{\theta}} P(\tau; \boldsymbol{\theta}) G_0(\tau)
Step 2: 対数微分法の適用
\nabla_{\boldsymbol{\theta}} P(\tau; \boldsymbol{\theta}) = P(\tau; \boldsymbol{\theta}) \nabla_{\boldsymbol{\theta}} \log P(\tau; \boldsymbol{\theta})を使用します。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \sum_{\tau} P(\tau; \boldsymbol{\theta}) G_0(\tau) \nabla_{\boldsymbol{\theta}} \log P(\tau; \boldsymbol{\theta})
期待値の形に書き直すと以下のようになります。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} [G_0(\tau) \nabla_{\boldsymbol{\theta}} \log P(\tau; \boldsymbol{\theta})]
Step 3: 軌道確率の対数勾配の計算
軌道確率の対数を計算します。
\log P(\tau; \boldsymbol{\theta}) = \log \mu_0(s_0) + \sum_{t=0}^{T-1} \log \pi(a_t|s_t; \boldsymbol{\theta}) + \sum_{t=0}^{T-1} \log P(s_{t+1}, r_t|s_t, a_t)
\boldsymbol{\theta}で微分すると、初期状態分布と環境の遷移確率は\boldsymbol{\theta}に依存しないため消去されます。
\nabla_{\boldsymbol{\theta}} \log P(\tau; \boldsymbol{\theta}) = \sum_{t=0}^{T-1} \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})
Step 4: 勾配の最終形
Step 2の結果にStep 3を代入します。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} \left[ G_0(\tau) \sum_{t=0}^{T-1} \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
期待値の線形性により、総和を外に出すことができます。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} \left[ \sum_{t=0}^{T-1} G_0(\tau) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
Step 5: 因果性の利用
重要な観察として、時刻tの行動は時刻t以前の報酬には影響しません。これにより、G_0(\tau) = \sum_{k=0}^{T-1} \gamma^k r_kを時刻tからの累積報酬で置き換えることができます。
G_0(\tau) = \sum_{k=0}^{t-1} \gamma^k r_k + \sum_{k=t}^{T-1} \gamma^k r_k
時刻tの行動a_tは最初の和には影響しないため、勾配計算では第2項のみが残ります。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} \left[ \sum_{t=0}^{T-1} \left(\sum_{k=t}^{T-1} \gamma^k r_k\right) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
Step 6: 行動価値関数による表現
時刻tからの累積報酬を行動価値関数で表現します。
Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} \left[\sum_{k=t}^{T-1} \gamma^{k-t} r_k \Bigg| s_t, a_t\right]
割引率の調整により、最終的に以下の形になります。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\tau \sim \pi_{\boldsymbol{\theta}}} \left[ \sum_{t=0}^{T-1} Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
これが方策勾配定理の結果です。
方策勾配定理の意義
モデルフリー性の証明
方策勾配定理の最も重要な意義は、環境のモデル(状態遷移確率)を知らずに勾配を計算できることです。
証明のStep 3で示したように、\nabla_{\boldsymbol{\theta}} \log P(\tau; \boldsymbol{\theta})を計算する際、環境の遷移確率P(s_{t+1}, r_t|s_t, a_t)の項は\boldsymbol{\theta}に依存しないため勾配計算から完全に消去されます。
残るのは方策項\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})のみであり、これは方策の定義から直接計算可能です。
Score Function の重要性
\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})はscore functionと呼ばれ、方策勾配法の核心的な量です。
この関数は「現在の方策下で行動a_tの対数確率を\boldsymbol{\theta}に関して微分したもの」を表し、以下の重要な性質を持ちます。
性質1: 勾配方向の意味
\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})は、行動a_tの確率を増加させる\boldsymbol{\theta}の変化方向を指します。
性質2: 期待値ゼロの性質
\mathbb{E}_{a \sim \pi(\cdot|s; \boldsymbol{\theta})} [\nabla_{\boldsymbol{\theta}} \log \pi(a|s; \boldsymbol{\theta})] = 0
この性質は、\sum_a \pi(a|s; \boldsymbol{\theta}) = 1であることから導かれます。
計算可能性の保証
方策勾配定理により、勾配推定のために必要なのは軌道のサンプリング、score functionの計算、累積報酬の観測だけです。軌道のサンプリングでは現在の方策\pi_{\boldsymbol{\theta}}に従って環境と相互作用し、score functionは方策の定義から解析的に計算可能であり、累積報酬は環境から直接観測します。環境の内部構造(状態遷移確率、報酬関数)の知識は一切不要です。
REINFORCE アルゴリズム
基本的なREINFORCE
方策勾配定理から直接導かれる最も基本的なアルゴリズムがREINFORCE(REward Increment = Nonnegative Factor × Offset Reinforcement × Characteristic Eligibility)です。
アルゴリズムの導出
方策勾配定理において、Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t)をモンテカルロ推定します。
Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \approx G_t = \sum_{k=t}^{T-1} \gamma^{k-t} r_k
これにより、勾配推定値は以下のようになります。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) \approx \sum_{t=0}^{T-1} G_t \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})
REINFORCEアルゴリズム
アルゴリズム: REINFORCE
- 方策パラメータ\boldsymbol{\theta}を初期化
-
各エピソードに対して
- 方策\pi(\cdot|\cdot; \boldsymbol{\theta})に従って軌道\tau = (s_0, a_0, r_0, s_1, a_1, r_1, \ldots, s_{T-1}, a_{T-1}, r_{T-1})を生成
- 各時刻tに対して累積報酬G_t = \sum_{k=t}^{T-1} \gamma^{k-t} r_kを計算
- 勾配を計算:\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) \approx \sum_{t=0}^{T-1} G_t \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})
- パラメータ更新:\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} + \alpha \nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta})
REINFORCEの直感的理解
REINFORCEは以下の直感に基づいています。
高い報酬を得た行動の確率を増加
G_t > 0のとき、\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})方向にパラメータを更新することで、行動a_tの確率が増加します。
低い報酬を得た行動の確率を減少
G_t < 0のとき、逆方向の更新により行動a_tの確率が減少します。
報酬の大きさで更新幅を調整
|G_t|が大きいほど、大きな更新が行われます。
REINFORCEの特性
不偏推定量
REINFORCEの勾配推定量は不偏です。
\mathbb{E}[G_t \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})] = \nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta})
これは方策勾配定理により保証されます。
高い分散
REINFORCEの主要な問題は分散の高さです。累積報酬G_tは環境のランダム性により大きく変動し、勾配推定の分散が高くなります。
分散が高いと学習が不安定になり、収束が遅くなります。この問題を解決するためにベースラインが導入されます。
ベースラインとAdvantage関数
ベースラインの導入
ベースラインの基本概念
方策勾配定理を以下のように修正できます。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\pi_{\boldsymbol{\theta}}} \left[ \sum_{t=0}^{T-1} (Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) - b(s_t)) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
ここで、b(s_t)はベースライン関数と呼ばれ、状態s_tのみに依存する任意の関数です。
ベースラインが勾配を変えない理由
ベースライン項の期待値を計算すると以下のようになります。
\mathbb{E}_{\pi_{\boldsymbol{\theta}}} [b(s_t) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})] = b(s_t) \sum_a \pi(a|s_t; \boldsymbol{\theta}) \nabla_{\boldsymbol{\theta}} \log \pi(a|s_t; \boldsymbol{\theta})
\sum_a \pi(a|s_t; \boldsymbol{\theta}) = 1であることから、この項の勾配は0になります。
\sum_a \nabla_{\boldsymbol{\theta}} \pi(a|s_t; \boldsymbol{\theta}) = \nabla_{\boldsymbol{\theta}} \sum_a \pi(a|s_t; \boldsymbol{\theta}) = \nabla_{\boldsymbol{\theta}} 1 = 0
したがって、ベースラインは勾配の期待値を変えることなく、分散のみを減少させることができます。
最適なベースラインの導出
分散を最小化する最適なベースラインを求めるため、勾配推定量の分散を計算します。
ベースラインb(s_t)を用いた勾配推定量は以下のように表されます。
\hat{g}_t = (Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) - b(s_t)) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})
この推定量の分散を最小化するb(s_t)を求めます。
Step 1: 分散の定義
状態s_tでの条件付き分散は以下のように定義されます。
\text{Var}[\hat{g}_t | s_t] = \mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} \left[ \|\hat{g}_t\|^2 \right] - \left\| \mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} [\hat{g}_t] \right\|^2
ベースラインが勾配の期待値を変えないことから、第2項はb(s_t)に依存しません。したがって、第1項を最小化すればよいことになります。
Step 2: 第1項の展開
\mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} \left[ \|\hat{g}_t\|^2 \right] = \mathbb{E}_{a_t} \left[ (Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) - b(s_t))^2 \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]
Step 3: b(s_t)に関する最適化
上式をb(s_t)で微分して0と置きます。
\frac{\partial}{\partial b(s_t)} \mathbb{E}_{a_t} \left[ (Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) - b(s_t))^2 \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right] = 0
微分を実行すると以下のようになります。
-2 \mathbb{E}_{a_t} \left[ (Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) - b(s_t)) \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right] = 0
Step 4: 最適ベースラインの導出
上式を整理します。
\mathbb{E}_{a_t} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right] = b(s_t) \mathbb{E}_{a_t} \left[ \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]
したがって、最適なベースラインは以下のようになります。
b^*(s_t) = \frac{\mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]}{\mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} \left[ \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]}
Step 5: 実用的な近似
最適ベースラインの式を見直してみましょう。
b^*(s_t) = \frac{\mathbb{E}_{a_t} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]}{\mathbb{E}_{a_t} \left[ \|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \right]}
これはQ^{\pi_{\boldsymbol{\theta}}}(s_t, a_t)の加重平均であり、重みは\|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2です。
近似の正当化
\|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2が行動a_tに対してほぼ一定であると仮定します。つまり、
\|\nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})\|^2 \approx c(s_t)
ここでc(s_t)は行動に依存しない定数です。この仮定の下では、
b^*(s_t) = \frac{\mathbb{E}_{a_t} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \cdot c(s_t) \right]}{\mathbb{E}_{a_t} \left[ c(s_t) \right]}
c(s_t)は行動に依存しないので、期待値の外に出すことができます。
b^*(s_t) = \frac{c(s_t) \cdot \mathbb{E}_{a_t} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \right]}{c(s_t) \cdot \mathbb{E}_{a_t} \left[ 1 \right]} = \frac{c(s_t) \cdot \mathbb{E}_{a_t} \left[ Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \right]}{c(s_t)}
c(s_t)が約分されて、結果的に状態価値関数となります。
b^*(s_t) = \mathbb{E}_{a_t \sim \pi(\cdot|s_t; \boldsymbol{\theta})} [Q^{\pi_{\boldsymbol{\theta}}}(s_t, a_t)] = V^{\pi_{\boldsymbol{\theta}}}(s_t)
この仮定が妥当な場合として、方策がほぼ均等な確率で行動を選択している場合があります。
この近似は、エントロピー正則化された方策で確率が極端に偏らない場合、連続行動空間のガウス方策で分散が適度な場合、離散行動空間のsoftmax方策で温度パラメータが適切な場合に妥当です。これらの条件下では、score functionのノルムは行動間でそれほど変化しないため、状態価値関数による近似が有効です。
Advantage関数
Advantage関数の定義
最適なベースラインを使用すると、以下のAdvantage関数が現れます。
Advantage関数を用いた方策勾配
方策勾配定理はAdvantage関数を用いて以下のように表現されます。
\nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) = \mathbb{E}_{\pi_{\boldsymbol{\theta}}} \left[ \sum_{t=0}^{T-1} A^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta}) \right]
Advantage関数の直感的解釈
正のAdvantage: A^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) > 0
行動a_tは平均よりも良い行動です。方策はこの行動の確率を増加させるべきです。
負のAdvantage: A^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) < 0
行動a_tは平均よりも悪い行動です。方策はこの行動の確率を減少させるべきです。
ゼロのAdvantage: A^{\pi_{\boldsymbol{\theta}}}(s_t, a_t) = 0
行動a_tは平均的な行動です。方策の更新は行われません。
ベースライン付きREINFORCE
アルゴリズム
アルゴリズム: REINFORCE with Baseline
- 方策パラメータ\boldsymbol{\theta}と価値関数パラメータ\boldsymbol{w}を初期化
-
各エピソードに対して
- 軌道\tauを生成
- 各時刻tに対して累積報酬G_tを計算
- 各時刻tに対して:
- Advantage推定:\hat{A}_t = G_t - V(s_t; \boldsymbol{w})
- 方策更新:\boldsymbol{\theta} \leftarrow \boldsymbol{\theta} + \alpha_{\theta} \hat{A}_t \nabla_{\boldsymbol{\theta}} \log \pi(a_t|s_t; \boldsymbol{\theta})
- 価値関数更新:\boldsymbol{w} \leftarrow \boldsymbol{w} + \alpha_w (G_t - V(s_t; \boldsymbol{w})) \nabla_{\boldsymbol{w}} V(s_t; \boldsymbol{w})
学習の効率化
ベースラインの導入により、複数の重要な効果が得られます。まず分散の減少において、Advantage関数の分散は元の累積報酬よりも小さくなるため学習が安定化されます。また学習の高速化として、分散の減少により少ないサンプル数で良好な勾配推定が可能になり、学習が高速化されます。さらに方策の改善方向の明確化によって、Advantage関数により各行動が平均と比べて良いか悪いかが明確になり、方策改善の方向性が明確になります。
まとめ
本記事で学んだ重要な概念
方策勾配法の基本原理として、価値関数を経由しない直接的な方策最適化、連続行動空間への自然な対応、確率的方策の学習について理解しました。
方策勾配定理では、モデルフリーでの勾配計算、score functionの重要性、実用的な計算可能性を学習しました。
REINFORCEアルゴリズムについて、最も基本的な方策勾配法、不偏推定量の特性、高分散という課題を学びました。
ベースラインとAdvantage関数として、分散削減の仕組み、最適ベースラインとしての状態価値関数、Advantage関数による直感的解釈を理解しました。
次回予告:Actor-Critic手法
今回学んだREINFORCEは理論的に美しいアルゴリズムですが、モンテカルロ推定による高分散という実用上の課題があります。
次回の記事では、この課題を解決するActor-Critic手法について詳しく解説します。Criticの導入による価値関数を用いた分散削減、TD誤差とAdvantage推定によるより効率的な学習、A2C/A3Cアルゴリズムの実用的な実装、そして方策と価値の同時学習によるバランスの取れたアプローチを学びます。Actor-Criticは方策勾配法と価値ベース手法の利点を組み合わせた、現代深層強化学習の中核的な手法です。
Discussion