強化學習

近端策略最佳化(proximal policy optimization, PPO)

/ PROK-sih-mul POL-uh-see op-tih-mih-ZAY-shun /

近端策略最佳化,即 PPO,是那個讓強化學習可靠到足以被廣泛使用的主力演算法。它的核心洞見謙遜卻有力:在改進策略時,別一次改得太多。朝著「看起來最好」的方向貪婪地一躍,可能會用力過猛,毀掉一個花了好久才學成的策略。PPO 轉而邁出許多細小、謹慎的步子,拒絕離它已經所在之處太遠——「近端」意即「待在近旁」。

具體說來,PPO 是一種繫著安全繩的演員—評論家方法。在收集了一些經驗之後,它想把策略朝那些「表現得比評論家預期更好」的動作挪去。但它會給這次挪動「裁剪」一下:如果某次更新試圖把一個動作的機率改動超過某個設定的幅度,PPO 就把它封頂。這一裁剪正是全部訣竅所在——它讓演算法能從每一批資料中榨出好幾個改進步驟,而策略不至於一頭栽下懸崖。

PPO 的聲名靠的是「樣樣都夠好」而非「哪一樣最強」:穩定、樣本效率尚可、對不完美的調參也寬容,所以它往往「就是能用」。這正是它為何成了機器人控制、遊戲對弈,以及——最著名地——從人類回饋訓練聊天機器人時那一步強化學習的預設之選。誠實的告誡是:「就是能用」是相對的。PPO 仍需要大量的試錯資料和精心的獎勵設計,而且像所有深度強化學習一樣,它也會以令人費解、難以排查的方式失敗。

PPO 就是 RLHF 裡的那個「RL」,也就是用來微調許多聊天機器人的那道配方。模型提出回覆;一個用人類偏好訓練出來的獎勵模型給它們打分;PPO 把模型朝得分更高的回覆挪去——但會裁剪每一次更新,好讓模型穩步改進,而非崩塌成某種古怪的單一文風。

邁出細小、經裁剪的改進步子,讓策略永不會一下子躥出太遠——這正是 RLHF 中那一步強化學習背後的配方。

PPO 之所以流行,是因為它穩健、比較容易跑通,而非因為它在理論上最優。那個讓它保持穩定的裁剪,同時也限住了它學得有多快,而且它對資料依舊飢渴——所以它「安全預設值」的名聲,不該被讀成「毫不費力」或「永遠最佳」。

又稱
PPO近端策略优化近端策略最佳化