大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

方策勾配

方策勾配は報酬から行動確率を調整し、期待収益を最大化します。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%
1RL−124.6%
2RR+131.2%
3LL−135.1%
4LL−139.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、共有重み、バッチ、エントロピー正則化、長い時間域は省略します。正確な目標確率は診断だけで、方策の学習には使いません。

同じ手法につながるレッスンや、次の概念への入口です。

鍵マークのあるレッスンの操作には有料アクセスが必要です。解説はすべて無料で読めます。

トピックを見る

誤りや気になる点を見つけましたか? フィードバックを送る。