從PolicyGradient到REINFORCE++,萬字長文梳理強化學習最新進展

強化學習的核心目標是透過不斷調整策略(即根據當前狀態選擇動作的規則),使智慧體表現得更好。在強化學習中,有幾個關鍵元素至關重要:首先是獎勵模型和價值函式,它們用於評估每個動作或策略的優劣,從而決定模型最佳化的方向;其次是更新規則,主要涉及損失函式的約束項,它決定了策略更新的力度和穩定性。 
本文首先介紹了三類基礎的強化學習演算法,這三類演算法主要在獎勵計算和更新規則上有所不同,是 RLHF(人類反饋強化學習)的核心。接著,重點討論了四種改進方法:REINFORCE、RLOO、PRIME 和 REINFORCE++,它們透過引入 EMA、線上取樣、過程獎勵等技術,使獎勵更加無偏並提高密整合都。
最後,介紹了 GRPO(Group Relative Policy Optimization)方法,它在獎勵函式的計算和策略更新規則上做出了進一步的改進,以提升訓練的穩定性和效率。
Policy Gradient
最早的 Policy Gradient Methods 就是直接最佳化策略的一種方法。簡單來說,策略梯度方法透過計算“策略梯度”(表示如何調整策略模型以提升表現)來更新策略,從而讓智慧體在長期內獲得更高的獎勵。 
具體步驟是:
1. 計算策略梯度:通過當前策略和動作的效果(優勢函式),我們可以計算出一個梯度(action 對於 policy model 的梯度),告訴我們如何調整策略。 
2. 最佳化策略:透過梯度上升的方法調整策略引數,以提升智慧體的表現。 
3. 反覆更新:這個過程是一個反覆的取樣和最佳化過程,每次都會根據新的資料調整策略。 
策略梯度的定義如下所示:
表示在狀態下,採取動作的機率,是策略的引數,控制策略的行為。
 是策略梯度,表示策略引數變化時,策略的行為(即動作選擇機率)如何變化。
 是優勢函式的估計值,它表示動作相對於當前策略的“好壞”。如果,說明該動作相較於平均水平是好的,應該增加這種動作的機率;如果,則說明該動作不好,應該減少其機率。
 表示對多個樣本的平均,意思是我們在進行多次實驗後,計算這個期望值。
這是我們的目標函式,我們希望最大化這個目標。簡而言之,就是透過調整策略引數,使得智慧體選擇的動作(那些優勢高的動作)變得更加可能。
對於 LLM,也就是直接將 outcome reward 作為每個 token 的 advantage。例如有兩個 sample,分別為錯誤和正確,第一個 sample 有 5 個 token,它的 advantage 矩陣為 [0,0,0,0,0];第二個 sample 有 6 個 token,它的 advantage 矩陣為 [1,1,1,1,1,1],不斷提升正確樣本的 token 機率。 
這裡的問題在於,如果我們對同一批資料做多次最佳化,可能會導致策略的更新過大(比如引數調整過猛)。這樣會使得策略發生劇烈變化,導致效能反而變差。因此,過度更新會導致學習不穩定。

TRPO (Trust Region Policy Optimization)

TRPO(Trust Region Policy Optimization)是一種改進的策略最佳化方法,核心思想是限制策略更新的幅度,避免策略變化過大導致學習不穩定。簡單來說,TRPO 透過引入“信賴區域”的概念,確保每次更新後的策略不會偏離舊策略太遠,從而保證學習過程的平穩性。他的目標函式如下所示:
透過最大化這個目標函式,TRPO 試圖找到一種策略,使得新策略在優勢動作上的機率更高。同時,KL 散度用於衡量當前策略和舊策略之間的差異。這個約束確保了策略的更新不會過於激進。 
當然直接求解這個問題是很困難的,TRPO 在其具體實現中做了一步近似操作來快速求解,作者對目標和約束進行了泰勒展開,並分別用一階和二階進行近似,最後得出的結果需要用到 hessian 矩陣 H 和 g(目標函式對 policy 的梯度)。
這對於 LLM 來說是不可接受的,因此作者又用了共軛梯度的方法避免儲存 hessian 矩陣,總體最佳化比較複雜,而且因為 KL 散度和最佳化目標都是泰勒近似,很難保證 KL 散度的約束一定被滿足。因此每一輪迭代 TRPO 還要透過先行搜尋找到一個整數 i 來強行使得 KL diververge 的約束被滿足。 
這裡就有一個有趣的問題,就是為什麼選擇把 KL 散度作為一個 hard constraint 而不是一個目標函式的懲罰項。
實際上原作者是證明了,這種形式的懲罰項會形成一個 lower bound 來限制策略的變化。但是作者認為如果使用懲罰項,𝛽 係數需要針對不同任務進行調整。在一個任務中,合適的 𝛽 值可能在學習的不同階段有所不同。固定的 𝛽 值在某些情況下可能會導致策略更新過大或過小,從而影響訓練效果。

