方策勾配法

方策勾配法の理論を解説。方策のパラメータ化、期待報酬の最適化、方策勾配定理、対数微分トリック、ベースラインによる分散削減について説明します。

方策勾配法(Policy Gradient Method)は、強化学習における方策ベースの手法の一つです。価値関数を学習するのではなく、方策そのものをパラメータ化された関数として表現し、そのパラメータを直接最適化することで、最適な方策を見つけます。

方策は、状態 \(s\) を入力として受け取り、各行動 \(a\) を選択する確率 \(\pi_\theta(a|s)\) を出力する関数として表現されます。ここで \(\theta\) は方策のパラメータです。

方策の評価と最適化

方策の良さは、その方策に従って行動したときに得られる期待報酬(または期待累積報酬)によって評価されます。この期待報酬を最大化することが方策勾配法の目的です。

期待報酬 \(J(\theta)\) は、以下のように表現できます。

\[ J(\theta) = \sum*s d^{\pi*\theta}(s) \sum*a \pi*\theta(a|s) Q^{\pi\_\theta}(s,a) \]

ここで、

  • \(d^{\pi_\theta}(s)\): 方策 \(\pi_\theta\) の下で状態 \(s\) を訪れる定常分布(または割引状態訪問頻度)です。
  • \(Q^{\pi_\theta}(s,a)\): 方策 \(\pi_\theta\) の下での状態 \(s\) で行動 \(a\) を取ったときの行動価値関数です。

この期待報酬 \(J(\theta)\) を最大化するために、パラメータ \(\theta\) を勾配上昇法で更新します。つまり、期待報酬の勾配 \(\nabla J(\theta)\) を計算し、その方向にパラメータを少しずつ更新していきます。

方策勾配定理 (Policy Gradient Theorem)

方策勾配定理は、期待報酬の勾配 \(\nabla J(\theta)\) を、以下のようにシンプルな形で表現できることを示しています。

\[ \nabla J(\theta) \propto \sum*s d^{\pi*\theta}(s) \sum*a \nabla \pi*\theta(a|s) Q^{\pi\_\theta}(s,a) \]

さらに、対数微分トリック(Log-derivative Trick)を用いると、この勾配は期待値の形で表現できます。

\[ \nabla J(\theta) = \mathbb{E}_{s \sim d^{\pi_\theta}, a \sim \pi*\theta}[\nabla \log \pi*\theta(a|s) Q^{\pi\_\theta}(s,a)] \]

この式は、方策勾配を直感的に解釈する助けとなります。

  • \(\nabla \log \pi_\theta(a|s)\): 行動 \(a\) を選択する確率を増加させる方向(勾配)を示します。
  • \(Q^{\pi_\theta}(s,a)\): その行動の「良さ」を表す重みです。

つまり、方策勾配法は、「良い行動(\(Q\)値が高い行動)が選択される確率を増加させ、悪い行動(\(Q\)値が低い行動)が選択される確率を減少させる」ように方策を更新します。

実装上の課題と解決策

方策勾配法の実装には、いくつかの課題があります。

  • \(Q^{\pi_\theta}(s,a)\) の推定: 行動価値関数 \(Q^{\pi_\theta}(s,a)\) は未知であるため、経験から推定する必要があります。モンテカルロ法(エピソード終了後の累積報酬)やTD学習(TD誤差)を用いて近似します。
  • 分散の削減: 勾配の推定にモンテカルロ法を用いると、分散が大きくなり、学習が不安定になることがあります。これを解決するために、ベースライン(例: 状態価値関数 \(V(s)\))を導入して、アドバンテージ関数 \(A(s,a) = Q(s,a) - V(s)\) を用いる手法が一般的です。

方策勾配法は、連続行動空間の問題にも適用できるなど、柔軟性の高い手法であり、Actor-Critic法などのより高度なアルゴリズムの基礎となっています。

参考

  • 久保隆宏, 『Pythonで学ぶ強化学習 入門から実践まで』, 翔泳社 (2019)