今年2月的時候,導師突然告訴我Ron William離世了。他算是我導師的 a life time friend,關系很好,我做畢業論文的時候,他還來參與了論文的答辯。Ron是一個很友善的老頭,和他在強化學習領域的影響力比起來,本人顯得非常的低調,質樸。如果說Ron這個名字你很陌生,那么REINFORCE算法的你一定知道,對的,沒錯,Ron William就是那個paper的一作。
那之后,我一直就想寫點什么,去回顧一下REINFORCE這個算法以及這個算法所開創的策略梯度學習,或是去單純的紀念一下我和Ron的一面之緣。
引言
在強化學習中,策略梯度方法對于通過優化期望累積獎勵直接學習最優策略至關重要。這些方法已經從最基礎的REINFORCE算法發展到更復雜的方法,如信賴域策略優化(TRPO)和近端策略優化(PPO)。本文將探討對數技巧的必要性、將軌跡積分轉化為樣本估計的方法,以及從REINFORCE到TRPO和PPO的演變過程。
對數技巧和樣本估計
策略梯度方法的核心思想是通過優化策略參數來最大化期望獎勵。然而,直接計算期望獎勵的梯度通常是不可行的。這時對數技巧變得至關重要。通過使用對數技巧,我們可以將期望獎勵的梯度表示為涉及策略對數概率梯度的期望:
?θJ(θ)=Eτ~πθ[?θlog?πθ(τ)R(τ)]\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} [\nabla_\theta \log \pi_\theta(\tau) R(\tau)]?θ?J(θ)=Eτ~πθ??[?θ?logπθ?(τ)R(τ)]
其中,πθ\pi_\thetaπθ? 是由參數 θ\thetaθ 參數化的策略,τ\tauτ 表示軌跡,R(τ)R(\tau)R(τ) 是軌跡的累積獎勵。
這一轉化將軌跡上的積分轉化為樣本估計,可以使用蒙特卡羅方法來逼近。通過從策略中采樣軌跡,我們可以計算梯度的無偏估計,并相應地更新策略參數。
從REINFORCE到TRPO
REINFORCE的局限性
REINFORCE算法雖然簡單直觀,但存在一些局限性。由于它依賴于樣本估計,策略的更新可能具有較高的方差,導致學習過程不穩定且低效。此外,REINFORCE不能保證更新后的策略質量,因此難以確保每次更新都能改善策略。
TRPO的思想
為了解決這些局限性,信賴域策略優化(TRPO)被引入,它建立在Kakade和Langford(2002)的基礎成果之上。這個結果為策略優化中的信賴域方法提供了理論依據,表明兩個策略的期望折扣獎勵之間的差異可以準確地表示為在新策略上估計但由舊策略計算的期望優勢。
TRPO的核心思想是通過從舊策略采樣來估計這種差異,因為直接計算這種差異是困難的,因為我們不能從新策略采樣。TRPO引入了一個代理目標,使用舊策略的樣本來估計新策略的性能。這是通過確保更新的策略與先前的策略保持接近,即維持在一個“信賴域”內來實現的。TRPO中的關鍵優化問題可以表述為:
max?θEτ~πθold[πθ(τ)πθold(τ)R(τ)]\max_\theta \mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ \frac{\pi_\theta(\tau)}{\pi_{\theta_{\text{old}}}(\tau)} R(\tau) \right]maxθ?Eτ~πθold???[πθold??(τ)πθ?(τ)?R(τ)] subject?to??Eτ~πθold[DKL(πθold∥πθ)]≤δ\text{subject to} \; \mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ D_{KL}(\pi_{\theta_{\text{old}}} \| \pi_\theta) \right] \leq \deltasubject?toEτ~πθold???[DKL?(πθold??∥πθ?)]≤δ
這一約束確保策略更新不會顯著偏離先前的策略,從而提供更穩定和可靠的學習過程。TRPO的研究結果表明,只要新策略和舊策略足夠接近,用在舊策略上計算的期望優勢替代在新策略上的計算是可行的。
有趣的是,TRPO最初嘗試直接用KL懲罰進行優化。然而,這種方法被發現過于嚴格,導致作者放棄并改用直接優化,這顯著增加了算法的復雜性。但是后來,在PPO中,作者發現了更靈活的KL懲罰項,從而又回歸到了最初的形式之上。
從TRPO到PPO
用PPO簡化TRPO
雖然TRPO為策略優化提供了一個強有力的框架,但它涉及求解一個約束優化問題,這可能在計算上昂貴且復雜。近端策略優化(PPO)通過使用一個裁剪的代理目標來簡化這一過程,該目標近似于信賴域約束,而不需要復雜的優化過程:
Eτ~πθold[min?(r(θ)A^,clip(r(θ),1??,1+?)A^)]\mathbb{E}_{\tau \sim \pi_{\theta_{\text{old}}}} \left[ \min \left( r(\theta) \hat{A}, \text{clip}(r(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A} \right) \right]Eτ~πθold???[min(r(θ)A^,clip(r(θ),1??,1+?)A^)]
其中,r(θ)=πθ(τ)πθold(τ)r(\theta) = \frac{\pi_\theta(\tau)}{\pi_{\theta_{\text{old}}}(\tau)}r(θ)=πθold??(τ)πθ?(τ)? 是概率比率,A^\hat{A}A^ 是優勢估計。剪輯函數確保策略的更新不會偏離太多,有效地保持了信賴域的行為。
隨機采樣和重要性采樣
與REINFORCE不同,TRPO和PPO都可以使用隨機樣本進行更新,而不是整個軌跡。這是通過重要性采樣實現的,在這種方法中,使用舊策略的樣本來估計當前策略的性能。通過根據概率比率重新加權這些樣本,我們可以推導出當前策略梯度的無偏估計。這種新的采樣方式也避免了使用對數技巧。
實際應用和擴展
在實際中,TRPO和PPO由于其穩健性和效率而被廣泛采用。例如,在像ChatGPT這樣的大規模模型的訓練中,目標通常需要改寫為相對于先前策略的期望,以便于重要性采樣并應用PPO框架。這種調整允許復雜模型的高效和穩定訓練。
結論
從REINFORCE到TRPO和PPO的演變代表了策略梯度方法的重大進步。通過解決REINFORCE中高方差和不穩定的問題,TRPO引入了一種方法來確保策略更新保持在信賴域內,從而基于Kakade和Langford的基礎成果提供更可靠的改進。PPO進一步簡化了這種方法,使其在實際應用中更易于訪問和高效。PPO中靈活的KL懲罰版本展示了策略梯度方法的迭代改進如何導致穩健和高效的算法。這些方法共同構成了現代強化學習的堅實基礎,使得開發復雜和有效的策略成為可能。