PPO (Proximal Policy Optimization Algorithms)

TRPO 演算法在很多場景上的應用都很成功,但是我們也發現它的計算過程非常複雜,每一步更新的運算量非常大。於是,TRPO 演算法的改進版——PPO 演算法在 2017 年被提出,PPO 基於 TRPO 的思想,但是其演算法實現更加簡單。並且大量的實驗結果表明,與 TRPO 相比,PPO 能學習得一樣好(甚至更快),這使得 PPO 成為非常流行的強化學習演算法。 
從這裡開始我們使用 LLM 的 notion 方便理解,即 q 作為 state(輸入token),o 作為 action,輸出 token,policy model 即 LLM 模型。傳統的 PPO 由如下公式訓練,直接將 KL divergence 的 term 替換成了 CLIP 的操作。
3.1 優勢函式(Advantage Function)
優勢函式衡量了在當前狀態下選擇某個動作的優越性,相對於其他動作的預期回報的提升。實際中,優勢函式通常是透過累計折扣獎勵減去基準來實現的。公式為:
其中,折扣因子,決定了未來獎勵的權重。是環境在時間步 提供的獎勵。基準(baseline),用來減小優勢函式的方差,常見的選擇包括直接使用值函式或獎勵的群體平均
3.2 值函式(Value Function)
儘管蒙特卡洛估計(MC 估計)是無偏的,但它因為依賴所有未來的動作和獎勵,而可能受到很高的方差影響。為了降低方差,引入了值函式,它預測從某個狀態出發,智慧體能夠獲得的累計獎勵。值函式有助於在計算優勢函式時減少波動。
常見的方式是使用廣義優勢估計(GAE)來減少方差,同時保持估計的偏差在可接受範圍內。GAE 公式如下:
其中,時序差分(TD)誤差。 是值函式,表示每個狀態的預期回報。 控制偏差和方差的折衷。
PPO(Proximal Policy Optimization)等 actor-critic 演算法中,值函式和策略模型是一起訓練的。
REINFORCE在LLM對齊中的應用
在 LLM 應用中,獎勵 r(x, y) 通常只在完整序列生成後獲得。這種方法允許使用 REINFORCE 估計器來最佳化整個序列的獎勵目標:
為了在保持無偏估計的同時減少方差,引入了一個基線 b:
一個簡單有效的基線是訓練過程中所有獎勵的移動平均值
其中是訓練步數,是第步的 prompt-completion 對。
RLOO (REINFORCE Leave-One-Out)
移動平均基線雖然簡單,但可以透過使用多個線上樣本來進一步改進。
REINFORCE Leave-One-Out (RLOO) 估計器利用多個樣本來減少方差
  • 每個樣本的獎勵可以作為其他樣本的基線;
  • 策略更新透過對每個樣本的梯度估計取平均來實現,從而得到一個方差減少的蒙特卡洛(MC)估計。 
