演員與評論家
演員-評論家架構(actor-critic architecture)讓兩個學習者並肩運作。演員(actor)是策略——它選擇動作,並由策略梯度來改進。評論家(critic)估計一個價值函數,提供演員所需的基準線(或完整的優勢值)。兩者互相幫助:評論家給演員低變異的學習訊號,而演員的經驗又訓練了評論家。
關鍵在於,評論家讓我們可以用時序差分(temporal-difference)估計取代緩慢的蒙地卡羅報酬。單步的 TD 誤差 δ = r + γ·V(s') − V(s) 本身就是優勢值的一個(期望上無偏的)樣本。如今演員可以從單一步驟學習,不必等到回合結束。
单步 TD 误差 δ:评论家对结果比预期好多少的估计,用以替代缓慢的蒙特卡洛回报。
優勢演員-評論家(A2C)
優勢演員-評論家(advantage actor-critic)是乾淨、標準的配方:估計優勢值(常用在短回合上做的 GAE)、用優勢值加權的策略梯度更新演員、再用對 TD 或報酬目標的回歸更新評論家。加上前一篇的熵獎勵,你就有了無數深度強化學習智能體賴以建構的主力。
A2C 用优势加权的策略梯度更新演员,提升那些超过评论家基线的动作。
走向平行:A3C 與 A2C
單一智能體連續取得的樣本高度相關,這會傷害梯度估計。A3C(非同步優勢演員-評論家,Asynchronous Advantage Actor-Critic)的解法是讓許多演員-學習者平行運行,各自有一份環境副本,各自非同步地把梯度推送到一組共享參數。同時進行的多樣經驗讓更新去相關,而不需要回放緩衝區。
强化学习循环示意图,此处以多份并行副本同时向一个共享学习器提供数据。
後來發現,非同步並不是祕方——平行資料才是。A2C(同步版本)只是等所有工作者跑完一段回合,把它們的梯度平均,再套用一次乾淨的更新。它更簡單、更能善用 GPU,通常與 A3C 不相上下甚至更好。A2C 是你應該優先採用的預設選項。
當評論家「相容」時
這裡有個漂亮的理論注腳。學出來的評論家會引入偏差,那梯度還會指向正確方向嗎?相容函數近似(compatible function approximation)理論給出條件:若評論家的特徵恰好是策略的分數特徵 ∇θ log π,並以最小平方法擬合,那麼用這個評論家取代真正的優勢值,會得到精確的策略梯度——完全沒有偏差。
梯度下降沿弯曲的损失曲面逐步走向最小值。
實務上我們很少嚴格滿足這個條件——深度評論家遠比相容族群更具表達力。但它解釋了為什麼演員-評論家是有原理的,而非僥倖的取巧;它也預示了下一篇的自然梯度方法,在那裡相容性直接連到策略空間的幾何結構。