CS234 L8 · 策略梯度 I · 全片速览

65 镜一次看完 · Ctrl+F 可搜全文 · Ctrl+P 可存成 PDF · 想看动画回放映厅

1 · 开场2 · 1 · 为什么要直接参数化策略,3 · 2 · 随机策略是必需4 · 3 · 状态混叠:确定性策略在看5 · 4 · 无梯度搜索与有限差分 —6 · 5 · 似然比技巧:乘除同一个 7 · 6 · 模型消失了 —— 这一讲8 · 7 · REINFORCE:一个9 · 8 · 因果性降方差:每个 sc10 · 9 · 高斯策略:连续动作第一次11 · 完
知识点 1

开场

1 / 65
讲解
前七讲的结构是同一个:估一个值函数,再从它读出策略。L4 之后连「读出来」这一步都固定了——argmax_a Q(s,a)。 这一讲换一条路:直接把策略参数化成 π_θ(a|s),对 θ 求梯度。值函数不再是必经之路。 换这条路有三个理由,而第三个是硬的:值方法读出来的策略是确定性的(argmax),而在某些问题上确定性策略根本不够用——不是差一点,是被完全利用。前三集就在说这件事。 后面六集是数学:似然比技巧、模型为什么会消失、REINFORCE 估计量、以及第一个降方差手段。这一讲真正的 aha 是第六集——梯度里不含转移概率,所以整个方法天生无模型,而这不是设计出来的,是推导的副产品。 本讲的字幕有几处会让推导读不通,其中最要命的是把梯度算符 ∇ 一律渲染成「Delta Theta」;另有一处讲座本身的陈述是错的(关于 CMA-ES 的全局最优性),本片会更正。
知识点 2

1 · 为什么要直接参数化策略,而不是从 Q 读出来

2 / 65
Q^(s,a;w) ⟶ π(s)=arg⁡maxaQ^(s,a;w)
策略是读出来的而且一定是确定性的
前七讲的结构都一样:估值函数,再取 argmax。
讲解
前七讲的结构从未变过:学一个值函数,再从它读出策略。L4 之后连读法都固定了——argmax_a Q(s,a)。 这个结构有两个隐含的后果,而它们一直没被点名。 第一,策略不是你直接控制的对象,它是 Q 的副产品。你想给策略加一点领域知识(「这个动作永远不要在这种状态用」),没有自然的地方去加。 第二,argmax 读出来的策略永远是确定性的。这一条看起来无害——L2 不是证过存在确定性的最优策略吗?下面两集会说明那条定理的前提在什么时候不成立。
3 / 65
值方法已经够了策略是 Q 的副产品,本来就该这么来
在表格 MDP 上这是对的。问题在它之外的三类情形。
讲解
这个错误模型在前七讲里一直成立,而且是被定理支持的:L2 证明了无限时域折扣有限 MDP 存在确定性的平稳最优策略,L4 证明了从 Q 贪心不需要模型。 所以「策略是 Q 的副产品」不只是习惯,它有依据。 问题在于那些依据都带着前提,而这一讲要走的三类情形恰好各违反一条。下面先把三个理由摆出来,再用两集把最硬的那条证掉。
4 / 65
① 领域知识更好注入② 连续 / 高维动作③ 能表示随机策略
三个理由。前两个是便利,第三个是必需。
讲解
直接参数化策略的三个理由。 ① 领域知识更好注入。策略是「看到什么做什么」,这往往正是人类知识的形状——「靠近障碍物就减速」。把它写进 π_θ 的结构里,比写进一个值函数里自然得多。 ② 连续与高维动作空间。下一镜专门说这一条。 ③ 能表示随机策略。这是唯一一条不是便利、而是必需的——第二、第三集会给出两类问题,在那里确定性策略不是差一点,是根本不够用。 把三条的性质分清楚很重要:前两条是「用这个更方便」,第三条是「不用这个就做不到」。
5 / 65
arg⁡maxa∈RdQ^(s,a;w)  ?
动作连续时这不是查表每一步都要解一次优化
动作连续时,argmax 本身变成一个优化问题 —— 每决策一次就要解一次。
讲解
L4 第一集说过:从 Q 贪心只要 argmax,一次查表,很便宜。那句话有一个没说破的前提——动作是有限的、可以枚举的。 动作连续时(机器人的关节力矩、车的方向盘角度),argmax 不再是查表,而是一个在连续空间上的优化问题。而且它不是解一次,是每做一个决策就要解一次。 高维离散动作也一样糟:动作是若干个子动作的组合时,枚举量是各维的乘积。 直接参数化策略绕开了这整件事:π_θ(a|s) 直接输出动作(或动作的分布),不需要在动作空间上搜索。第九集的高斯策略就是最简单的例子——网络输出一个均值,动作从高斯里抽。
6 / 65
✓注入知识便利✓连续动作便利(但很重要)✓随机策略必需只有第三条是不可替代的
指名反驳:值方法在表格 MDP 上够用 —— 而这一讲要走出表格 MDP。
讲解
指名回去:「值方法已经够了」在表格的、单智能体的、完全可观测的 MDP 上是对的,而且有定理撑着。这一讲要处理的恰恰是它之外的情形。 三个理由的分量不一样,值得再强调一次: 前两条是便利——原则上你可以硬做(离散化动作空间、把知识编进特征),只是很难受。 第三条是必需——值方法读出的策略是 argmax,它在结构上只能是确定性的,而下两集的两类问题里,任何确定性策略都会失败。这不是效率问题,是能不能做到的问题。 接下来两集分别给出这两类问题,第一类只要三行就能说完。
7 / 65

知识点 1 · 总结

直接参数化策略的三个理由,只有第三条是必需的

核心结论

① 领域知识更好注入 · ② 连续/高维动作(argmax 变成每步一次优化)· ③ 能表示随机策略。

底层机制

值方法的策略是 argmax 读出来的,结构上只能是确定性的 —— 这在下两类问题上是致命的。

常见误解

误解:「值方法够了,策略是 Q 的副产品」。在表格、单智能体、完全可观测的 MDP 上成立,之外不成立。

与你的考试

