💡一句話定義
PPO(Proximal Policy Optimization,近端策略優化)是一種穩定又好用的策略梯度法:透過限制每次策略更新的幅度,避免一步更新太大導致崩潰。它兼顧「持續進步」與「不跑偏」,是當今最常用的深度 RL 演算法之一。
🎮互動:裁剪目標函數
拖三根滑桿:Advantage(動作好壞)、Clip ε(安全範圍)、Ratio(新舊策略比)。綠帶是安全區,紫線是 PPO 目標。當比率超出安全區、且方向對 PPO 不利時,就觸發裁剪(紫線變平、狀態轉紅)。
🎚️ PPO 裁剪目標 互動演示
等待操作...
1.0
正值 = 好動作 (應該增加機率); 負值 = 壞動作 (應該減少機率)
0.2
1.0
新舊策略的比率 (πnew / πold). 1.0 代表沒變。
🧗核心比喻:小步快跑
🧮裁剪目標(Clipped Objective)
$$ L^{CLIP} = \min\!\big(\underbrace{r_t(\theta)\,A_t}_{\text{原目標}},\; \underbrace{\text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\,A_t}_{\text{裁剪後}}\big) $$
rt=新舊策略機率比 πnew/πold(希望接近 1);At=優勢函數(比平均好多少);ε=裁剪範圍(常 0.1~0.2)。取兩項最小值=不獎勵過度更新。
✂️圖解:好動作 vs 壞動作
👍Advantage > 0(好動作)
想增加機率,但 Ratio 一旦超過 1+ε,PPO 切斷獎勵(線變平),防止過度自信更新。
想增加機率,但 Ratio 一旦超過 1+ε,PPO 切斷獎勵(線變平),防止過度自信更新。
👎Advantage < 0(壞動作)
想減少機率,但 Ratio 低於 1−ε 時停止懲罰,防止策略塌縮為 0。
想減少機率,但 Ratio 低於 1−ε 時停止懲罰,防止策略塌縮為 0。
🧭PPO 在強化學習的定位
PPO 屬策略梯度/Actor-Critic、on-policy:直接學「策略」。相對 DQN(價值法、off-policy、樣本效率較高但只能離散動作),PPO 更穩、更好調、能處理連續動作,還能把同一批資料重用多次提升效率——代價是 on-policy 樣本效率不如 off-policy。
🎯應用場景(含 ChatGPT RLHF)
① ChatGPT(RLHF):PPO 是訓練的最後一步。Reward Model 當裁判給回答打分;PPO Agent 學生成高分回答,但被限制不能偏離原始語言模型太遠(免得為拿高分講出不通順怪話)。
② 機器人控制:更新太大機器人會做危險動作跌倒,PPO 保證動作學習平滑。
③ 遊戲 AI:OpenAI 用 PPO 訓出擊敗職業選手的 Dota 2 AI(OpenAI Five)。
② 機器人控制:更新太大機器人會做危險動作跌倒,PPO 保證動作學習平滑。
③ 遊戲 AI:OpenAI 用 PPO 訓出擊敗職業選手的 Dota 2 AI(OpenAI Five)。
✅自我檢測
Q1. PPO 是什麼?
一種穩定又好用的策略梯度法;透過限制每次策略更新的幅度,避免一步更新太大導致崩潰。
Q2. PPO 怎麼限制更新幅度?
用裁剪(clip)的目標函數:當新舊策略的機率比超出範圍(如 ±0.2)就裁掉,避免過度更新,兼顧進步與穩定。
Q3. 為什麼 PPO 這麼流行?
實作相對簡單、超參數不太敏感、訓練穩定、效果好,且可多次重用同批資料;是許多 RL 與 RLHF 的預設選擇。
Q4. PPO 用在哪些地方?
機器人控制、遊戲 AI,以及大型語言模型的 RLHF 微調(用人類偏好訓練),例如 ChatGPT。
🎯重點整理
- 本質:限制更新幅度的策略梯度法。
- 做法:裁剪目標 min(r·A, clip(r)·A)。
- 好處:穩定、好調、可重用資料。
- 定位:策略法、on-policy、能連續動作。
- 名場面:ChatGPT RLHF 的最後一步。