JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

從 REINFORCE 到信賴域

策略梯度家族:為何樸素的估計量無偏卻雜訊極大,以及優勢估計、自然梯度與信賴域如何把它變成真正能訓練的方法。

策略梯度的承諾——以及它的雜訊

第一卷把策略梯度介紹為直接最佳化策略的方法:將 π(a|s;θ) 參數化,再沿期望回報的梯度把 θ 往上推。策略梯度定理把該梯度寫成 (∇ log π) 的期望,並以該動作最終的好壞加權——於是我們能從採樣的軌跡估計它,完全不必對環境求導。這正是策略梯度能在無法建模的世界裡運作的根本原因。

問題在於變異數。樸素估計量把分數函數乘上原始回報,使我們要歸功的那個動作的效果,與該回合中其他所有隨機選擇的效果混為一談。結果是一個無偏卻變異數極大的訊號:梯度在不同批次間指向截然不同的方向。研究所等級的策略梯度理論,大半是一場在不引入偏差的前提下降低該變異數的戰役——並在方向可信之後,沿正確的幾何邁步。

\nabla_\theta J(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}\!\left[\sum_{t}\nabla_\theta \log \pi_\theta(a_t\mid s_t)\, G_t\right]

REINFORCE 得分函数估计量:无偏,但每个动作都被记上整条带噪声的回报 G_t。

優勢估計:偏差—變異數的旋鈕

第一步是減去一個與狀態相關的基準線——通常是價值函數 V(s)——把原始回報變成優勢 A(s,a) = Q(s,a) − V(s):這個動作比策略平均好多少。減去 V 可證明為無偏(它不依賴動作),卻能大幅削減變異數。但 A 該如何估計?單步時序差分目標變異數低卻被錯誤的價值估計帶來偏差;完整的蒙地卡羅回報無偏卻變異數高。

廣義優勢估計(GAE)在這兩個極端之間給你一個連續的旋鈕。它以衰減 λ ∈ [0,1] 對 n 步 TD 殘差做指數加權平均:λ→0 退化為低變異數、高偏差的單步估計;λ→1 還原為高變異數、無偏的蒙地卡羅估計。實務上 λ≈0.95 搭配 γ≈0.99 是甜蜜點,而下面的遞迴使它成為對軌跡的單次反向掃描。

GAE 的 λ 正是这个偏差–方差旋钮:λ 小则以偏差换取低方差,λ 大则相反。

偏差–方差权衡曲线,总误差在高偏差与高方差之间取得最小值。

delta_t = r_t + gamma * V(s_{t+1}) - V(s_t)   # one-step TD residual
A_t = delta_t + (gamma * lam) * A_{t+1}        # backward recursion over the episode
GAE 作為單次反向掃描;λ 在偏差與變異數之間權衡。

為何歐氏步長是錯誤的步長

即使有了乾淨的優勢估計,普通的梯度上升仍把 θ 空間當成平坦的歐氏空間——它在參數中移動固定距離。但我們真正在意的是策略空間中的距離:對一個敏感參數的微小改動可能使動作分布劇烈擺盪,而對一個惰性參數的大幅改動卻毫無作用。在錯誤度量下的最速下降,會產生不穩定且依賴尺度的更新。

自然策略梯度以 Fisher 資訊矩陣的逆作為前置調節(precondition)來修正此問題——它是機率分布流形上的自然黎曼度量。等價地說,它把步長量測為新舊策略之間的 KL 散度,而非歐氏參數距離。這正是專門化到強化學習的自然梯度下降,使更新對你恰巧採用的策略參數化方式不變。

\tilde{\nabla}_\theta J = F(\theta)^{-1}\,\nabla_\theta J,\qquad F(\theta)=\mathbb{E}\!\left[\nabla_\theta \log \pi_\theta\,\nabla_\theta \log \pi_\theta^{\top}\right]

自然梯度用费舍尔矩阵 F 的逆作预条件,度量的是策略空间而非参数空间中的距离。

信賴域與單調改善

信賴域策略最佳化(TRPO)把自然梯度的直覺變成一個有保證的有原則演算法。它最大化一個替代目標——以重要性加權在舊策略的樣本下估計的新策略優勢——並施加一條硬約束:與舊策略的平均 KL 散度須維持在小的 δ 以下。理論顯示此替代目標是真實表現的下界,因此在信賴域內最佳化它能產生近似單調改善:每次更新都被保證不會把情況變得糟太多。

  1. 在當前策略下收集一批軌跡,並計算 GAE 優勢。
  2. 估計替代目標與策略梯度 g,並隱式估計 Fisher 矩陣 F。
  3. 以共軛梯度法求解自然梯度方向 F⁻¹g(無需顯式建構矩陣)。
  4. 對步長做線搜尋,使 KL 約束成立且替代目標確實改善。

PPO——務實的裁剪

TRPO 有原則卻沉重:共軛梯度求解與線搜尋使它難以擴展。近端策略最佳化(PPO)以一階機制保留信賴域的精神。它把重要性採樣比值 r(θ) = π_new/π_old 裁剪到區間 [1−ε, 1+ε],於是一旦新策略在某個樣本上移動得夠遠,目標便趨平、梯度停止推動。沒有硬約束,也沒有二階求解——只是一個用普通 SGD、每批次跑數個 epoch 即可最佳化的裁剪替代目標。

L^{\mathrm{CLIP}}(\theta)=\mathbb{E}_t\!\left[\min\!\left(r_t(\theta)\,\hat{A}_t,\ \mathrm{clip}\!\left(r_t(\theta),\,1-\epsilon,\,1+\epsilon\right)\hat{A}_t\right)\right],\quad r_t(\theta)=\frac{\pi_\theta(a_t\mid s_t)}{\pi_{\theta_{\text{old}}}(a_t\mid s_t)}

PPO 的裁剪替代目标:将概率比 r_t 夹紧,仅用一阶更新就近似实现了信任域。

ratio = exp(logp_new - logp_old)
unclipped = ratio * A
clipped   = clip(ratio, 1 - eps, 1 + eps) * A
loss = -mean(min(unclipped, clipped))   # pessimistic: take the worse of the two
PPO 的裁剪替代目標——信賴域的一階替身。