前两条是便利(原则上可硬做),第三条是必需(做不到就是做不到)。

8 / 65

知识点 1 · 检验

连续动作空间下,值方法(如 Q-learning)的主要困难是什么?

知识点 3

2 · 随机策略是必需的 —— L2 那条定理有三个前提

9 / 65
石剪布
石头剪刀布。最优策略是什么?三行就能算完。
讲解
第一类确定性策略不够用的问题,用石头剪刀布就能说完。 规则不用解释:赢 +1、平 0、输 −1。对手是一个会观察你、会适应的人。 问题是:最优策略是什么? 这个例子的好处是它小到可以把所有情况穷举一遍,而结论干脆得不留余地。
10 / 65
最优策略是确定性的L2 第五集不是证过吗
L2 那条定理完全正确 —— 但它有三个前提,这里违反了第一条。
讲解
这个错误模型的来源是一条被正确证明过的定理,所以它格外顽固。L2 第五集说:无限时域折扣有限 MDP 存在一个确定性的、平稳的最优策略。 那条定理没有被推翻。问题在它的前提,而前提在课上是被一句「无限长的未来在每个时刻看起来都一样」带过的(L2 里已经标注过这是一处跳过的证明)。 完整的前提有三条:单智能体、完全可观测、无限时域折扣的有限 MDP。 石头剪刀布违反第一条——环境里有一个会适应你的对手,它不是一个固定的 MDP。下一集的例子违反第二条。
11 / 65
✓单智能体环境不会适应你✓完全可观测状态是充分统计量✓无限时域折扣且状态动作有限三条都要,缺一不可
L2 那条定理的三个前提。这一讲的两个例子各违反一条。
讲解
把三个前提摆出来,因为它们在后面会被反复用到。 单智能体:环境的动力学是固定的,不会因为你的策略而改变。有对手时这一条直接坏掉——对手会观察你、适应你,你的策略改变了「环境」。 完全可观测:状态是充分统计量(L1 第五集的判据)。部分可观测时坏掉,下一集就是这种情形。 无限时域折扣、状态动作有限:L2 第五集最后已经提过,有限时域下这条定理就不成立,最优策略会随剩余步数改变。 三条缺一不可。而「最优策略可以是确定性的」这个印象太深,以至于很少有人记得它是有条件的。
12 / 65
✕总出石最坏收益 −1✕总出剪最坏收益 −1✕总出布最坏收益 −1✓均匀随机收益 0穷举完了,没有第四种确定性策略
任何确定性策略的最坏收益都是 −1;均匀随机是 0。
讲解
确定性策略只有三个,穷举一遍。 总出石头:对手出布,你 −1。总出剪刀:对手出石头,−1。总出布:对手出剪刀,−1。 三个都是 −1,而且没有第四个。这就是穷举的好处——结论不依赖任何近似。 均匀随机策略 (1/3, 1/3, 1/3):不管对手出什么,你赢、平、输各三分之一,期望收益恰好 0。而且它是这个博弈唯一的纳什均衡——对手也没有办法做得更好。 差距是 1 个单位,在一个收益只在 −1 到 +1 之间的博弈里,这是最大可能的差距。 请注意这不是「随机策略稍微好一点」。确定性策略在这里是可被完全利用的:对手一旦看穿,你每一局都输。
13 / 65
定理没错前提不满足环境会适应你
指名反驳:L2 的定理成立,但有对手时环境不再是固定的 MDP。
讲解
指名回去:L2 那条定理完全正确,错的是把它用在了不满足前提的地方。有一个会适应你的对手时,环境的动力学取决于你的策略,它不是一个固定的 MDP,那条定理管不着。 这是本系列反复出现的一个形状。L5 第九集也是这样:Bellman 算子的压缩性定理没错,但你跑的是 Π∘B 而不是 B。看到一条定理失效时,先检查前提,而不是怀疑证明。 实际的推论:凡是有对手、有其他学习者、或者环境会对你做出反应的场景——多智能体、博弈、市场、对抗训练——你都必须能表示随机策略,而值方法的 argmax 给不了。 下一集给出第二类:连对手都没有,只是你看不全。
14 / 65

知识点 2 · 总结

有对手时,任何确定性策略都会被完全利用

核心结论

石头剪刀布穷举:三个确定性策略的最坏收益都是 −1;均匀随机是 0,且是唯一纳什均衡。差 1 个单位 = 该博弈的最大可能差距。

底层机制

L2 第五集那条定理的三个前提:单智能体 · 完全可观测 · 无限时域折扣有限 MDP。这里违反第一条。

常见误解

误解:「L2 证过最优策略可以是确定性的」。定理没错,是前提不满足 —— 对手会适应你,环境不是固定的 MDP。

与你的考试

推论:多智能体、博弈、市场、对抗训练 —— 只要环境会对你做出反应,就必须能表示随机策略,而 argmax 给不了。

15 / 65

知识点 2 · 检验

石头剪刀布里,为什么 L2「存在确定性最优策略」这条定理不适用?

知识点 4

3 · 状态混叠:确定性策略在看起来相同的状态上必须做同样的事