RLOO 估計器的定義如下:
其中是從中生成的個獨立樣本。
RLOO 為每個樣本建立了一個即時的、無引數的基線,比更有效,但需要額外的取樣時間。
PRIME
6.1 稠密獎勵訊號的重要意義
PPO 的方法可以自然地將稠密獎勵融入到優勢函式中,但在大多數LLM實踐中比如 RLOO 和 Reinforce,實際可用的獎勵模型(ORM)通常是輸出獎勵模型(Outcome Reward Models)。這意味著通常只有最後一個 token 才會得到有意義的獎勵,而中間的 token不會獲得獎勵。
例如,在這種設定下,對於是非零的,公式(2)變為:
這種簡化形式雖然更易實現,但獎勵稀疏性問題會導致許多問題: 
1. 錯誤過程的解決方案:勵只出現在生成過程的最後,可能會導致策略學習出錯的過程(如不正確的生成過程),但最終得到正確的答案。 
2. 樣本效率降低:由於獎勵僅在最後提供,智慧體需要較長的時間來感知並學習每個 token 對最終結果的影響,導致樣本效率下降。 
3. 信用分配問題(Credit Assignment Problem):這種獎勵結構使得很難追溯每個 token 的貢獻,尤其在生成過程中,智慧體需要學習如何將獎勵歸因於先前的生成步驟。 
這些問題在複雜任務中尤為突出,因為這些任務可能需要更多的思考和執行步驟,因此需要稠密獎勵(即在每個 token 生成時提供反饋)。使用採用稠密獎勵模型(PRM)來緩解獎勵稀疏性問題是比較直觀的,但是難以訓練,而且成本較高。
6.2 PRM-free的dense reward
PRIME 的核心思想是應用隱式過程獎勵,這些獎勵可以從隱式獎勵模型(Implicit PRM)中推匯出來,而這個模型只需要結果標籤(outcome labels)來訓練。
推理階段:在推理階段,使用隱式獎勵模型來計算每個 token 級的獎勵,這裡的 implicit reward 是和 ORM 的唯一區別,公式為:
這裡,是在生成過程中當前時刻的 token,是該時刻之前生成的 tokens。透過這種方式,隱式獎勵模型在生成每個 token 時提供了獎勵反饋。

6.3 優勢估計
因為現在我們可以為每個 token 提供 reward,那麼就可以進一步考慮如何利用這些獎勵估算優勢,從而指導策略更新。PRIME 發現蒙特卡洛估計(MC)比廣義優勢估計(GAE)更簡單,效果也更好,因此選擇 MC 作為預設選擇。
對於每個生成的樣本,優勢函式透過 leave-one-out baseline 來估算進一步減小方差:
其中,是第個響應在最終步驟的獎勵。是每個提示生成的樣本數。
作者將 process reward 與 outcome reward 都利用了起來:
隱式過程獎勵的計算過程: 
1. 使用平均的隱式過程獎勵來計算留一法基準(LOO);
2. 透過減去基準值來規範化每個步驟的過程獎勵;
3. 計算每個響應的折扣回報(discounted return);
結果獎勵(Outcome Rewards)則直接採用留一法(LOO),無需修改。而且結合得到最終的 reward:
訓練演算法採用傳統的 PPO 策略。
REINFORCE++
這裡的核心貢獻主要有兩個:對 KL 散度的限制更加嚴格,以及優勢函式逐 batch 做歸一化,更加穩定。
7.1 Token-Level KL懲罰
在 REINFORCE++ 中,Token-Level KL 懲罰被整合到獎勵函式中。獎勵函式的定義如下:
其中,是一個指示函式,當 token是序列結束符(End of Sequence, EOS)時取值為 1,否則為 0。是模型生成的完整序列對應的獎勵。是一個超引數,用於控制 KL 懲罰的強度。是 token的 KL 散度,計算公式為:
其中:是 RL 模型在狀態下生成 token的機率。是 SFT 模型在狀態下生成 token的機率。
這種做法有助於更好的 credit 分配,同時與過程獎勵模型(PRM)無縫整合,增強了訓練的穩定性。
7.2 Advantage Normalization(優勢標準化)
為了確保梯度的穩定性並避免訓練中的發散,文章對優勢進行z-score 標準化
其中分別是 batch 中的平均值和標準差。優勢標準化有助於平衡不同訓練步驟中的梯度幅度,確保訓練過程的穩定性,並防止出現梯度爆炸或消失的問題。
GRPO

