第5章:Policy-Based 方法——策略梯度与 REINFORCE
第 4 章走了路线一——先学 给每个动作打分,再选分数最高的。DQN 在 CartPole 和 Atari 上效果很好,但它有一个根本性的局限:只能处理有限个离散动作。
CartPole 只有"左推"和"右推"两个选项,DQN 给每个动作算一个 值,取最大的就行。但如果要控制一个机械臂呢?肩关节、肘关节、腕关节各有多个自由度,每个自由度能施加连续的力矩——可能的动作组合有无穷多种,不可能给每种组合都算一个 值。更不用说大模型生成文本——每一步要从几万个 token 中采样,策略本身是一个连续的概率分布, 的思路完全行不通。
换一条路:直接学策略
既然"先打分再选"走不通,那就换一条路:跳过 值,直接学策略 。不问"每个动作值多少分",而是直接学"在什么情况下该做什么"。
这正是第 3 章路线二的核心思路。本章将深入这条路线,从最简单的策略梯度方法开始。
本章暗线:一直在降噪声
策略梯度最大的敌人是噪声太大(高方差)。本章每一节的改进都在想办法压制噪声:
先动手:让 AI 玩赌博机,看它能不能自己发现"永远选赢率高的那个"。它确实能学会,但学得很抖——这就是噪声的直接表现。
再讲原理:解释为什么
loss = -log_prob * reward这一行代码能让 AI 学会"偏爱好的动作"。背后是策略梯度定理——REINFORCE 本质上就是第 3 章速览过的 MC 方法在策略空间的应用。然后减噪声:关键洞察是——不要问"这趟跑了多少分",而要问"这趟比平时好了多少"。减掉一个"基线",同样的数学方向,噪声却小了很多。而最好的基线恰好就是 ——它为下一章引入 Critic 网络提供了自然的动机。
| 小节 | 核心问题 |
|---|---|
| 动手:摇骰子赌博机 | 策略网络怎么学会"偏爱好的动作"? |
| 策略梯度定理与 REINFORCE | "好结果 → 强化动作概率"的数学本质是什么? |
| 动手:Baseline 降方差 | 减掉基线效果有多好? 为什么是最佳基线? |
让我们从一个简单的动手实验开始——动手:摇骰子赌博机。