16 / 65
s1同s2s3同s4s5两格的观测完全一样可是最优动作相反
没有对手,只是你看不全:两个不同的格子,观测到的特征一模一样。
讲解
第二类问题里没有对手,环境完全被动。麻烦只在于你看不全。 讲座用的例子是一个「混叠格子世界」(aliased gridworld):智能体不能直接看到自己在哪一格,只能看到局部特征——比如「左边有墙、右边有墙」。 于是走廊两侧的两个格子,观测到的特征完全相同,而从它们出发的最优动作恰好相反:一个该往左走,一个该往右走。 这直接违反 L2 那条定理的第二个前提:完全可观测。
17 / 65
加特征就能区分把观测做得更细不就行了
能加当然加 —— 但很多时候你能观测到的就这么多。
讲解
最自然的反应是:既然两个状态看起来一样,那就加特征让它们不一样。 能加当然要加,这是对的工程直觉。但它假定了信息存在、只是没被编码进来。很多时候不是这样: 机器人只有这几个传感器;对话系统只有这一段历史;医疗决策只有这些化验值。你能观测到的就这么多,缺的信息在物理上就拿不到。 而且这和 L6 第四集是同一件事:DQN 的「最近四帧」缺的是几十步前的钥匙,那个信息不在输入里,加分辨率也补不出来。 所以必须问:在观测就是这样的前提下,能做到多好?
18 / 65
x(s2)=x(s4) ⟹ π(x(s2))=π(x(s4))
确定性策略被迫做同样的事
确定性策略是观测的函数:观测相同,输出必然相同。
讲解
把约束写清楚,它只有一行。 一个确定性策略是观测的函数:π(x)。如果两个状态的观测相同,x(s₂) = x(s₄),那么策略在它们上的输出必然相同——这不是策略学得不好,是函数的定义。 于是:两个格子的最优动作相反,而你的策略被迫在它们上做同一件事。无论选哪个动作,都有一个格子是错的。 而那个错是系统性的:智能体每次进入那一格,都会做同一个错误动作,于是可能在两格之间来回,或者顶着墙走——讲座的原话是「所有在观测特征上的确定性策略都会卡住」。
19 / 65
✕确定性两格做同一件事 · 卡死✓随机两边都有概率 · 能走出去✓代价有时走错,但不卡死随机性在这里是逃生口
随机策略以一定概率两边都试 —— 可能走错,但不会永远卡住。
讲解
随机策略为什么能救:因为它在那个混叠的观测上两个方向都有正概率。 单看一步,它比最优动作差——有一半概率走错。但它不会卡死:只要给足时间,它总会走出那个格子,然后进入一个观测不同、可以正确决策的区域。 这就是这一集的要点:在部分可观测下,随机性不是「探索用的噪声」,它是策略本身的一部分。它买到的是「不会被一个错误的确定性决策永久困住」。 和上一集对照一下,两者的机制不同但结论相同:上一集随机性是为了不被对手预测,这一集是为了不被自己的观测限制困死。 值方法在这两种情形下都没有出路——argmax 读出来的永远是确定性的。
20 / 65
对手(第二集)看不全(这一集)两条都要随机策略
指名反驳:加特征在信息不存在时无效。随机性是策略的一部分。
讲解
指名回去:加特征只在信息存在但没被编码时有用。当传感器就这么多、历史就这么长时,混叠是物理事实,不是设计缺陷。 两集合起来,第一集那第三条理由就站住了: 有对手(第二集)——随机性让你不可预测,最坏收益从 −1 回到 0。 看不全(这一集)——随机性让你不被一个被迫统一的错误动作困死。 两种情形下,值方法都没有出路,因为 argmax 在结构上只能给确定性策略。这不是「值方法效果差一点」,是它无法表示你需要的那个对象。 第一集说过前两条理由是便利、第三条是必需。到这里第三条已经证完了。接下来六集转向数学:怎么对一个参数化的策略求梯度。
21 / 65

知识点 3 · 总结

状态混叠下,确定性策略被迫在看起来相同的状态上做同样的事

核心结论

确定性策略是观测的函数:x(s₂)=x(s₄) ⟹ π 必然输出相同动作。而两格的最优动作相反 ⟹ 总有一格是错的,且是系统性的。

底层机制

随机策略在混叠观测上两边都有正概率 —— 单步可能更差,但不会永久卡死。

常见误解

误解:「加特征就能区分」。只在信息存在但没被编码时有效;传感器/历史有限时混叠是物理事实。

与你的考试

与第二集合起来:有对手要随机性以不可预测;看不全要随机性以不被困死。两者值方法都无法表示。

22 / 65

知识点 3 · 检验

在状态混叠的格子世界里,确定性策略为什么必然失败?

知识点 5

4 · 无梯度搜索与有限差分 —— 以及讲座说错的那句「保证全局最优」

23 / 65
V(θ)=E[∑trt∣πθ]
能评估,但求不了导
目标已经清楚了:找一组 θ 让 V(θ) 最大。先看不用梯度怎么办。
讲解
目标很清楚:把策略参数化成 π_θ,找一组 θ 让 V(θ)——期望回报——最大。 注意 V(θ) 是可以评估的:给定一组 θ,跑几个回合,把回报平均起来就是一个估计。 但它的梯度不显然。V(θ) 里藏着环境的转移概率,看起来对 θ 求导需要知道环境怎么动。 所以在推出解析梯度之前,先看两类只用评估、不用梯度的做法。它们不是历史包袱——在某些场景下至今仍是最好的选择。
24 / 65
CMA-ES 保证全局最优讲座原话 —— 而这句是错的
它是无导数的随机局部搜索,经验上很强,但不是全局优化器。
讲解
讲座在介绍 CMA-ES 时说它「保证朝全局最优走」。这句话是错的,本片按约定更正。 CMA-ES 是一个无导数的随机搜索方法:维持一个多元高斯分布,每轮采样一批参数、评估、然后用表现好的那些更新分布的均值和协方差。 它在实践中非常强——尤其在维数不高、评估很贵、目标函数不光滑的场景。但对一般的非凸目标,它没有全局收敛保证,它是一个局部搜索。 为什么要较真:因为「保证全局最优」这句话会让你在它卡在局部解时怀疑实现,而不是怀疑问题本身。
25 / 65
只要能评估 V(θ)不需要知道任何结构
无梯度方法的优点很实在:把整个系统当黑箱就行。
讲解
无梯度方法的门槛极低:只要你能对一组 θ 评估出一个分数,就可以用。 它不要求目标可微、不要求你知道系统结构、不要求环境是 MDP,甚至不要求回合可重复——只要能打分。 这在真实硬件上是决定性的优势。讲座举了两个例子,都是在真机上跑通的: 外骨骼(Steve Collins 组):人穿着外骨骼走路,直接优化助力曲线,约一小时内把代谢消耗降低了约 24%。人在回路里,目标函数是真人的耗氧量——没有任何模型可言。 AIBO 步态(Kohl 与 Stone):12 个连续步态参数,在真实机器狗上学,几小时内学出更快的走法。
26 / 65
d=12(AIBO)d=10013101每次梯度要评估几次
有限差分:每个参数扰动一次,一次梯度要 d+1 次评估。
讲解
看什么:看右边那根比左边高出多少:参数从 12 个加到 100 个,每算一次梯度的评估次数从 13 涨到 101。这是线性增长 —— 听起来不吓人,但每一次评估都是一次真实试验。 —— 有限差分策略梯度更直接:想知道 V 对第 i 个参数的导数,就把这个参数加一点点、重新评估一次、看分数变了多少。 代价是:每算一次梯度,要做 d+1 次评估(d 个扰动加一个基准)。AIBO 的 12 个参数就是 13 次;100 个参数就是 101 次。 增长只是线性的,看起来不算糟。真正的问题在于每一次评估的代价:在真机上它是一次完整的物理试验,几十秒到几分钟;而深度策略动辄上百万个参数。 所以这条路的适用边界很清楚:参数少、评估贵、没有结构可用。外骨骼和 AIBO 正好都落在这个区间里。 而如果参数上百万,你需要的是一次评估就能得到整个梯度的办法——那就是接下来五集的内容。
27 / 65
✓无梯度黑箱即可 · 局部搜索✓有限差分每次梯度 d+1 评估✓解析梯度一次采样得整个梯度参数一多就只剩最后一条
指名反驳:CMA-ES 不保证全局最优。三条路各有适用区间。
讲解
指名回去:CMA-ES 是无导数的随机局部搜索,经验表现很好,但对一般非凸目标没有全局最优保证。讲座那句需要更正。 三条路的适用区间: 无梯度搜索——参数少、评估贵、目标不光滑甚至不可微。外骨骼那种人在回路的场景是它的主场。 有限差分——同样不需要结构,但代价随参数数线性增长。 解析梯度——需要能对策略求导,但一次采样就能得到整个梯度,参数上百万也不怕。 注意这不是「新方法取代旧方法」。前两条在评估极贵、参数极少的场景里至今是首选。 接下来五集推解析梯度,而它的第一步是一个看起来不可能的问题:V(θ) 里含着环境的转移概率,怎么对它求导?
28 / 65

