策略梯度的承諾——以及它的雜訊
第一卷把策略梯度介紹為直接最佳化策略的方法:將 π(a|s;θ) 參數化,再沿期望回報的梯度把 θ 往上推。策略梯度定理把該梯度寫成 (∇ log π) 的期望,並以該動作最終的好壞加權——於是我們能從採樣的軌跡估計它,完全不必對環境求導。這正是策略梯度能在無法建模的世界裡運作的根本原因。
問題在於變異數。樸素估計量把分數函數乘上原始回報,使我們要歸功的那個動作的效果,與該回合中其他所有隨機選擇的效果混為一談。結果是一個無偏卻變異數極大的訊號:梯度在不同批次間指向截然不同的方向。研究所等級的策略梯度理論,大半是一場在不引入偏差的前提下降低該變異數的戰役——並在方向可信之後,沿正確的幾何邁步。
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 是甜蜜點,而下面的遞迴使它成為對軌跡的單次反向掃描。
偏差–方差权衡曲线,总误差在高偏差与高方差之间取得最小值。
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為何歐氏步長是錯誤的步長
即使有了乾淨的優勢估計,普通的梯度上升仍把 θ 空間當成平坦的歐氏空間——它在參數中移動固定距離。但我們真正在意的是策略空間中的距離:對一個敏感參數的微小改動可能使動作分布劇烈擺盪,而對一個惰性參數的大幅改動卻毫無作用。在錯誤度量下的最速下降,會產生不穩定且依賴尺度的更新。
自然策略梯度以 Fisher 資訊矩陣的逆作為前置調節(precondition)來修正此問題——它是機率分布流形上的自然黎曼度量。等價地說,它把步長量測為新舊策略之間的 KL 散度,而非歐氏參數距離。這正是專門化到強化學習的自然梯度下降,使更新對你恰巧採用的策略參數化方式不變。
自然梯度用费舍尔矩阵 F 的逆作预条件,度量的是策略空间而非参数空间中的距离。
信賴域與單調改善
信賴域策略最佳化(TRPO)把自然梯度的直覺變成一個有保證的有原則演算法。它最大化一個替代目標——以重要性加權在舊策略的樣本下估計的新策略優勢——並施加一條硬約束:與舊策略的平均 KL 散度須維持在小的 δ 以下。理論顯示此替代目標是真實表現的下界,因此在信賴域內最佳化它能產生近似單調改善:每次更新都被保證不會把情況變得糟太多。
- 在當前策略下收集一批軌跡,並計算 GAE 優勢。
- 估計替代目標與策略梯度 g,並隱式估計 Fisher 矩陣 F。
- 以共軛梯度法求解自然梯度方向 F⁻¹g(無需顯式建構矩陣)。
- 對步長做線搜尋,使 KL 約束成立且替代目標確實改善。
PPO——務實的裁剪
TRPO 有原則卻沉重:共軛梯度求解與線搜尋使它難以擴展。近端策略最佳化(PPO)以一階機制保留信賴域的精神。它把重要性採樣比值 r(θ) = π_new/π_old 裁剪到區間 [1−ε, 1+ε],於是一旦新策略在某個樣本上移動得夠遠,目標便趨平、梯度停止推動。沒有硬約束,也沒有二階求解——只是一個用普通 SGD、每批次跑數個 epoch 即可最佳化的裁剪替代目標。
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