Up 期待報酬の最大化 (勾配法) 作成: 2026-05-17
更新: 2026-05-25


    Policy \( π_θ( a | s ) \):
      「状態を見てどの行動をどの確率で選ぶかを決める
       ニューラルネット」

    「ポリシーの更新」 の方法論
    「性能目的の最適化」 を, 「累積報酬の期待値の最大化」 に表現。
    ポリシーの更新 (NN のパラメータ値の更新) を,「累積報酬の期待値の最大化」 と一致させる。

    期待報酬を大きくする形は,
      「よい結果につながった行動の確率を上げ,
       悪い結果につながった行動の確率を下げる」


    ポリシーの更新は,ポリシーを壊す危険がある。
    そこで,つぎの考えを加える:
      「一気に変えず,ちょっとずつ良くする」
      → 前の Policy と新しい Policy の差が
        大きくなり過ぎないように,
        更新量をクリップする


  • 行動選択確率の新旧比 \( r( \theta ) \
      (新 Policy で s_t に対し a_t が選ばれる確率)
       ÷ (旧 Policy で s_t に対し a_t が選ばれる確率) \[ r_t( \theta ) = \frac { \pi_\theta ( a_t | s_t ) } { \pi_{\theta_{old}} ( a_t | s_t ) } \]

  • クリップ付き目的関数 \( L^{CLIP} \) \[ L^{CLIP}(\theta) = \\ \mathbb{E}_t \left[ \min(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t) \right] \] ここで,
     \( A_t \) は,Advantage推定値
       (「その行動が,平均よりどれだけよかったか」)
     \( \epsilon \) は,クリッピングパラメータ
       (更新幅の許容量,通常,0.1〜0.2)

    直感的な意味:
     行動が良かった(\(A_t\) > 0)なら,
      その行動の確率を上げる
      しかし,上げ過ぎると危ないので,(1+ϵ) までに制限
     行動が悪かった(\(A_t\) < 0)なら,
      その行動の確率を下げる
      しかし,下げ過ぎると探索が死ぬので,(1−ϵ) までに制限
     「良い方向には進むが,暴走はさせない」

    この 「クリップ付き目的関数」 が,PPO の革新点。


  • 目的関数の勾配
    \[ \frac{\partial L^{CLIP}}{\partial \theta} \\ = \begin{cases} \frac{\partial r_t(\theta)}{\partial \theta} A_t & \text{if } \ \ 1-\epsilon < r_t(\theta) < 1+\epsilon \\ 0 & \text{otherwise} \end{cases} \] 重要度比がクリッピング範囲内にある場合は,
      通常の Policy 勾配として動作する。
    範囲外では,勾配がゼロになる。


  • Policy 勾配で,パラメータ値θを更新
    「Policy π_θ の更新」 の内容は:
      「目的関数を最大にするように,
       勾配降下(実際には「上昇」)を行う」
    \[ \theta ← \theta + \alpha \nabla_\theta L^{CLIP}(\theta) \]