知识点 4 · 总结

无梯度与有限差分:门槛低,但参数一多就不行

核心结论

外骨骼:人在回路,约 1 小时降低代谢消耗约 24%;AIBO:12 个连续步态参数,真机几小时学出更快步态。

底层机制

有限差分每算一次梯度要 d+1 次评估(d=12 → 13 次,d=100 → 101 次),而每次评估在真机上是一次完整物理试验。

常见误解

讲座说错:「CMA-ES 保证朝全局最优走」。它是无导数的随机局部搜索,对一般非凸目标无全局保证。

与你的考试

适用区间:参数少 + 评估贵 + 无结构可用 → 无梯度;参数上百万 → 必须解析梯度(一次采样得整个梯度)。

29 / 65

知识点 4 · 检验

有限差分策略梯度在深度策略上为什么不可行?

知识点 6

5 · 似然比技巧:乘除同一个 P,把 ∇P 变成 P·∇log P

30 / 65
V(θ)=∑τP(τ;θ)R(τ) ⟹ ∇θV=∑τ∇θP(τ;θ)R(τ)
R(τ) 与 θ 无关∇P 才是麻烦
把目标写成对轨迹求和:θ 只出现在 P(τ;θ) 里。
讲解
把目标写成对轨迹的求和:V(θ) = Σ_τ P(τ;θ)·R(τ),其中 τ 是一整条轨迹,R(τ) 是它的总回报。 求导时 R(τ) 是常数——轨迹的回报不依赖参数,参数只影响你多大概率走出这条轨迹。所以 ∇V = Σ_τ ∇P(τ;θ)·R(τ)。 麻烦全在 ∇P 上。P(τ;θ) 是整条轨迹的概率,它里面含着环境的转移概率——看起来要对它求导,就得知道环境。 这一集用一个纯代数的小技巧绕过去,而下一集会看到它的后果有多大。
31 / 65
那得知道转移概率P(τ;θ) 里明明写着环境
这个担心很合理 —— 而答案是:一次乘除就把它清掉了。
讲解
这个错误模型完全合理:P(τ;θ) 是轨迹概率,它显然由初始分布、转移概率、策略三者共同决定。对它求导,怎么可能不碰转移概率? 而且如果真是这样,策略梯度就是一个有模型的方法——那它在这门课里的位置会完全不同。 答案是它不需要。而且实现这一点的手段小到有点好笑:乘一个 P 再除一个 P。
32 / 65
∇P=P⋅∇PP=P⋅∇log⁡P
乘除同一个 P纯恒等变形
似然比技巧:∇P = P·∇log P。什么都没假设,只是乘 1。
讲解
技巧本身一行:把 ∇P 写成 P 乘以 ∇P/P,而 ∇P/P 正好是 ∇log P(对数的导数)。 所以 ∇P = P·∇log P。 请注意这一步什么假设都没有——它是恒等式,对任何处处为正的 P 都成立。乘一个 P 再除一个 P,就是乘 1。 它常被叫作似然比技巧(likelihood ratio trick),在统计里也叫 score function 估计量。 为什么这么做有用:因为它把 ∇P(一个我们不会算的东西)换成了 P 乘上 ∇log P——而 P 出现在前面意味着整个式子可以写成一个期望,期望是可以用采样估计的。
33 / 65
∇θV=∑τP(τ;θ)∇θlog⁡P(τ;θ)R(τ)=Eτ[∇θlog⁡P⋅R]
求和变成期望期望可以采样估
代回去:对轨迹的求和变成了一个期望 —— 而期望可以用采样估。
讲解
把技巧代回去:∇V = Σ_τ P(τ;θ)·∇log P(τ;θ)·R(τ)。 前面的 P(τ;θ) 正是「按当前策略走出轨迹 τ 的概率」,所以整个式子就是一个期望: ∇V = E_τ[ ∇log P(τ;θ) · R(τ) ] 这一步的价值在于:轨迹的数量是天文数字(长度 T、每步多个动作,指数级),你永远不可能真的把这个和加出来。但期望不需要加出来——跑几条轨迹,取平均就是它的无偏估计。 这是整套方法能落地的关键:从「对所有轨迹求和」变成「跑几条轨迹」。 不过 ∇log P 里还是含着转移概率。下一集处理它——而结果比「绕过去」更彻底。
34 / 65
没有近似没有假设只是乘了个 1
指名反驳:这一步不是近似 —— 是恒等变形,把求和变成了期望。
讲解
指名回去:到这里为止,转移概率还没有被清掉,但已经发生了一件重要的事——问题的形状变了。 原来是「对指数多条轨迹求和」,现在是「一个期望」。前者不可计算,后者可以用有限个样本无偏估计。 而且这一步没有任何近似:∇P = P∇log P 是恒等式,乘 1 而已。这一点值得强调,因为很多推导的「技巧」是拿精度换可算性,而这个技巧什么都没换。 按约定标一处字幕:本讲的自动字幕把梯度算符 ∇ 一律渲染成「Delta Theta」(例如「Delta Theta of log Pi Theta」)。它永远指 ∇_θ,不是参数增量 Δθ。把两者混起来,整条 REINFORCE 更新式就读不通了。 下一集把 ∇log P 展开,转移概率会在那里消失。
35 / 65

