為什么傳統策略梯度方法(如REINFORCE算法)在訓練過程中存在不穩定性和樣本效率低下的問題
1. 傳統策略梯度方法的基本公式
傳統策略梯度方法的目標是最大化累積獎勵的期望值。具體來說,優化目標可以表示為:
max ? θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t R t + 1 ] \max_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] θmax?J(θ)=Eπ?[t=0∑∞?γtRt+1?]
其中:
- J ( θ ) J(\theta) J(θ) 是策略性能,即累積獎勵的期望值。
- π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ?(at?∣st?) 是在策略 π \pi π 下,狀態 s t s_t st? 下選擇動作 a t a_t at? 的概率。
- R t + 1 R_{t+1} Rt+1? 是在時間步 t + 1 t+1 t+1 獲得的獎勵。
- γ \gamma γ 是折扣因子,用于衡量未來獎勵的當前價值。
為了實現這個目標,策略梯度定理提供了策略性能的梯度的解析表達式:
? θ J ( θ ) = E π [ ∑ t = 0 ∞ γ t ? θ log ? π θ ( a t ∣ s t ) ? G t ] \nabla_\theta J(\theta) = \mathbb{E}_\pi\left[\sum_{t=0}^{\infty} \gamma^t \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t\right] ?θ?J(θ)=Eπ?[t=0∑∞?γt?θ?logπθ?(at?∣st?)?Gt?]
其中:
- G t G_t Gt? 是從時間步 t t t 開始的累積獎勵:
G t = ∑ k = t ∞ γ k ? t R k + 1 G_t = \sum_{k=t}^{\infty} \gamma^{k-t} R_{k+1} Gt?=k=t∑∞?γk?tRk+1?
2. 不穩定性問題
(1)梯度估計的高方差
傳統策略梯度方法(如REINFORCE算法)直接使用采樣軌跡來估計策略梯度。具體更新規則為:
θ ← θ + α ∑ t = 0 T ? θ log ? π θ ( a t ∣ s t ) ? G t \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t θ←θ+αt=0∑T??θ?logπθ?(at?∣st?)?Gt?
其中:
- α \alpha α 是學習率。
- T T T 是軌跡的長度。
問題分析:
- 高方差:累積獎勵 G t G_t Gt? 是一個隨機變量,其值取決于具體的采樣軌跡。由于環境的隨機性和策略的隨機性,不同軌跡的累積獎勵 G t G_t Gt? 可能差異很大,導致梯度估計的方差很高。高方差的梯度估計使得訓練過程不穩定,容易出現劇烈波動。
- 更新過大:由于梯度估計的方差很高,每次更新可能會導致策略參數 θ \theta θ 發生較大變化。這種過大的更新可能會使策略偏離最優策略,導致訓練過程不穩定。
3. 樣本效率低下的問題
(1)單次更新
傳統策略梯度方法通常在每個數據批次上只進行一次更新。具體來說,每采樣一條軌跡,就計算一次梯度并更新策略參數。這種單次更新的方式導致樣本的利用效率較低。
問題分析:
- 樣本利用率低:每個數據批次只使用一次,更新后就丟棄。這意味著每個樣本只對策略更新貢獻一次,沒有充分利用樣本的信息。
- 數據冗余:在復雜環境中,采樣到的軌跡可能包含大量重復或相似的狀態和動作,這些冗余數據沒有被充分利用,導致樣本效率低下。
4. PPO如何解決這些問題
PPO(Proximal Policy Optimization)通過以下兩種主要機制解決了傳統策略梯度方法的不穩定性和樣本效率低下的問題:
(1)剪切機制(Clipping Mechanism)
PPO引入了一個剪切的目標函數,限制新策略與舊策略之間的概率比率。具體來說,PPO的目標函數為:
L C L I P ( θ ) = E t [ min ? ( r t ( θ ) A t , clip ( r t ( θ ) , 1 ? ? , 1 + ? ) A t ) ] L^{CLIP}(\theta) = \mathbb{E}_t\left[\min\left(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) A_t\right)\right] LCLIP(θ)=Et?[min(rt?(θ)At?,clip(rt?(θ),1??,1+?)At?)]
其中:
- r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt?(θ)=πθold??(at?∣st?)πθ?(at?∣st?)? 是新策略與舊策略的概率比率。
- A t A_t At? 是優勢函數,表示在狀態 s t s_t st? 下采取動作 a t a_t at? 的相對優勢。
- ? \epsilon ? 是一個超參數,通常取值為0.1或0.2。
解決不穩定性的機制:
- 限制更新幅度:通過剪切操作 clip ( r t ( θ ) , 1 ? ? , 1 + ? ) \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) clip(rt?(θ),1??,1+?),PPO限制了新策略與舊策略之間的概率比率,防止策略更新過大。這使得每次更新更加平滑,減少了訓練過程中的波動。
- 降低方差:剪切機制通過限制概率比率的范圍,減少了梯度估計的方差,使得訓練過程更加穩定。
(2)多次更新
PPO允許在一個數據批次上進行多次更新。具體來說,PPO在采樣一批數據后,可以多次使用這些數據進行更新,直到策略收斂。
解決樣本效率低下的機制:
- 提高樣本利用率:通過多次更新,每個樣本可以多次貢獻于策略的優化,充分利用了樣本的信息。
- 減少冗余:多次更新可以更好地利用數據中的信息,減少冗余數據對訓練的影響,提高樣本的利用效率。
5. 總結
傳統策略梯度方法(如REINFORCE算法)在訓練過程中存在不穩定性和樣本效率低下的問題,主要原因是:
- 高方差的梯度估計:累積獎勵 G t G_t Gt? 的隨機性導致梯度估計的方差很高,使得訓練過程不穩定。
- 單次更新:每個數據批次只使用一次,更新后就丟棄,導致樣本的利用效率較低。
PPO通過引入剪切機制和多次更新,解決了這些問題:
- 剪切機制:限制新策略與舊策略之間的概率比率,防止策略更新過大,降低梯度估計的方差,提高訓練的穩定性。
- 多次更新:在一個數據批次上進行多次更新,充分利用樣本信息,提高樣本的利用效率。
這些改進使得PPO在訓練過程中更加穩定,樣本效率更高,成為強化學習領域中一種常用的基準算法。