GRPO 是 PPO 的又一改進,主要是想去掉 value model 的存在,同時克服獎勵稀疏性的問題。GRPO 的目標函式如下:
其中,是超引數。是基於組內相對獎勵計算的優勢函式。
透過以下方式解決了 PPO 的侷限性: 
1. 去除價值函式:GRPO 不需要額外的價值函式模型,而是使用多組取樣輸出的平均獎勵作為基線(baseline)。
2. 組內相對獎勵:對於每個問題,GRPO 從舊策中取樣一組輸出,並利用這些輸出的相對獎勵計算優勢函式。所有 token 的優勢值都等於歸一化後的獎勵
3. KL 正則化:相比於,REINFORCE++,GRPO 在損失函式中直接加入 KL 散度正則項,而不是將 KL 懲罰整合到獎勵中,從而簡化了優勢函式的計算。
是策略模型和參考模型之間的 KL 散度。GRPO 採用了近似的 KL 散度,進一步提高了計算的穩定性和效率。

總結
這篇文章總結了一些 RL 的重要工作,早起策略梯度方法(Policy Gradient)透過計算策略的梯度,最佳化策略,從而幫助智慧體在長期內獲得更高的獎勵。為了改進 PPO(Proximal Policy Optimization)方法的計算複雜性和不穩定性,提出了多種改進演算法,包括 TRPOGRPO REINFORCE 系列。 
1. REINFORCE 透過計算整個序列的獎勵,最佳化策略,適合用於LLM(大規模語言模型)訓練,其中採用了優勢函式(Advantage Function)來評價每個動作的優越性。該方法使用了無偏估計基線來減少方差,提高訓練穩定性。 
2. REINFORCE Leave-One-Out (RLOO) 進一步減少了方差,透過多個樣本的留一法(Leave-One-Out)計算基線,優化了獎勵估計。它透過**多樣本線上取樣來生成方差減少的蒙特卡洛估計,從而提高了訓練的效率。 
3. GRPO(Group Relative Policy Optimization)透過避免使用額外的價值函式,改進了 PPO 的計算複雜性,並利用多個從舊策略中取樣的輸出的平均獎勵作為基線,從而 t 提高了 reward 質量。 
4. REINFORCE++ 透過 token 級 KL 懲罰優勢標準化,進一步穩定了訓練過程。它透過規範化優勢函式,減少了梯度的波動,並引入了更加嚴格的 KL 懲罰,進一步提高了策略更新的穩定性。
未來展望
1. 獎勵模型的精確性:目前,LLM 訓練中通常依賴於最終結果的獎勵,而不是每個生成步驟的獎勵。未來可以探索更精細的獎勵模型,例如過程獎勵,為每個推理步驟提供即時反饋,從而提高訓練效率和穩定性。 
2. 計算效率和擴充套件性:隨著模型規模的不斷增大,計算成本和記憶體消耗將成為主要瓶頸。未來需要進一步最佳化策略更新演算法,減少計算複雜性和記憶體開銷,例如透過改進近似 KL 散度的估計方法或探索新的正則化技術。 
3. 多樣本取樣的最佳化:在 RLOO 和 GRPO 中,樣本取樣被用來減少方差並提高訓練效果。未來的研究可以進一步最佳化取樣策略,提高取樣效率,減少訓練時間,同時保持高效的策略更新。 
4. 動態更新的獎勵模型:隨著策略的訓練進展,舊的獎勵模型可能無法有效地評估新的策略。未來可以探索動態更新獎勵模型的方式,利用迭代強化學習來不斷提升獎勵模型的準確性,從而更好地引導策略最佳化。 
總之,隨著強化學習方法的不斷發展,如何最佳化獎勵模型、減少計算開銷,並提升訓練效率,仍然是未來研究的重要方向。
更多閱讀
#投 稿 通 道#
 讓你的文字被更多人看到 
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析科研心得競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝 稿件基本要求:
• 文章確係個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標註 
• 稿件建議以 markdown 格式撰寫,文中配圖以附件形式傳送,要求圖片清晰,無版權問題
• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬 投稿通道:
• 投稿郵箱:[email protected] 
• 來稿請備註即時聯絡方式(微信),以便我們在稿件選用的第一時間聯絡作者
• 您也可以直接新增小編微信(pwbot02)快速投稿,備註:姓名-投稿
△長按新增PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜尋「PaperWeekly」
點選「關注」訂閱我們的專欄吧
·
·
·

相關文章