知识点 5 · 总结

似然比技巧:∇P = P·∇log P,把求和变成期望

核心结论

V(θ)=Σ_τ P(τ;θ)R(τ),θ 只出现在 P 里(R(τ) 与 θ 无关)。乘除同一个 P 后:∇V = E_τ[∇log P(τ;θ)·R(τ)]。

底层机制

价值在于形状变了:从「对指数多条轨迹求和」(不可计算)变成「一个期望」(跑几条轨迹取平均即无偏)。

常见误解

误解:「对 P(τ;θ) 求导就得知道转移概率」。到这一步确实还含着它 —— 下一集会看到它自己消失。

与你的考试

这一步没有任何近似,是恒等式(乘 1)。字幕:∇ 被一律渲染成「Delta Theta」,它不是参数增量 Δθ。

36 / 65

知识点 5 · 检验

似然比技巧 ∇P = P·∇log P 的作用是什么?

知识点 7

6 · 模型消失了 —— 这一讲真正的 aha

37 / 65
P(τ;θ)=μ(s0)∏tP(st+1∣st,at)πθ(at∣st)
三样东西相乘取 log 就变成相加
轨迹概率是三项的乘积:初始分布 × 转移 × 策略。
讲解
现在把 ∇log P(τ;θ) 展开。 轨迹的概率是三样东西的乘积:初始状态的分布 μ(s₀)、每一步的转移概率 P(s_{t+1}|s_t,a_t)、以及每一步的策略 π_θ(a_t|s_t)。 取对数之后,乘积变成求和——这正是我们要用对数的原因之一。 下一镜写出这个和,然后逐项对 θ 求导。这一步是整讲的转折点。
38 / 65
梯度里当然有转移概率它就写在 P(τ;θ) 里面
它确实写在里面 —— 但它不含 θ。
讲解
这个错误模型到上一集为止都还站得住:转移概率确实出现在 P(τ;θ) 里,而我们正在对 P 求导。 漏掉的是一个几乎太简单的观察:转移概率不依赖 θ。 环境怎么动,与你的策略参数无关。你换一组 θ,π_θ 变了,但 P(s′|s,a) 一个字节都不会变——那是物理,不是你的参数。 而对一个不含 θ 的项求 θ 的导数,结果是零。 这句话听起来像废话。下一镜会看到它的后果有多大。
39 / 65
log⁡P=log⁡μ(s0)⏟no θ+∑tlog⁡P(st+1|st,at)⏟no θ+∑tlog⁡πθ(at|st)
前两项与 θ 无关
取 log 之后三项相加,而前两项都不含 θ。
讲解
写出来就是这样:log P(τ;θ) 等于三部分之和。 第一项 log μ(s₀):初始状态分布。这是环境给的,不含 θ。 第二项 Σ_t log P(s_{t+1}|s_t,a_t):每一步的转移。这是物理,不含 θ。 第三项 Σ_t log π_θ(a_t|s_t):策略。只有这一项含 θ。 乘积变成求和这件事在这里是决定性的:如果还是乘积,θ 就和另外两项纠缠在一起,求导会把它们全拽进来。取了对数之后它们变成独立的加项,求导可以逐项进行。 所以:∇_θ log P = 0 + 0 + Σ_t ∇_θ log π_θ(a_t|s_t)。
40 / 65
∇θV=E[(∑t∇θlog⁡πθ(at|st))R(τ)]
模型不见了只剩策略的导数
转移概率整个消失了。梯度里只剩下你自己那个可导的 π_θ。
讲解
代回去,得到这一讲的核心结果: ∇_θ V = E[ (Σ_t ∇_θ log π_θ(a_t|s_t)) · R(τ) ] 转移概率整个不见了。初始分布也不见了。梯度里只剩两样东西:你自己定义的、可以求导的策略 π_θ,以及你实际观测到的回报 R(τ)。 请把这件事的分量说清楚。它意味着:你不需要知道环境怎么运作,也能对「环境给你的期望回报」求梯度。 而且这不是一个近似,也不是「假设模型未知」——模型是在推导过程中自己被求导消掉的。你没有丢掉任何信息,它本来就对梯度没有贡献。 ∇_θ log π_θ(a|s) 这个量有自己的名字:score function。整套方法只需要它。
41 / 65
✕初始分布不含 θ · 求导归零✕转移概率不含 θ · 求导归零✓策略只剩它不是假设掉的,是消掉的
指名反驳:模型不是被假设掉的,是被求导消掉的。
讲解
指名回去:梯度里没有转移概率,不是因为我们假设它未知,而是因为它不含 θ,求导之后自然归零。 这个区别很重要。L3 到 L7 的无模型方法,是主动选择「不建模型」,并为此付出代价(采样误差、方差、分布偏移)。而这里没有付任何代价——模型对梯度本来就没有贡献。 把 L5 那个判别法反过来用一次:看到一个方法不需要模型时,问它是「绕过去了」还是「本来就不需要」。策略梯度属于后者,这是它结构上最干净的一点。 同时也要看清它没有解决什么:这个估计量虽然无偏,但 R(τ) 是整条轨迹的回报,方差极大。后面两集(以及下一讲)全部在处理方差。 最后标一处记号:讲座把时域 T 和时间下标 t 都写成小写 t。凡是「sum over t equals 0 to t minus 1」都指 Σ_{t=0}^{T−1};而且她前面还用过 H 表示时域,两个符号从未对齐。
42 / 65

