方策勾配
方策勾配は報酬から行動確率を調整し、期待収益を最大化します。REINFORCE は標本エピソードの収益で、その行動を強めたり弱めたりします。正しく計算した一更新でも成功率が下がりえます。本課の最初は 25% から 24.6% です。
右、左と曲がって失敗した終点の判定だけでは、どちらが原因か分かりません。両方に同じ収益を与えるため、有用な最初の右も罰しえます。状態別の正解行動がなくても、方策の微分可能な確率から学習できます。
確率、収益、方向
方策は状態を行動分布へ写します。s で右を選ぶ確率は p = π(R|s)、左は 1−p で、この分布から抽出します。毎回最大を選ぶのは別の規則です。
環境は二判断です。s0 から左で sL、右で sR、そこで再び左右を選ぶと終了します。R → R だけが +1、他は既定の失敗報酬 −1。最初の遷移報酬は常にゼロです。
各状態は独立な θ を持ちます。
p = 1 / (1 + exp(−θ))
θ が 0 なら半々、増加で右、減少で左へ寄ります。logit [0,θ] の二行動 softmax と同じで、三状態は重み共有しません。
収益 G_t はその判断以降の報酬和です。本課は割引なし・終端報酬だけなので二判断は同じ値です。長い課題や中間報酬では異なりえます。
右を a = 1、左を a = 0 とすると:
∂ log π(a|s) / ∂θ = a − p
これは抽出した行動を増やす方向です。p = 0.5 で L は −0.5、R は +0.5。まだ更新せず、収益を掛けて勾配上昇を行います。
g = G_t × (a − p)
θ ← θ + ηg
この独立パラメータと正学習率では、正収益が抽出行動を増やし、負が減らし、ゼロは寄与しません。両確率の和は 1 で、右を増やすと左は減ります。
エピソード中は方策を固定し、その行動を生んだ保存確率で勾配を計算します。表示では最後の状態、次に根を更新しますが、独立座標なのでエピソード勾配を一度に適用するのと同じです。共有ネットワークへこの解釈をそのまま移せません。
離散行動でも勾配が得られる理由
左折を抽出する操作や環境の報酬関数自体は微分しません。方策の行動確率が微分可能で、log-derivative 恒等式が期待収益の勾配を対数確率を含む期待値へ書き換えます。一エピソードがその標本です。Spinning Up の導出を参照してください。
地図は読者に見えても、更新器は抽出行動、確率、収益だけを受けます。「右が正解」というラベルや、正確な成功確率の勾配は使いません。
ステップ実行
既定は学習率 0.5、失敗報酬 −1、初期 [0,0,0]、四エピソード、固定乱数です。初期成功率は 0.5×0.5 = 25%。
1:失敗が必要な行動も罰する
最初の乱数 0.254283 < 0.5 で根は R、次の 0.541644 > 0.5 で sR は L。RL は失敗し −1 です。
二判断目 L は a が 0、元の対数勾配 −0.5 は L を増やす向きですが、負収益で逆転します。
g_sR = −1 × (0 − 0.5) = +0.5
θ_sR = 0 + 0.5×0.5 = 0.25
sR の右は 56.2%、抽出した左は 43.8% になります。根の R にも同じ収益を適用します。
g_s0 = −1 × (1 − 0.5) = −0.5
θ_s0 = 0 + 0.5×(−0.5) = −0.25
必要な根 R も 43.8% へ減ります。新成功率は 0.4378235 × 0.5621765 ≈ 24.6%。失敗経路は起こりにくくなりましたが、唯一の成功経路も減りました。
2:成功を強める
次の乱数 0.000823、0.407636 は現在の右区間に入り、RR で +1 です。
根と sR の勾配は約 0.5621765、0.4378235。更新後は根 R 約 50.8%、sR R 約 61.5%、積の成功率 31.2% です。後の二回は LL、−1 で、訪問状態の左確率を減らします。
| エピソード | 経路 | 収益 | 更新後の目標確率 |
|---|---|---|---|
| 初期 | — | — | 25.0% |
| 1 | RL | −1 | 24.6% |
| 2 | RR | +1 | 31.2% |
| 3 | LL | −1 | 35.1% |
| 4 | LL | −1 | 39.3% |
これは正確な方策評価を丸めた値で、成功エピソードの比率ではありません。四回中一成功でも、最終方策の新しい回での成功確率は約 39.3%。四回は収束の証明ではありません。
大きな課題の確認
本図は二確率の積で評価できますが、大環境では方策を凍結して複数の新しい回で評価します。一訓練収益だけでは不足し、古い回は別の方策からの標本かもしれません。
動かない場合は、信号不足と更新の無効化を区別します。「No reward for a miss」は G = 0 で勾配ゼロ、「Freeze the policy」は勾配を保ち η = 0。確率棒は同じでも算式から停止箇所が分かります。
計算量
S 状態の表形式二行動方策で一回 T 判断なら、抽出と勾配累積は時間 O(T)。後ろからの reward-to-go 累積も O(T)、パラメータと保存エピソードは O(S+T) 空間です。神経方策は順逆伝播の費用を追加し、表示用の方策スナップショットは別です。
境界ケース
- ゼロ収益:失敗報酬 0 では最初の RL も失敗しますが勾配なし。既定 η = 0.5 では二回目 RR は +1 で学び、後の失敗は不変です。今信号がなくても後に成功を発見しえます。
- ゼロ学習率:収益・勾配は計算してもパラメータは不変、半々を保ちます。
- 未訪問状態:寄与はなく、既定の最初の二回は
sL不変。共有神経パラメータなら未訪問の出力も変わりえます。 - 大きな更新:固定例では η が logit 変化を比例拡大し(勾配が非ゼロのときだけ大きくなる)、その後の抽出も変ええます。選択範囲は一般的な安定境界ではありません。
- 疎な報酬:失敗ゼロ・基線なしでは失敗に勾配がなく、長い課題では成功発見に多くの試行が必要です。
よくある間違い
- 収益を各行動の正誤ラベルにする。最初の根 R は必要なのに罰されます。
- 全更新で性能が改善すると期待する。標本勾配はノイズを含み、初回が反例です。
- 勾配符号をそのまま抽出行動の変化と読む。正 θ は右を増やすため、負収益で抽出した L は減ります。
- 降下で負号を忘れる。期待収益最大化は上昇、損失最小化なら負の収益重み付き対数確率を使います。
- 古い一回を無期限に使う。REINFORCE は現在方策の標本を用い、旧データの反復最適化とは異なります。
- 異なる報酬設定の生収益を比べる。失敗 −1 と 0 は尺度・オフセットが違います。両方が RR を好むこの比較では成功確率を見ます。
基線への拡張
行動に依存しない基線は重みを G_t − b(s_t) にします。標準的な方策勾配の条件では期待勾配を変えず、適切な基線は分散を減らせます。符号は基線より良いか悪いかとなり、生収益が正だけでは方向は決まりません。
学習した状態価値がよく使われ、actor-critic は価値推定器を追加して bootstrap も使います。VPG 参照に拡張があり、本課はゼロ基線 REINFORCE です。勾配降下、Softmax と交差エントロピー、逆伝播も関連します。
モデルの範囲
二判断の表形式、終端報酬、割引なし、一エピソード一更新、独立状態 logit です。学習する critic、共有重み、バッチ、エントロピー正則化、長い時間域は省略します。正確な目標確率は診断だけで、方策の学習には使いません。
続けて学ぶ
同じ手法につながるレッスンや、次の概念への入口です。
鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。
誤りや気になる点を見つけましたか? フィードバックを送る。