教材讲解 第六章

第六章 PPO 实战

上一章把 clip 讲清楚了。这一章对着倒立摆,把网络和训练循环接起来:采样一批轨迹、用 GAE 算优势、同一批数据重复更新几轮,然后把新策略变成下一轮的旧策略。

  1. 一张骨干,两个头:Actor 出动作概率,Critic 出价值标量。
  2. 先用当前策略与环境玩一会儿,把 (s,a,r) 记下来。
  3. 用 GAE 从后往前扫,得到每一步的优势。
  4. 同一批数据上做 K 轮 clip 更新——这就是比纯 on-policy 更省样本的地方。

书 §6.1–6.4 · p.99–103

6.1 网络结构

是什么。倒立摆状态是 4 个数,动作是 2 个。网络吃长度为 4 的向量。公共的隐藏层之后分叉:策略头输出两个 logit,softmax 成 π;价值头输出一个数 V(s)。

两个头可以共享前面几层,因为「理解杆在哪」对演戏和打分都有用。损失也是两块:策略的 clip 目标,外加价值网拟合回报的误差(常加一点熵,鼓励别过早变成确定性)。

书 §6.1 · p.99

点一层,看它干什么

书上的实现细节以代码为准。这里只要看见「两个头」。

接下节。网络会算了。一轮训练怎么走?

6.2–6.4 采样、GAE、再更新

是什么。PPO 的一步大循环通常是:

  1. 用 πold 在环境里滚若干步或若干回合,记下状态、动作、奖励、旧概率。
  2. 用价值网算每一步的 V,再按第四章的 GAE 从后往前得到优势 A(§6.3)。
  3. 把这批数据打乱,重复 K 个 epoch:每次算比值 r,代入 clip 目标,反向传播(§6.2、§6.4)。
  4. 更新结束,当前 π 变成下一轮的 πold

同一批轨迹能用好几轮,是因为 clip 把策略锁在旧策略附近——走不太远,重要性采样才不至于炸。图 6.1 是倒立摆上奖励随训练上升的示意。

书 §6.2–6.4 · 图 6.1 · p.99–103

跑一轮 PPO

点「下一步」。四块依次亮。示意奖励会往上走一点。

示意回报 12 大循环 0

还没走。点「下一步」从采集开始。

这不是真的在训倒立摆。真训练还要处理结束状态、标准化优势、价值损失系数。骨架就是这四拍。

下一章。clip 为什么够用?KL、重要性采样、替代目标。

合上这一章

  1. 两个头。策略出概率,价值出标量。
  2. 先玩再算。采集 → GAE → 多轮 clip → 换旧策略。
  3. 数据能复用几轮,是因为更新被按在近端。

章末自测

讲完了。下面几题核对本讲刚说过的概念。点选立刻看对错;做错也不会锁下一章。

第七章 PPO 背后的数学 · 原书 p.105–118

打开第七章 回到目录