知识点 6 · 总结

模型不是被假设掉的,是被求导消掉的

核心结论

log P(τ;θ) = log μ(s₀) + Σ log P(s′|s,a) + Σ log π_θ(a|s),前两项不含 θ ⟹ 求导归零。剩下:∇V = E[(Σ_t ∇log π_θ(a_t|s_t))·R(τ)]。

底层机制

取对数把乘积变成求和,三项才得以逐项求导;若仍是乘积,θ 会和另外两项纠缠。

常见误解

误解:「转移概率写在 P(τ;θ) 里,所以梯度里也有」。它在里面,但不含 θ。

与你的考试

与 L3–L7 的无模型不同:那些是主动放弃模型并付代价,这里是模型对梯度本来就没有贡献。∇log π_θ(a|s) 叫 score function。

43 / 65

知识点 6 · 检验

策略梯度的最终表达式里为什么没有转移概率?

知识点 8

7 · REINFORCE:一个只需要 score function 的估计量

44 / 65
∇θV=Eτ[(∑t∇θlog⁡πθ(at|st))R(τ)]
这还是个期望
式子有了。但期望不能直接算 —— 轨迹有指数多条。
讲解
上一集得到了梯度的表达式,而且它已经不含模型。但它仍然是一个期望,而期望是对所有轨迹取的。 轨迹有多少条?长度 T、每步若干个动作,数量是指数级的。你不可能把它加出来。 好消息是上一集那一步已经解决了这个问题:期望不需要加出来,采样就行。 这一集把它写成一个真正能跑的算法。
45 / 65
那就还是算不了期望和求和不都一样吗
不一样。求和必须穷举,期望可以抽样 —— 这正是上一集那一步的全部价值。
讲解
这个错误模型把「期望」和「求和」当成同一件事——毕竟期望的定义就是加权求和。 但在可计算性上它们完全不同。 求和要求你遍历所有项。指数多条轨迹,做不到。 期望只要求你能从那个分布里抽样,然后取平均。而「从 P(τ;θ) 里抽样」是什么?就是用当前策略跑一个回合。 这就是上一集那个似然比技巧的全部价值:它没有让式子变简单,它让式子变得可以抽样。
46 / 65
g^=1m∑i=1m(∑t∇θlog⁡πθ(at(i)|st(i)))R(τ(i))
跑 m 条轨迹,取平均
REINFORCE:跑 m 条轨迹,每条算一次,平均 —— 就是梯度的无偏估计。
讲解
算法写出来只有三步: 一,用当前策略 π_θ 跑 m 条完整轨迹。 二,对每条轨迹,把沿途每一步的 score function ∇_θ log π_θ(a_t|s_t) 加起来,乘上这条轨迹的总回报 R(τ)。 三,对 m 条取平均,得到 ĝ;然后 θ ← θ + α·ĝ。 这就是 REINFORCE,也叫蒙特卡洛策略梯度。 它是无偏的:E[ĝ] 正好等于 ∇V。这一点直接来自上一集——那里的每一步都是恒等变形,没有任何近似。 注意它需要什么:能对 π_θ 求导(你自己定义的,当然能),以及能跑完整回合。不需要模型,不需要值函数,不需要知道奖励函数的形式。
47 / 65
score 指方向回报定大小和正负好 → 加大这些动作的概率
读法:score 说往哪推,回报说推多少、往哪边推。
讲解
这条式子有一个很直观的读法,值得单独说,因为它是后面所有策略梯度方法的共同骨架。 ∇_θ log π_θ(a|s) 指的方向是:把「在状态 s 选动作 a」这件事的概率加大。它只说方向,不带判断。 R(τ) 是一个标量,它决定这个方向被乘上多大的系数、以及正负号。回报高,就沿着那个方向推(更可能重复这些动作);回报为负,就反着推。 合起来:这条轨迹好,就让它里面的每一个动作都更可能发生;不好,就让它们更不可能。 注意这里有一个粗糙之处:一整条轨迹共用同一个 R(τ)。哪怕轨迹里有几个动作明显是坏的,只要总回报高,它们也一样被加强。下一集处理这件事的第一个版本。
48 / 65
✓无偏E[ĝ] = ∇V✓无模型只要能跑回合✕方差大到常常没法直接用无偏 ≠ 可用
指名反驳:期望可以抽样。但无偏不等于可用 —— 方差是下一个问题。
讲解
指名回去:期望和求和在可计算性上完全不同——求和要穷举,期望只要能抽样,而从 P(τ;θ) 抽样就是用当前策略跑一个回合。 但现在必须把 REINFORCE 的弱点说清楚,因为接下来两集和下一整讲都在处理它:它的方差极大。 方差来自两处叠加。R(τ) 本身是整条轨迹的回报,它把全程的随机性都吞进了一个数(这正是 L3 第三集说过的蒙特卡洛的老问题)。而它又乘在一整串 score 的和上,把波动放大。 这就是 L3 第四集那条判据在这里的第二次应用:判据是总 MSE,不是有没有偏差。REINFORCE 无偏却常常不可用;而后面那些方法会主动引入一点偏差去换方差。 下一集给第一个降方差手段,而它连偏差都不引入。
49 / 65

知识点 7 · 总结

REINFORCE:跑 m 条轨迹取平均,就是梯度的无偏估计

核心结论

ĝ = (1/m)Σ_i (Σ_t ∇log π_θ(a_t|s_t))·R(τ⁽ⁱ⁾),然后 θ ← θ + αĝ。E[ĝ] = ∇V,因为上一集每步都是恒等变形。

底层机制

