Advantage Actor Critic(A2C)說明

TL;DR

Advantage Actor Critic(A2C)是一種混合式強化學習架構,結合基於策略(Actor)與基於價值(Critic)的方法,以降低類似 Reinforce 的純策略梯度方法所帶來的高變異性。此組合透過使用價值函數即時回饋動作,而非依賴完整回合的蒙特卡羅回報,從而穩定訓練並提升樣本效率。

Reinforce 中的變異問題

純策略方法,例如 Reinforce,因依賴蒙特卡羅抽樣而在策略梯度估計上產生顯著變異。在 Reinforce 中,代理會收集整條軌跡,並使用折扣回報來增加或減少該軌跡中每個動作的機率。

雖然此方法因使用真實回報而保持無偏,但其不穩定性極高。環境與策略的隨機性意味著相同的起始狀態在不同回合中可能產生截然不同的回報。為了減少此變異,實務上必須使用大量軌跡,這大幅降低了樣本效率並拖慢訓練速度。

Actor-Critic 架構

Actor-Critic 方法透過結合兩個不同的函數近似來解決變異問題:

  • Actor(演員): 控制代理行為的策略函數 $\pi_{\theta}(s, a)$。
  • Critic(評論家): 衡量所採取動作品質的價值函數 $(\hat{q})_{w}(s, a)$。

Actor-Critic 訓練過程

在訓練過程中,Actor 與 Critic 透過持續的回饋迴路共同優化:

  1. Action Selection: Actor 接收當前狀態 $S_t$ 並輸出動作 $A_t$。
  2. Value Estimation: Critic 接收 $S_t$ 與 $A_t$,計算 Q 值(在該狀態下執行該動作的價值)。
  3. Environment Interaction: 執行動作 $A_t$,產生新狀態 $S_{t+1}$ 與獎勵 $R_{t+1}$。
  4. Policy Update: Actor 根據 Critic 提供的 Q 值更新其策略參數。
  5. Value Update: Critic 更新其自身的價值參數,以提升未來的回饋。

Advantage Actor Critic(A2C)

Advantage Actor Critic(A2C)透過將標準的行動價值函數替換為 Advantage function(優勢函數),進一步穩定學習。

優勢函數不是測量動作的絕對價值,而是計算特定動作相較於該狀態平均價值的提升程度。它將狀態的平均價值從狀態-動作對中減去:

$$\text{Advantage} = Q(s, a) - V(s)$$

透過 TD 誤差實作

實作真實的優勢函數通常需要兩個獨立的價值函數($Q(s, a)$ 與 $V(s)$)。為了簡化,A2C 使用 Temporal Difference (TD) error(時間差分誤差) 作為優勢函數的可靠估計。

若計算得到的優勢 $A(s, a)$ 為正,梯度會朝該方向推動,以提升該動作的機率。若 $A(s, a)$ 為負——表示該動作的表現低於該狀態的平均——梯度則會朝相反方向推動。

機器人實務應用

Hugging Face 示範了在 PyBullet 機器人模擬中使用 Stable-Baselines3 套件應用 A2C。這使得能在複雜的連續控制環境中訓練代理,例如教導雙足行走者或蜘蛛機器人行走。

Sources