為什麼梯度這麼吵
分數函數估計式是無偏的,但它的變異數可能非常龐大。報酬是許多隨機獎勵的總和;再乘上對數機率梯度,分散程度會層層放大。高變異數意味著每次更新都指向略帶隨機的方向,於是你只能用很小的學習率、很多的樣本——這正是讓策略梯度極度耗資料的瓶頸。
得分函数估计量:每个对数概率梯度都被完整回报 G_t 缩放,因此带噪声的回报会注入巨大的方差。
因此變異數降低(variance reduction)不是錦上添花,而是區分「真的能用」與「理論上才會收斂」的關鍵。好消息是:我們可以在不引入偏差的情況下大幅降低變異數,並且在需要時,用一點點偏差換取多很多的穩定性。
把基準線當作控制變量
用統計的眼光看,基準線其實是一個控制變量(control variate):一個對梯度的期望效應已知(為零)、又與嘈雜項相關的量,相減即可抵消雜訊。讓變異數最小的基準線,大致就是該狀態的期望報酬——也就是它的價值。用「報酬減價值」取代原始報酬,就得到優勢函數(advantage) A(s, a):動作 a 比該狀態的平均好了多少。
GAE:在偏差與變異數之間的旋鈕
那優勢值該怎麼估?完整的蒙地卡羅報酬無偏但高變異;單步自助(獎勵加上折扣後的下一狀態價值)低變異卻被評論家的誤差帶偏。廣義優勢估計(Generalized Advantage Estimation, GAE)用一個指數權重 λ 把所有時間視野混在一起,給你單一旋鈕:λ 接近 0 時信任評論家(低變異、較多偏差),λ 接近 1 時信任觀察到的報酬(低偏差、較多變異)。
偏差-方差权衡曲线:总误差是偏差与方差之和,随估计量复杂度变化。
請注意折扣因子 γ與 λ 扮演不同角色:γ 定義問題(未來有多重要),而 λ 純粹是估計式的選擇,用來在偏差與變異數之間取捨。實務上 γ ≈ 0.99、λ ≈ 0.95 在許多任務上都是可靠的起點。
熵:讓策略保持好奇
第二種失敗模式是過早塌縮:策略太早變得幾乎確定、停止探索,並鎖死在一個平庸的習慣上。熵正則化(entropy regularization)藉由為「保持動作分布分散」加上一個小獎勵來對抗它。它推回探索-利用往利用傾斜的趨勢,為「發現更好的動作」留著一扇門。
带熵正则化的损失增加了奖励项 β·H,鼓励保持好奇、熵更高的策略。
- 用你的評論家與選定的 λ,以 GAE 估計優勢值。
- 在每個批次內把優勢值標準化(減平均、除以標準差)——便宜又強力的變異數降低手段。
- 組成損失:−(優勢值 · logπ) − β·熵,其中 β 是個小的熵係數。
- 在訓練過程中把 β 逐漸調小,讓策略在探索夠了之後再變得銳利。