求和要穷举,期望只要能抽样 —— 而从 P(τ;θ) 抽样就是「用当前策略跑一个回合」。这才是似然比技巧的价值。

常见误解

误解:「期望也是求和,一样算不了」。可计算性上完全不同。

与你的考试

读法:score 指方向(加大这个动作的概率),回报定大小与正负。弱点:方差极大,无偏不等于可用。

50 / 65

知识点 7 · 检验

REINFORCE 的梯度估计 ĝ 有什么性质?

知识点 9

8 · 因果性降方差:每个 score 只该乘它之后的回报

51 / 65
(∑t∇log⁡πθ(at|st))(∑t′rt′)
每个 score 乘了全部奖励
展开看:第 t 步的 score,乘上了包括 t 之前在内的所有奖励。
讲解
把 REINFORCE 里那个乘积展开。左边是所有时刻 score 的和,右边是所有时刻奖励的和。乘开之后,每一个 score 都和每一个奖励配了一次对。 其中包括这样的配对:第 10 步的 score,乘上第 3 步拿到的奖励。 第 3 步的奖励在第 10 步的动作发生之前就已经拿到了。它不可能被第 10 步的动作影响。 那么这一项在梯度里做了什么?这一集的全部内容就是回答它。
52 / 65
无偏就行,别的无所谓反正 E[ĝ] 等于真梯度
它确实不影响期望 —— 但它把方差白白加大了。
讲解
这个错误模型有一条正确的依据:上一集已经证了 REINFORCE 无偏,而那些「过去的奖励」项也包含在里面——它们没有破坏无偏性。 所以「既然结果对,何必管中间项」看起来很合理。 但 L3 第四集已经给过判据:判据是总 MSE,不是有没有偏差。一个对期望没有贡献、却对方差有贡献的项,是纯粹的噪声——它只有坏处。 下面先证明它对期望没有贡献,再说它为什么有方差。
53 / 65
Ea∼πθ[∇θlog⁡πθ(a|s)]=∇θ∑aπθ(a|s)=∇θ1=0
score 的期望恒为 0
关键引理:score function 的期望恒等于 0。三步就能证。
讲解
关键引理一行就能证,而且它后面还会被用到(下一讲的基线也靠它)。 E_{a~π}[∇log π(a|s)] = Σ_a π(a|s)·∇log π(a|s)。而 π·∇log π 正好等于 ∇π(似然比技巧反着用一次)。于是它等于 Σ_a ∇π(a|s) = ∇Σ_a π(a|s) = ∇1 = 0。 所以 score function 的期望恒为零,与状态、与参数都无关。 推论立刻就来:如果某个量 c 与 a_t 无关,那么 E[∇log π(a_t|s_t)·c] = c·E[∇log π] = 0。 而「第 3 步的奖励」对「第 10 步的动作」来说正是这样一个量——它在那之前就定下来了。
54 / 65
∇θV=E[∑t∇θlog⁡πθ(at|st)Gt],Gt=∑t′≥trt′
只乘它之后的回报
于是可以把过去的奖励全部删掉:每个 score 只乘 G_t。
讲解
既然那些项对期望贡献为零,就可以整项删掉,而梯度一点不变。 重排之后的形式是:每一个 score 只乘上它之后的奖励之和,也就是 reward-to-go:G_t = Σ_{t′≥t} r_{t′}。 这个修改有一个很自然的名字——因果性(causality):一个动作只应该为它之后发生的事负责。 两件事要同时记住: 期望完全没变——删掉的每一项期望都是 0,所以新估计量仍然无偏。 方差变小了——那些项虽然期望为 0,但每一次采样时它们都是非零的随机数,加在一起就是噪声。删掉噪声,方差自然降。
55 / 65
✓期望完全没变✓方差变小了✓代价没有这种修改很罕见
指名反驳:无偏不是终点。这是一次不付任何代价的降方差。
讲解
指名回去:「无偏就行」不成立。那些跨越因果的项对期望毫无贡献,却实实在在地贡献方差——它们是纯噪声。 这次修改的性质值得单独强调,因为它在整门课里相当罕见:它不付任何代价。 对照一下前面几次取舍。L3 的 TD 用偏差换方差;L4 的 Double Q 用「每张表数据减半」换偏差;L6 的目标网络用信息延迟换稳定。而这一次,期望不变、方差下降、计算量还略微减少(少乘几项)。 之所以能这么划算,是因为我们删掉的东西本来就不该在那里——它是推导时把两个求和直接乘开造成的冗余,不是任何取舍的结果。 这给出一条可迁移的经验:看到一个估计量时,先找找里面有没有期望为零的项。它们不改变正确性,只消耗你的样本。下一讲的基线是同一个思路的第二次应用。
56 / 65

知识点 8 · 总结

因果性:一个动作只该为它之后发生的事负责

核心结论

引理:E[∇log π_θ(a|s)] = ∇Σ_a π = ∇1 = 0。于是任何与 a_t 无关的量乘上 score,期望都是 0 —— 包括 t 之前的奖励。

底层机制

把它们删掉后:∇V = E[Σ_t ∇log π_θ(a_t|s_t)·G_t],G_t 是 reward-to-go。期望不变,方差下降。

常见误解

误解:「无偏就行,中间项无所谓」。那些项对期望零贡献、对方差有贡献 —— 是纯噪声。

与你的考试

这次降方差不付任何代价(对比:TD 用偏差换方差、Double Q 用数据减半、目标网络用延迟)。经验:先找估计量里期望为零的项。

57 / 65

知识点 8 · 检验

为什么可以把「第 t 步之前的奖励」从策略梯度里删掉?

知识点 10

9 · 高斯策略:连续动作第一次变得自然

58 / 65
动作是实数π_θ(a|s) 该长什么样
整套推导只要求 π_θ 可导。那连续动作怎么写?
讲解
回到第一集那个理由:连续动作空间。 前面六集的推导对 π_θ 只有一个要求——可以对 θ 求导。它没有要求动作是离散的,也没有要求可以枚举。 所以问题只剩:动作是实数(比如关节力矩、方向盘角度)时,π_θ(a|s) 该写成什么形式? 答案简单到几乎不像是答案,而它正好把第一集那个「argmax 变成优化问题」的麻烦整个消掉。
59 / 65
把动作离散化切成一百格,就变回熟悉的情形了
能做,但代价是维数灾难 —— 而且你根本不需要这么做。
讲解
最省事的做法是把连续动作切成格子,变回离散情形,前面所有方法都能用。 它确实可行,在一维动作上甚至挺常见。但代价是 L6 第一集那堵墙:动作有 k 维时,格子数是各维的乘积。七个关节各切十格就是一千万个动作。 更重要的是——你不需要这么做。策略梯度的推导从来没要求动作离散。离散化是为了迁就 argmax,而策略梯度里根本没有 argmax。 下一镜给出连续动作最常用的参数化。
60 / 65
πθ(a∣s)=N(μ(s), σ2),μ(s)=ϕ(s)⊤θ
均值由参数决定σ 控制随机性
高斯策略:网络输出一个均值,动作从以它为中心的高斯里抽。
讲解
最常用的做法是高斯策略:策略输出一个均值 μ(s),实际动作从以 μ(s) 为中心、标准差 σ 的正态分布里抽。 最简单的形式里 μ(s) = φ(s)ᵀθ 是特征的线性函数;深度版本里它就是网络的输出。σ 可以固定,也可以一并学出来。 三件事一次到位: 动作天然连续——抽出来就是实数,不用离散化。 天然随机——第二、三集要的那个随机性,在这里是参数化自带的,不是外加的噪声。 可导——高斯的对数密度对 θ 可导,这是唯一的要求。 而 σ 还顺带扮演了探索强度的角色:σ 大探索多,σ 小接近确定性。
61 / 65
∇θlog⁡πθ(a∣s)=(a−μ(s))ϕ(s)σ2
实际动作减去均值除以 σ² 放大
高斯策略的 score:(实际动作 − 均值) × 特征 ÷ σ²。
讲解
把高斯的对数密度对 θ 求导,score function 就是屏幕上这一行:(a − μ(s))·φ(s)/σ²。 读法非常直观,而且它说明了策略梯度到底在干什么: a − μ(s) 是「这次实际抽到的动作,比均值大还是小」。如果这次抽得偏大而结果不错,梯度就把均值往大的方向推;抽得偏小而结果好,就往小的方向推。 φ(s) 决定推到哪些参数上——和 L5 第二集那个「梯度塌成特征」是同一件事。 1/σ² 是放大系数:σ 小意味着这次的偏离很罕见,所以它携带的信息更强,推得更狠。 按约定标两处记号。字幕把这个表达式念成「a minus mu of s times our parameterization of the state features divided by sigma squared」,把动作变量漏掉了。另外 μ 在这一讲里被重载了:前面推导里 μ(s₀) 是初始状态分布,这里 μ(s) 是高斯的均值——同一个字母,相隔约三十五分钟,完全不同的对象。
62 / 65
✓连续动作抽样即可 · 无需离散化✓随机策略参数化自带✓可导唯一的要求三个理由在这里合流
指名反驳:不必离散化。策略梯度里没有 argmax,所以没有要迁就的东西。
讲解
指名回去:离散化是为了迁就 argmax,而策略梯度里根本没有 argmax——所以没有要迁就的东西。 到这里,第一集那三个理由全部落地了: 连续/高维动作——高斯策略直接输出动作,argmax 那个优化问题消失了。 随机策略——随机性是参数化自带的,第二、三集那两类问题都有了出路。 注入领域知识——你可以直接设计 π_θ 的结构(比如让 μ(s) 带一个已知的控制律做基线)。 而整套推导对 π_θ 的要求自始至终只有一条:可导。Softmax(离散)、高斯(连续)、神经网络(两者皆可)都满足它。 下一讲继续处理方差。这一讲给了一次免费的降方差(因果性),而 REINFORCE 的方差仍然大——基线、优势函数、actor-critic 都是为它准备的,而它们大多不再免费。
63 / 65

知识点 9 · 总结

高斯策略:连续动作第一次变得自然

核心结论

π_θ(a|s)=N(μ(s), σ²),μ(s)=φ(s)ᵀθ。score = (a − μ(s))·φ(s)/σ²。

底层机制

读法:a−μ(s) 说这次抽得偏大还是偏小(好就往那边推);φ(s) 说推到哪些参数;1/σ² 是放大系数(σ 小则偏离罕见、信息更强)。

常见误解

误解:「连续动作要先离散化」。离散化是为了迁就 argmax,而策略梯度里没有 argmax。

与你的考试

记号:μ 被重载 —— 前面是初始状态分布 μ(s₀),这里是高斯均值 μ(s)。字幕还把 score 里的动作变量漏掉了。

64 / 65

知识点 9 · 检验

高斯策略 π_θ(a|s)=N(φ(s)ᵀθ, σ²) 的 score function 是什么?

知识点 11

完

65 / 65
讲解
回头看这九集,承重的是三件事。 第一,随机策略不是可选项。L2 证过「存在确定性的最优策略」,但那条定理有三个前提:单智能体、完全可观测、无限时域折扣 MDP。石头剪刀布违反第一条——任何确定性策略在对手最优应对下收益都是 −1,而均匀随机是 0;状态混叠违反第二条。值方法读出的策略永远是确定性的,所以在这两类问题上它从结构上就不够用。 第二,模型是在推导中自己消失的。把 log P(τ;θ) 拆成初始分布、转移、策略三项,前两项不含 θ,求导直接归零。于是梯度里只剩 ∇_θ log π_θ(a|s)——你不需要知道环境怎么动,也能对它的期望回报求导。这是似然比技巧最漂亮的后果。 第三,无偏不等于可用。REINFORCE 的估计量是无偏的,但方差大到常常没法直接用。第八集给了第一个修法——因果性:t 时刻之前的奖励与 t 时刻的动作无关,把它们乘进去只是噪声。这个修法不改变期望,只砍方差。 下一讲继续砍方差:基线、优势函数、actor-critic。那里会看到「往哪个方向走」这件事比「走多远」更难定,而这正是策略梯度这一系方法的主线。