CS234 L7 · 模仿学习 · 全片速览

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

1 · 开场2 · 1 · Double DQN 与3 · 2 · dueling 的 (V4 · 3 · 探索在最坏情况下很贵,所5 · 4 · 从示范学的三条路:学 π6 · 5 · 行为克隆就是监督学习 —7 · 6 · εT 变成 εT²:一次8 · 7 · DAgger:要的不是更9 · 8 · 逆强化学习的特征匹配:μ10 · 9 · 奖励不可辨识:R ≡ 011 · 完
知识点 1

开场

1 / 65
讲解
这一讲分成两半。 前二十分钟把上一讲的深度值方法收尾:Double DQN 和目标网络到底差在哪、优先回放的指数 α、以及 dueling 的 (V, A) 分解为什么不唯一。最后一条是真正的数学内容,而且讲座里把它和另一个不相干的不变性混在了一起,本片会拆开。 后半转向一个新问题。前六讲都假定奖励函数是给定的,而在真实任务上它常常是最难写的那部分——「开车开得好」该给多少分?于是这一讲问:除了奖励,还有什么监督信号可用?答案是示范。 后半的核心是一个可以算出来的坏消息:行为克隆就是监督学习,而监督学习的误差界在 MDP 里不成立。每步 1% 的错误率,在 T=100 的任务上代价不是 1 而是 50.5——放大 50 倍,而且放大倍数随时域线性增长。 这一讲的字幕坏损比前几讲更密,其中有一处是数学上错的(L1 范数那句),另有两处范数配对不一致。本片会逐处标出并给出正确的版本。
知识点 2

1 · Double DQN 与目标网络:解耦,但不减速

2 / 65
目标网络:两份权重Double DQN:也两份那它们差在哪
两个机制都用了两份权重,而且都和 max 有关。很容易混成一个。
讲解
L6 讲了两个都涉及「两份权重」的机制:固定 Q 目标(目标网络)和 Double DQN。它们都和目标里那个 max 有关,所以特别容易被记成同一件事。 这一集把它们分开,因为它们解决的是两个不同的病,而且付的代价也不同。 先标一处字幕:DQN 的目标在本讲被转录成「r_t + gamma max over a Q of sta, st plus one」,后面还跟着「minus the current s」。它应当读作 r_t + γ·max_a Q(s_{t+1},a;w⁻) − Q(s_t,a_t;w)。另外全篇的「queuing network」都是 Q-network。
3 / 65
Double DQN 就是目标网络都是两份权重,都在处理那个 max
两者都解耦了「选动作」与「评动作」—— 但代价完全不同。
讲解
这个错误模型有依据:两者确实都造成了「选动作的权重」和「评动作的权重」不是同一份,也就是 L4 第九集说的那个解耦。 但它们为这个解耦付的代价完全不同,而代价才是选型时真正要看的东西。 关键的差别在一个字上:目标网络的那份权重是被冻结的,而 Double DQN 的两份权重地位对称、可以每步互换。
4 / 65
✓目标网络w⁻ 冻结 C 步✓Double DQN两份对称 · 可每步互换差别在「冻不冻」
目标网络的第二份是过时的;Double DQN 的第二份是同样新的。
讲解
把两者的结构摊开。 目标网络:主权重 w 每步更新,另一份 w⁻ 被冻结,每 C 步(讲座里提到过几十个回合的量级)才同步一次。它的第二份权重是过时的。 Double DQN:两份权重地位对称,每一步随机挑一份来选动作、另一份来报值,然后只更新被选中的那份。两份都在持续更新,都是新的。 这个结构差别直接决定了信息传播的速度——下一镜说清楚。
5 / 65
目标网络:等 C 步Double:立刻可用解耦的代价不同
目标网络用信息延迟换解耦;Double DQN 不付这个代价。
讲解
目标网络的代价是信息延迟:你刚学到的东西,要等到下次同步才会进入目标,最长要等 C 步。C 越大越稳,但学得越慢——L6 第七集说过这是一个真实的取舍。 Double DQN 没有这个代价:两份权重都在持续更新,任何一步学到的东西立刻可以被另一份用上。它仅仅是换了一下「谁选、谁评」的角色。 所以准确的对照是: 目标网络治的是「目标非平稳」这个病(L6 第七集),代价是延迟。 Double DQN 治的是「最大化偏差」这个病(L4 第八集),代价几乎为零——它只要求两份权重,而 DQN 本来就有。 两件事可以、而且通常同时使用。
6 / 65
✓目标网络治目标非平稳✓Double DQN治最大化偏差✓同时用两个病不一样别记成同一件事
指名反驳:一个治目标漂移,一个治偏差。病不同,代价也不同。
讲解
指名回去:两者都用两份权重、都造成解耦,但它们治的是两个不同的病。 目标网络——病是目标非平稳(L6 第七集),手段是冻结,代价是信息延迟 C 步。 Double DQN——病是最大化偏差(L4 第八集),手段是对称的两份权重每步互换角色,代价接近于零。 把它们记成一件事的坏处很具体:你会以为「已经有目标网络了,所以偏差问题也解决了」。不是——目标网络的那个 max 仍然在同一份权重上取,最大化偏差原封不动。 这也是 L6 第九集那条判别法的一次应用:看到一个机制时,先问它治的是哪个已命名的病。
7 / 65

知识点 1 · 总结

目标网络与 Double DQN 治的是两个不同的病

核心结论

目标网络:第二份权重 w⁻ 冻结 C 步 ⟹ 代价是信息延迟;Double DQN:两份对称、可每步互换 ⟹ 几乎零代价。

底层机制

两者都造成「选动作」与「评动作」解耦,但目标网络的第二份是过时的,Double 的第二份是同样新的。

常见误解

误解:「有目标网络了,偏差问题也就解决了」。目标网络的 max 仍在同一份权重上取,最大化偏差原封不动。

与你的考试

字幕:DQN 目标应读作 r_t+γ·max_a Q(s_{t+1},a;w⁻) − Q(s_t,a_t;w);全篇「queuing network」是 Q-network。

8 / 65

知识点 1 · 检验

Double DQN 与固定 Q 目标(目标网络)最主要的结构差别是什么?

知识点 3

2 · dueling 的 (V, A) 分解不唯一 —— 必须定规范

9 / 65
Q(s,a)=V(s)+A(s,a)
两条流,合成一个 Q网络只被 Q 监督
dueling 把头拆成 V 与 A 两路。但训练信号只作用在合起来的 Q 上。
讲解
dueling 网络把输出头拆成两路:一路估 V(s),一路估优势 A(s,a),相加得到 Q。 动机是 L6 第九集说过的:很多状态下选哪个动作都差不多,但 V(s) 差别很大;把共同的那部分抽进 V,所有动作可以共享它的学习。 但这里有一个立刻要面对的问题:训练信号只作用在合起来的 Q 上。没有任何数据直接告诉网络「这个状态的 V 应该是多少」。 那网络怎么知道该把多少算进 V、多少算进 A?
10 / 65
网络自己会学出来反正 V 和 A 各有各的含义
它学不出来 —— 因为有无穷多组 (V, A) 给出同一个 Q。
讲解
这个错误模型来自深度学习里一个常见的乐观:只要结构设计对了,网络会自己找到有意义的分解。 在这里它不成立,而且原因是数学上的,不是训练不够:给 V 加一个常数 c、同时给 A 减去 c,Q 完全不变。于是有无穷多组 (V, A) 对应同一个 Q,而训练信号只看得见 Q。 这叫不可辨识(unidentifiable)。网络不是学不好,是没有唯一解可学——它会随便落在那条直线上的某一点,而那一点的 V 不代表状态价值,A 也不代表优势。 于是 dueling 的全部动机就落空了:你拆成两路本来是为了让 V 被共享,可如果 V 里装的是任意一个偏移,共享的就是噪声。
11 / 65
(V+c)+(A−c)=V+A=Q∀c
整条直线都给同一个 Q
不可辨识:加一个常数再减掉,Q 一个字节都不变。
讲解
把它写出来就一行:(V + c) + (A − c) = V + A = Q,对任意常数 c 都成立。 所以 (V, A) 的解不是一个点,是一整条直线。训练只约束了它们的和,没有约束它们各自。 这里必须把讲座里混在一起的两件事拆开。她在说完这个不变性之后,紧接着说「你可以把奖励平移一个常数,策略不变、值函数会变」。那是另一回事: 奖励平移说的是环境层面——R + c 不改变最优策略,但改变 V。 (V, A) 不可辨识说的是网络参数化层面——同一个 Q 有无穷多组 (V, A)。 两者都是「加常数」,但一个关于 MDP,一个关于表示,不能互相推出。
12 / 65
Q(s,a)=V(s)+A(s,a)−maxa′A(s,a′)
强制最优动作的 A = 0直线上钉死一个点
解法是定规范:强制 A(s, a*) = 0,于是 V(s) 就等于 max_a Q(s,a)。
讲解
解法是人为加一个约束,把那条直线上的点钉死一个。这在物理里叫定规范(gauge fixing)。 标准做法是要求贪心动作的优势为零:A(s, a*) = 0。实现成一行就是 Q = V + A − max_{a′} A(s,a′)。 代进去就能看出它恢复了两者的含义:此时 V(s) = max_a Q(s,a),也就是状态的最优值;而 A(s,a) = Q(s,a) − max_a Q,是这个动作相对最优动作差多少。两者都变回了有意义的量。 论文里还给了一个启发式替代:把 max 换成均值,即减去 A 在动作上的平均。它牺牲了上面那个干净的解释(V 不再恰好是 max Q),但实践中更稳定,因为均值比 max 对噪声不敏感。 按约定标一处记号:讲座在陈述这条约束时说「force the advantage for state and action to be zero if A is the action taken」——这里的 A 指的是动作,而两句话之前的 A 是优势函数。同一个字母,两个含义。
13 / 65
✕不加约束无穷多组 (V,A)✓减 max AV = max Q,含义恢复✓减均值 A启发式 · 更稳这不是训练问题
指名反驳:不是网络学不好,是没有唯一解可学 —— 必须人为定规范。
讲解
指名回去:网络不可能自己学出有意义的 (V, A),因为训练信号只约束它们的和,而同一个和有无穷多种拆法。这是不可辨识,不是欠训练。 解法必须是人为的:减去 max A(严格,使 V = max Q)或减去均值 A(启发式,更稳)。 这条经验可以迁移。每当你把一个被监督的量拆成几个不被单独监督的部分时,先问一句:这个分解唯一吗?如果不唯一,你就必须自己补一个约束,否则拆分带来的好处会被任意偏移吃掉。这在表示学习、多头网络、以及后面几讲的 actor-critic 里会反复出现。 最后重复一次那个必须拆开的混淆:奖励平移不变(R+c 不改最优策略)与 (V,A) 不可辨识是两件独立的事,讲座把它们说在了一起。
14 / 65

知识点 2 · 总结

(V, A) 分解不唯一 —— 必须人为定规范

核心结论

(V+c)+(A−c)=Q 对任意 c 成立 ⟹ 解是一整条直线。训练只约束和,不约束各自。

底层机制

定规范:Q = V + A − max_{a′}A 强制 A(s,a*)=0,于是 V(s)=max_a Q(s,a),含义恢复;减均值是更稳的启发式。

常见误解

误解:「网络自己会学出有意义的 V 和 A」。这是不可辨识,不是欠训练 —— 没有唯一解可学。

与你的考试

讲座把两件事混在一起:奖励平移不变(R+c 不改最优策略,属 MDP 层面)与 (V,A) 不可辨识(属表示层面)。

15 / 65

知识点 2 · 检验

dueling 网络为什么必须人为加上「减去 max A」或「减去均值 A」?

知识点 4

3 · 探索在最坏情况下很贵,所以去找别的监督信号

16 / 65
✓Double DQN修偏差✓优先回放修效率✓dueling修数据利用✕Montezuma仍然不会玩三个改动都没碰探索
Rainbow 把这些叠起来收益近似可加 —— 而 Montezuma 依然没被解决。
讲解
L6 最后那三个改动——Double DQN、优先回放、dueling——各修一个已命名的病,而 Rainbow 的实验说明它们的收益大体是可加的:叠起来确实更好。 但有一个游戏一直不动:Montezuma's Revenge。讲座点名说这些方法「没有一个真正在处理探索」。 这不是巧合。三个改动分别针对偏差、样本效率、数据利用——没有一个改变智能体去哪里收集数据。而 Montezuma 的困难恰恰在于:随机乱走几乎永远拿不到第一个奖励。 于是这一讲的后半段从一个新问题开始:既然探索这么贵,有没有别的监督信号?
17 / 65
探索只是慢一点ε 开大些、多跑几轮总能找到
这在小的表格问题上成立。而最坏情况下有下界,不是慢,是贵。
讲解
这个错误模型来自前几讲的经验:在火星车那样的小问题上,ε-greedy 加上足够多的回合确实能走遍所有 (s,a)。L4 第五集甚至证明了 GLIE 下这件事一定会发生。 问题是「一定会发生」和「多久发生」是两回事。 表格 MDP 的样本复杂度下界说明:在最坏情况下,要保证学到近似最优的策略,所需的样本数随状态数与动作数增长,而且没有任何算法能绕过这个下界。这不是某个算法笨,是问题本身的代价。 而 Montezuma 这类任务更糟:奖励极其稀疏,随机策略拿到第一个正奖励的概率小到可以忽略。你连能学的信号都没有。
18 / 65
奖励示范两种监督信号
于是问一个新问题:除了奖励,还有什么能当监督?
讲解
既然探索很贵,自然的问题是:还有别的监督信号吗? 前六讲的监督信号只有一种:奖励。智能体自己去试,环境给分,从分里学。探索的代价就是从这个设定来的——你得自己把好的行为撞出来。 这一讲给的另一种是示范:有人已经会做这件事,把他做的轨迹给你看。 这个换位带来的好处很直接:你不需要自己撞出好行为,它已经在数据里了。而它带来的新问题——以及这一讲后面六集的全部内容——是:看着别人做,和自己会做,中间隔着什么?
19 / 65
状态空间 · 动作空间转移 · 奖励函数专家轨迹
示范学习的设定:有状态动作空间与专家轨迹,没有转移和奖励。
讲解
把这一讲后半段的设定写清楚,因为它和前六讲都不同。 已知:状态空间、动作空间,以及一组来自假定最优的老师的轨迹。 未知:转移动力学(和 L3 起一样),以及——这是新的——奖励函数。 注意最后这一条有多重。前六讲里奖励一直是问题定义的一部分(L1 第八集专门讲过 γ 和奖励是问题定义而非超参数)。现在它被拿走了,所以你甚至说不出「这个策略有多好」。 还有一个假设要点名:老师被假定是最优的。这个假设在真实数据上几乎总是不成立(人类示范有噪声、不一致、有时次优),而这一讲的分析全部建立在它之上。这是一处需要记住的前提。
20 / 65
探索:自己撞出好行为示范:好行为已在数据里换掉的是监督来源
指名反驳:探索不是「慢一点」,它有下界。示范换掉的是监督的来源。
讲解
指名回去:探索不是速度问题,它在最坏情况下有样本复杂度下界,而在稀疏奖励任务上你甚至拿不到可学的信号。Rainbow 那些改动一个都没碰它——Montezuma 就是证据。 示范提供的是另一种监督来源:好的行为不需要你撞出来,它已经在数据里。 但这不是免费的。接下来六集会看到它引入的三个新问题: 分布偏移——你只见过专家去过的状态,而你自己会走到别处(第五、六集)。 奖励不可辨识——从行为反推奖励没有唯一解(第九集)。 老师最优这个假设——它在真实数据上基本不成立。 下一集先把三条技术路线分开。
21 / 65

知识点 3 · 总结

探索有下界,所以去找另一种监督:示范

核心结论

表格 MDP 的样本复杂度下界说明最坏情况下探索本身就贵;稀疏奖励任务(Montezuma)连可学的信号都拿不到。

底层机制

Rainbow 的三个改动(偏差 / 效率 / 数据利用)没有一个改变智能体去哪里收集数据,所以对探索无效。

常见误解

误解:「探索只是慢一点,ε 开大、多跑就行」。GLIE 保证的是一定会,不是多久。

与你的考试

新设定:已知状态/动作空间与专家轨迹,未知转移与奖励函数。并假定老师是最优的 —— 真实数据上几乎不成立。

22 / 65

知识点 3 · 检验

为什么 Double DQN、优先回放、dueling 都没能解决 Montezuma's Revenge?

知识点 5

4 · 从示范学的三条路:学 π / 学 R / 学 R 再规划

23 / 65
手上只有轨迹没有奖励,也没有模型
专家轨迹到手了。接下来学什么?这里有三条不同的路。
讲解
设定已经定下来:你有一组专家轨迹,没有奖励函数,也没有转移模型。 接下来的问题是:你要从这些数据里学出什么? 有三个可能的答案,而它们通向三条技术路线。这一集把它们分开,因为选哪一条决定了你学到的东西能不能搬到别的地方去用。
24 / 65
都是从示范里学叫法不同而已,差别不大
三条路学的是三个不同的对象,可迁移性差别很大。
讲解
把三条路当成同一件事的不同叫法,是最省事的读法,而且名字确实容易混:模仿学习、行为克隆、逆强化学习、学徒学习。 但它们学的是三个不同的对象:一个学策略,一个学奖励,一个学奖励之后再去规划。 差别的实际后果只有一条,但很重:你学到的东西,在环境变了之后还能不能用。
25 / 65
行为克隆:直接学 π逆强化学习:学 R学徒学习:学 R 再规划
三条路:学 π · 学 R · 学 R 然后用它规划出 π。
讲解
三条路。 行为克隆:把 (状态, 专家动作) 当成 (输入, 标签),直接监督学习出一个策略。最直接,也最快。 逆强化学习:不学策略,学奖励函数——反过来问「什么样的 R 会让专家的行为成为最优」。 学徒学习:先用逆强化学习恢复 R,再拿这个 R 去做正向的规划或强化学习,得到策略。它是前两者的串联。 讲座提到最后这一步「往往就是把它接到一个正向 RL 上」。所以实质上是两类:学策略还是学奖励。
26 / 65
✕学到 π动力学一变就失效✓学到 R换环境仍可重新规划✕代价R 更难学,且不唯一差别在可迁移性
奖励比策略更可迁移:策略绑在动力学上,奖励不绑。
讲解
为什么值得绕远路去学奖励?因为奖励比策略更可迁移。 策略是「在什么状态做什么动作」,它把意图和动力学焊在了一起。换一辆车、换一个地形、换一组传感器,同一个策略立刻失效——即使你的意图完全没变。 奖励只编码意图:「撞车很糟、到得快很好」。动力学变了,这句话还是对的,你只要在新动力学上重新规划一次。 这就是学徒学习绕这一圈的全部理由,也是 Ng 与 Russell 在 2000 年那篇逆强化学习论文的动机之一。 代价同样要说清:R 比 π 难学得多,而且解不唯一——第九集会看到 R ≡ 0 能解释任何行为。所以这条路不是免费的升级。
27 / 65
学 π:快,但绑在动力学上学 R:慢,但编码的是意图
指名反驳:三条路学的是三个对象,选择取决于你要不要迁移。
讲解
指名回去:三条路不是同一件事的不同叫法,它们学的是三个不同的对象,而选择的依据是一个很实际的问题——你需不需要把学到的东西搬到别的环境去。 只在同一个环境里复现专家:行为克隆最直接,而且下一集会看到它就是监督学习,工具链是现成的。 要换环境、换机器人、换地形:必须学奖励,否则每换一次都要重新收集示范。 接下来三集(第五到第七集)追行为克隆这条路,因为它的失败方式是这一讲最有价值的内容;第八、第九集再回到逆强化学习。
28 / 65

知识点 4 · 总结

三条路学三个对象,差别在可迁移性

核心结论

行为克隆学 π;逆强化学习学 R;学徒学习学 R 再规划出 π(实质是前两者串联)。

底层机制

策略把意图与动力学焊在一起,换环境即失效;奖励只编码意图,换环境后重新规划即可。

常见误解

误解:「都是从示范学,叫法不同」。选择依据是一个实际问题:要不要迁移。

与你的考试

学 R 不是免费升级:它更难学且解不唯一(第九集:R ≡ 0 能解释任何行为)。

29 / 65

知识点 4 · 检验

为什么学徒学习要绕一圈先恢复奖励函数,而不是直接克隆策略?

知识点 6

5 · 行为克隆就是监督学习 —— 然后它在第一次犯错时坏掉

30 / 65
{(s1,a1),(s2,a2),…} ⟶ supervised learning
状态当输入,动作当标签
行为克隆没有任何新东西:它就是一个分类(或回归)问题。
讲解
行为克隆的做法一句话说完:把专家轨迹拆成 (状态, 动作) 对,状态当输入,动作当标签,训练一个分类器(离散动作)或回归器(连续动作)。 一个强化学习的概念都没用到:没有值函数,没有 Bellman 方程,没有探索,没有折扣。整套监督学习的工具链——交叉熵、数据增强、正则化——直接可用。 这个简单性是真实的优势。它也是为什么在很多工业系统里,行为克隆是第一个被尝试的方法。 然后它会以一种很特别的方式坏掉,而那个坏法是这一讲的主要内容。
31 / 65
那误差界直接能用监督学习的理论都是现成的
监督学习的保证有一个前提,而那个前提在 MDP 里会被打破。
讲解
既然它就是监督学习,那把监督学习的泛化界搬过来,似乎顺理成章:训练得好、泛化得好,每步的错误率 ε 很小,整体自然就好。 这个推理漏掉了监督学习那条保证的前提,而这个前提在监督学习里从来不需要特别强调,因为它默认成立。 前提是:测试数据和训练数据来自同一个分布。 在图像分类里这条通常成立(你从同一批数据里划训练测试)。在 MDP 里它不成立,而且是被你自己打破的。
32 / 65
训练分布:专家去过的状态测试分布:你自己会到的状态
训练数据来自专家的状态分布,而你要在自己的状态分布上工作。
讲解
把两个分布写清楚。 训练分布:专家走出来的那些状态。专家开得好,所以这些状态基本都是「车在路中间」这类正常情形。 测试分布:你自己的策略走出来的状态。只要你和专家有一点不同,你到达的状态分布就和专家的不一样。 关键在于这个偏差是自我强化的:你走偏一点 → 到了专家没去过的状态 → 那里你没有训练数据 → 更容易再错 → 偏得更远。 这不是过拟合。即使你在训练分布上泛化得完美,这个机制照样发生——因为问题出在你被带到了训练分布之外。
33 / 65
✓✓???一次错从这里起没有数据
一次错误就把你推出专家的分布,之后的每一步都在没有数据的区域里。
讲解
画出来就是这样:前两步你和专家一致,第三步犯了一次错,从此进入专家从未到过的状态。 在那之后,你的分类器面对的是训练时没见过的输入。它仍然会输出一个动作,而且往往还很自信——但那个输出没有任何保证支撑。 最常被引用的例子是自动驾驶的行为克隆:专家从不把车开到路肩上,所以数据里没有「车在路肩上该怎么办」。模型一旦偏出去一点,就进入了一个它完全没有训练信号的区域,而正确的恢复动作恰恰只在那里才需要。 注意这个失败的形状:数据最缺的地方,恰好是最需要正确动作的地方。这不是巧合,是专家最优这个前提的直接推论——专家不犯错,所以没有犯错后的数据。
34 / 65
✓不是过拟合训练分布上可以完美✕是分布偏移被推到分布之外✕而且自我强化越偏越没数据这是 MDP 特有的
指名反驳:监督学习的保证是同分布的,而 MDP 让你自己走出那个分布。
讲解
指名回去:监督学习的误差界不能直接搬,因为它的前提是训练与测试同分布,而在 MDP 里你的动作决定了你会到达哪些状态——你自己把自己带出了训练分布。 三件事要分清楚: 这不是过拟合。哪怕你在专家分布上的泛化是完美的,一旦偏出去仍然没有保证。 这是分布偏移,而且是由你自己的策略造成的。 这会自我强化:越偏越没数据,越没数据越偏。 这也是监督学习和强化学习之间最本质的一条区别,而 L1 第一集那个「序贯」正是在说这件事:你的动作影响你接下来看到的数据。 下一集把这个偏移的代价算出来——它比直觉大得多。
35 / 65

知识点 5 · 总结

行为克隆就是监督学习 —— 而监督学习的保证是同分布的

核心结论

训练分布 = 专家去过的状态;测试分布 = 你自己会到达的状态。一次犯错就把你推到后者里去。

底层机制

偏移自我强化:走偏 → 进入没数据的区域 → 更容易再错 → 偏得更远。

常见误解

误解:「它是监督学习,所以误差界直接能用」。漏掉的前提是训练与测试同分布。

与你的考试

不是过拟合 —— 即使在专家分布上泛化完美也照样发生。失败的形状是:数据最缺的地方恰是最需要正确动作的地方。

36 / 65

知识点 5 · 检验

行为克隆失败的根本原因是什么?

知识点 7

6 · εT 变成 εT²:一次错误的代价是剩下的整条轨迹

37 / 65
ε=0.01,T=100
每步错 1%整条轨迹代价多少
每步 1% 的错误率,跑 100 步。总代价是多少?
讲解
把上一集那个分布偏移的代价算出来。 设定很简单:策略在专家分布上的每步错误率是 ε = 0.01,也就是 1%;任务的时域 T = 100 步。 问题是:相比专家,这个策略总共差多少? 这一集的全部内容就是这个数,因为它比几乎所有人的直觉都大。
38 / 65
εT = 1 次错1% 乘 100 步,就这么简单
这是监督学习的算法 —— 它默认每一步的错误互不影响。
讲解
最自然的算法是 εT:每步 1%,100 步,期望错 1 次。 这个算法在监督学习里是对的:一百张图片各自独立分类,1% 错误率就是期望错一张。错了第 7 张,不影响第 8 张。 它在 MDP 里错在哪:每一步的错误不是独立的。第 7 步错了,第 8 步就在一个不同的、没有数据的状态上做决策。 上一集已经把机制说清楚了。这一集把它的代价算出来。
39 / 65
J(π)−J(π∗)≤ε∑t=1T(T−t+1)=εT(T+1)2
第 t 步错 → 毁掉 T−t+1 步
一次错误的代价不是 1,是剩下的整条轨迹。
讲解
推导只有一步。 在第 t 步犯一次错,代价不是 1,而是剩下的 T−t+1 步——因为从那以后你就在分布之外,之后的每一步都可能是错的,而每一步最多损失 1。 在第 1 步犯错最贵,毁掉 T 步;在最后一步犯错最便宜,只毁掉 1 步。把每一步犯错的概率 ε 乘上它各自的代价再加起来: ε·[T + (T−1) + … + 1] = ε·T(T+1)/2 这就是行为克隆的标准界,来自 Ross 与 Bagnell 的工作。注意它是 O(εT²),而监督学习的直觉给的是 O(εT)。 多出来的那个 T,正是「一次错误会污染剩下整条轨迹」这件事。
40 / 65
T=10T=30T=100×5.5×15.5×50.5放大倍数 = (T+1)/2
实际代价是监督直觉的多少倍:T=100 时 50.5 倍。
讲解
看什么:看柱子一根比一根高多少:放大倍数本身随 T 线性增长(正好是 (T+1)/2)。时域越长,这个错误估得越离谱 —— 而长时域恰恰是 RL 的主场。 —— 把放大倍数算出来:εT(T+1)/2 除以 εT,正好是 (T+1)/2。 T=10 时放大 5.5 倍;T=30 时 15.5 倍;T=100 时 50.5 倍。 请注意这不是一个固定的倍数——放大倍数本身随 T 线性增长。所以任务越长,用 εT 估算就错得越离谱,而长时域恰恰是强化学习问题的常态。 再往下代一组:T=1000 时,监督直觉说 εT = 10,而实际界是 5005——差 500 倍。 具体地读这些数:ε=0.01、T=100 时,εT=1 意味着「一百步里大概错一步,基本还是专家水平」;而 50.5 意味着这个策略可以和专家差出半条轨迹那么多。两个结论完全不同,而它们来自同一个 1% 的错误率。
41 / 65
O(εT)O(εT²)差的是阶,不是倍数
指名反驳:εT 与 εT² 差的是阶。把 ε 减半救不了它。
讲解
指名回去:εT 是监督学习的账,它默认每步的错误互不影响。在 MDP 里一次错误会污染剩下的整条轨迹,账是 ε·T(T+1)/2 = O(εT²)。 最要紧的一点是:两者差的是阶,不是倍数。 这意味着「把模型做得更准一点」救不了它。你把 ε 从 0.01 压到 0.005,代价也只是从 50.5 降到 25.25,T² 那一项还在。要真正解决,你必须改变数据从哪个分布来——那正是下一集 DAgger 做的事,它把界压回 O(εT)。 顺带把 L1 那一集接上:L1 第一集讲「序贯」时说过同样的形状(那里也出现过 εT 与 εT(T+1)/2 这两个式子)。当时它是一个关于监督学习与强化学习差别的抽象说明;这里它变成了一个具体算法失败的定量解释。
42 / 65

知识点 6 · 总结

一次错误的代价是剩下的整条轨迹:εT 变 εT²

核心结论

第 t 步犯错毁掉 T−t+1 步 ⟹ J(π)−J(π*) ≤ ε·Σ(T−t+1) = ε·T(T+1)/2(Ross & Bagnell)。

底层机制

放大倍数正好是 (T+1)/2,它本身随 T 线性增长:T=10 → 5.5×,T=30 → 15.5×,T=100 → 50.5×,T=1000 → 500.5×。

常见误解

误解:「εT = 0.01×100 = 1 次错」。那是监督学习的账,它默认每步错误互不影响。

与你的考试

差的是阶不是倍数:把 ε 减半只把 50.5 变成 25.25,T² 还在。必须改数据来自哪个分布(下一集)。

43 / 65

知识点 6 · 检验

ε = 0.01、T = 100 的行为克隆,J(π*) − J(π) 的界大约是多少?

知识点 8

7 · DAgger:要的不是更多数据,是你自己分布上的数据

44 / 65
病因:数据来自专家的分布而你走在自己的分布上
诊断已经很清楚了。那修法应该冲着哪一项去?
讲解
两集下来,病因已经定得很死:训练数据来自专家的状态分布,而你执行时走在自己的状态分布上,一次犯错就跨出去,代价是 O(εT²)。 上一集末尾已经排除了一条路:把 ε 做小救不了,因为差的是阶。 所以修法只能冲着另一项去——分布。
45 / 65
多收集点专家数据数据越多,覆盖越全
再多也没用:专家的数据永远只覆盖专家的分布。
讲解
最自然的反应是加数据。数据多了覆盖更全、ε 更小,看起来两头都在改善。 但请看它加的是什么数据:专家跑出来的轨迹。再收集一万条,它们仍然全都落在专家的状态分布上。 而你需要数据的地方,恰恰是专家不会去的那些状态——车偏到路肩上之后该怎么打方向。专家永远不会偏到那里,所以那里永远没有数据。 上一集那句话在这里变成了行动指南:数据最缺的地方,恰好是最需要正确动作的地方。加更多同分布的数据,一个字节都补不到那里。
46 / 65
① 用当前策略跑② 在这些状态上问专家③ 加进数据集,重训
DAgger:让专家标注你自己会到达的那些状态。
讲解
DAgger(Dataset Aggregation)的做法是把数据的来源分布换掉。 第一步:用当前的策略去跑,记录它到达的状态——包括那些偏出去的、专家从不会到的状态。 第二步:把这些状态拿给专家,问「如果是你,在这里会怎么做」。注意专家不需要真的走这条轨迹,只需要在这些状态上给出动作。 第三步:把这些新的 (状态, 专家动作) 对加进数据集(不是替换),重新训练,然后回到第一步。 每一轮之后,数据集覆盖的分布都更接近你自己策略的分布,而标签始终来自专家。
47 / 65
行为克隆 εT(T+1)/2DAgger O(εT)4.650.30ε=0.01, T=30
同样的 ε 与 T:界从 4.65 降到 0.30,而且阶从 T² 变回 T。
讲解
看什么:看右边那根只剩一小截:同样的错误率、同样的时域,只因为数据来自不同的分布。左边是 T² 那一项,右边没有它。 —— 把界代出来。ε=0.01、T=30 时,行为克隆的界是 ε·T(T+1)/2 = 4.65;DAgger 是 O(εT) = 0.30。 但重点不是这个倍数,是阶:DAgger 把 T² 变回了 T。所以 T 越大,差距越夸张——T=1000 时是 5005 对 10。 为什么能做到:因为训练分布和执行分布被强行对齐了。上一集那个「一次错误污染剩下整条轨迹」的机制,前提是「出界之后没有数据」;DAgger 把出界之后的数据也收了进来,那个机制就断了。 请注意它没有让策略不犯错——ε 还是 ε。它做的是让犯错之后不再失控。
48 / 65
✓要的不是更多是不同分布的数据✕代价专家必须能被反复询问✕且要标怪状态人类在这上面很不可靠这一条最难满足
指名反驳:要的不是更多数据,是不同分布的数据。
讲解
指名回去:修法不是加数据,是换数据的来源分布。这个区分是这一讲最可迁移的一条——「数据量」和「数据来自谁的分布」是两个独立的旋钮,而这里坏掉的是后一个。 但 DAgger 的代价必须说清楚,因为它常常是致命的。 它要求一个可以被反复询问的交互式专家。不是一批录好的轨迹,而是一个你随时能问「这个状态你会怎么做」的人或程序。在很多场景里这根本拿不到——历史日志就是死的。 而且要标注的恰恰是怪状态。人类专家在「车已经歪到路肩上」这种自己从没经历过的情形里,给出的动作往往犹豫、不一致,甚至是错的。你要的标签正好落在人类最不可靠的区域。 所以 DAgger 在理论上干净,在落地上受限于能不能问到专家。
49 / 65

知识点 7 · 总结

DAgger 要的不是更多数据,是不同分布的数据

核心结论

三步循环:用当前策略跑 → 在它到达的状态上问专家 → 加进数据集重训。界从 O(εT²) 压回 O(εT)。

底层机制

它没有让策略少犯错(ε 不变),而是让「出界之后没数据」这个机制断掉 —— 出界后的数据也被收了进来。

常见误解

误解:「多收集点专家数据」。再多也只覆盖专家的分布,而你缺的恰是专家不会去的状态。

与你的考试

代价常常致命:要求可反复询问的交互式专家(死日志做不到),而且要标的正是人类最不可靠的怪状态。

50 / 65

知识点 7 · 检验

DAgger 相对行为克隆,改变的关键是什么?

知识点 9

8 · 逆强化学习的特征匹配:μ 是特征计数,不是状态分布

51 / 65
R(s)=w⊤x(s)μ(π)=∑tγtx(st)
值就变成 wᵀμ于是可以只比 μ
若奖励对特征线性,策略的值就写成 wᵀμ(π) —— 只剩一个向量要比。
讲解
回到逆强化学习。第一个可操作的想法是:假设奖励对特征线性,R(s) = wᵀx(s)。 这个假设让一切变得可算:策略的期望折扣回报变成 wᵀμ(π),其中 μ(π) = Σ_t γ^t x(s_t) 的期望,叫折扣特征计数。 于是「让我的策略和专家一样好」这件事,被化简成「让我的 μ 和专家的 μ 接近」——不需要知道 w 是多少,因为只要 μ 相同,任何 w 下的值都相同。 这是 Abbeel 与 Ng 的学徒学习的核心。而这一段里讲座有三处需要更正,本集逐条处理。
52 / 65
匹配 μ 就等于策略相同特征一样,行为当然一样
匹配 μ 只保证线性奖励下的值接近 —— 不保证策略相同。
讲解
这个错误模型来自对 μ 的一个误读:把它当成了「状态访问分布」。如果 μ 真是状态分布,那两个策略的 μ 相同确实接近于说它们在每个状态上行为相同。 但 μ 不是状态分布。它是一个特征空间的向量,维数等于特征数 k,而不是状态数。两个完全不同的策略,只要它们访问的状态在特征上平均起来一样,μ 就一样。 举个极端的例子:如果 x(s) 只有一维「离终点的距离」,那么「稳稳走过去」和「先冲后退再冲」只要平均距离相同,μ 就完全相同——而这两个策略显然不一样。 只有当 x 是状态的 one-hot 编码时,μ 才退化成(未归一化的)折扣状态分布,那时两者才接近等价。
53 / 65
μ 的维数 = 特征数 k不是状态数也没有 (1−γ) 归一化
两处记号必须更正:μ 按特征编号,而且它不是概率分布。
讲解
按约定把这一段的记号更正清楚,因为它们直接影响你读原始论文。 第一,μ 是按特征编号的,不是按状态。讲座把它说成「μ of s」,好像它是状态的函数。它的维数是 k = dim x(s)。只有当 x 是 one-hot 时两者才重合——而那正好是 L5 第六集那个让一切变简单的特例。 第二,μ 不是概率分布。讲座称它是「带折扣的平稳分布」。精确的对象是归一化折扣占用测度 d^π(s) = (1−γ)Σ_t γ^t P(s_t=s),而 μ 没有那个 (1−γ) 的归一化,所以它是一个未归一化的折扣特征计数,加起来不等于 1。 第三,和 Sutton & Barto 的符号会撞车:S&B 用 μ(s) 表示在策略状态分布、用 η(s) 表示期望访问次数,而这里 μ 是特征空间的量。在两边之间切换时这个字母最容易出错。
54 / 65
|w⊤μ(π)−w⊤μE|≤‖w‖‖μ(π)−μE‖
配对必须一致原文用 L2 / L2
两个值的差被范数乘积控住 —— 但两个范数必须配成一对。
讲解
为什么匹配 μ 有用:两个策略的值之差是 |wᵀμ(π) − wᵀμ_E|,由不等式它被 ‖w‖·‖μ(π) − μ_E‖ 控住。所以只要把 μ 逼近到 ε 之内,且 w 的范数有界,值的差距就有界。 这里是本讲记号最乱的一段,必须说清楚。 讲座把 μ 的匹配条件写成 L1,把 w 的约束写成 L2 球,然后引用 Hölder 不等式。这三者配不起来:Hölder 配的是 L1 与 L∞,Cauchy–Schwarz 配的才是 L2 与 L2。 Abbeel 与 Ng 的原文用的是 ‖w‖₂ ≤ 1 与 ‖μ(π) − μ_E‖₂ ≤ ε,配 Cauchy–Schwarz,于是值差 ≤ ε。本片采用这一套。 还有一处是数学上直接错的:讲座在讲 L1 时说「把所有这些误差加起来,它必须等于 1」。L1 范数是各分量绝对值之和,而条件是这个和要小(被 ε 控住),不是等于 1。
55 / 65
✓μ 匹配线性奖励下值接近✕策略相同不保证✓除非x 是 one-hot保证的是值,不是行为
指名反驳:μ 匹配保证的是值接近,不是行为相同。
讲解
指名回去:匹配特征计数保证的是——在任何线性于这组特征的奖励下——你的值和专家的值接近。它不保证你的策略和专家的策略相同。 两个前提要记住,它们都是可能失效的: 奖励必须真的线性于 x。如果真实奖励依赖某个不在 x 里的东西,匹配 μ 就毫无意义——你在一组错误的坐标上对齐。 x 的选择决定了什么叫「像」。特征是你挑的,而「行为相似」这件事完全由这个选择定义。特征里没有的维度,你就永远不会去匹配它。 这也把这一讲和 L6 第一集接上了:那里说线性逼近要你先猜对一组基;这里同样——你得先猜对什么特征决定了「好」,而这一次连验证的办法都没有,因为真实奖励本来就不知道。 最后一集处理一个更根本的问题:就算特征选对了,奖励本身是不是唯一的。
56 / 65

知识点 8 · 总结

μ 是特征空间的折扣计数,不是状态分布

核心结论

R=wᵀx ⟹ 值 = wᵀμ(π),其中 μ(π)=E[Σ_t γ^t x(s_t)]。匹配 μ 就能不知道 w 而对齐值。

底层机制

两处更正:μ 按特征编号(维数 k,不是状态数);它没有 (1−γ) 归一化,不是概率分布。

常见误解

误解:「μ 一样就策略一样」。只有 x 是 one-hot 时才近似成立;一般情形下不同策略可以有相同的 μ。

与你的考试

范数配对:讲座 L1(μ) + L2(w) + Hölder 配不起来。原文用 ‖w‖₂≤1 与 ‖μ−μ_E‖₂≤ε(Cauchy–Schwarz)。另:「误差加起来等于 1」是错的,应为被 ε 控住。

57 / 65

知识点 8 · 检验

在学徒学习里匹配特征计数 μ(π) = μ_E,能保证什么?

知识点 10

9 · 奖励不可辨识:R ≡ 0 能解释任何行为

58 / 65
看见最优行为反推奖励这个反问题有解吗
逆强化学习问的是一个反问题:什么样的 R 让专家的行为最优?
讲解
逆强化学习的问题陈述很干净:给定一个(假定最优的)专家策略,找出一个奖励函数 R,使得这个策略在 R 下是最优的。 这是一个反问题——正向是「给 R,求最优 π」,反向是「给 π,求 R」。 反问题的第一件事永远是问:解存在吗?唯一吗? 存在性没问题。而唯一性——这一集全部的内容——答案是斩钉截铁的不,而且不唯一得相当彻底。
59 / 65
专家最优,R 就定了行为已经把偏好全暴露了
行为确实暴露了偏好 —— 但暴露得远远不够定出一个 R。
讲解
这个错误模型的直觉很强:如果一个人的每一个选择你都看见了,他的偏好还能有什么不确定的? 而且在有限的例子上它常常像是对的——看见司机减速让行人,你确实推断出「撞人是很负的」。 问题是「推断出一条约束」和「定出一个函数」之间差得很远。观察到的行为只给出不等式:专家选的动作不差于别的动作。而满足这组不等式的 R 有无穷多个。 下一镜给出最极端的那个,它一下就把唯一性打死。
60 / 65
R≡0⟹every policy is optimal
包括专家那个所以它是一个合法解
取 R ≡ 0:所有策略的值都是 0,每一个策略都是最优的。
讲解
取 R ≡ 0。那么每个策略的值都恰好是 0,于是所有策略都是最优的——包括专家那一个。 所以 R ≡ 0 完美满足「让专家的行为成为最优」这个要求。它是一个合法解,而且它对专家的偏好什么都没说。 这就是 Ng 与 Russell 在 2000 年那篇论文里的核心观察:逆强化学习是严重不适定的(ill-posed)。R ≡ 0 只是最刺眼的一个;此外还有无穷多个非平凡的解。 注意这和上一集那个「(V,A) 不可辨识」是同一个形状:约束只落在某个组合上,个体不被约束。那里训练信号只看得见 V+A,这里观察只看得见「谁比谁好」。
61 / 65
特征匹配最大间隔最大熵
既然解不唯一,就必须外加一条准则去挑一个。三种常见做法。
讲解
既然解集非空且巨大,唯一的出路是外加一条准则,从解集里挑一个。这正是各种逆强化学习方法的真正分歧所在。 特征匹配(上一集):挑一个让 μ 对齐的 —— 实际上是把问题从「定 R」换成了「定值」。 最大间隔:挑一个让专家的策略比其他策略好得最多的 R。它显式地排除了 R ≡ 0,因为那个解的间隔是 0。 最大熵:在所有能解释数据的 R 里,挑那个让行为分布最不确定的 —— 也就是不多假设任何没被数据支持的东西。这是后来最常用的一路。 讲座还提到了 GAIL,把它读作「generative adversarial inverse imitation learning」——正确的名字是 Generative Adversarial Imitation Learning(Ho 与 Ermon, 2016),名字里没有 inverse。
62 / 65
✕解不唯一R ≡ 0 就是一个✓必须加准则间隔 / 熵 / 特征✓准则即假设它决定你恢复出什么这是建模选择,不是技术细节
指名反驳:行为定不出 R。你选的准则,才决定了恢复出什么。
讲解
指名回去:观察最优行为不足以确定奖励函数。R ≡ 0 让每个策略都最优,是一个合法解——这一个反例就够了。 所以每个逆强化学习方法都必须外加一条准则,而这才是真正该看的地方:你选的准则,决定了你恢复出什么样的奖励。这不是实现细节,是一个建模假设,和选特征、选先验是一回事。 把这一讲的三条限制并排放,它们都指向同一个方向: 老师被假定最优——真实人类示范基本不满足。 特征是你挑的——「像」的定义由它决定(第八集)。 准则是你挑的——从无穷多个解里挑哪个由它决定。 三条都是你带进来的假设,而不是数据告诉你的。这是模仿学习最该带走的一条判断:看一个方法学出了什么之前,先看它假设了什么。 最后补几处被字幕弄坏的名字:「Sergei Lamin」是 Sergey Levine;「Stephane Ross」与「Drew Bagnell」(J. Andrew Bagnell)是对的,DAgger 出自他们;Ng 与 Russell 那篇逆强化学习论文被说成「1999, 2000」,实际是 ICML 2000。
63 / 65

知识点 9 · 总结

奖励不可辨识:R ≡ 0 能解释任何行为

核心结论

取 R ≡ 0,所有策略的值都是 0,每个策略都最优 —— 包括专家的。这一个反例就打死了唯一性(Ng & Russell, ICML 2000)。

底层机制

和 dueling 的 (V,A) 不可辨识同形:约束只落在某个组合上(这里是「谁比谁好」),个体不被约束。

常见误解

误解:「看见了全部选择,偏好就定死了」。观察只给出不等式,满足它们的 R 有无穷多个。

与你的考试

必须外加准则(特征匹配 / 最大间隔 / 最大熵),而准则即假设:它决定你恢复出什么。与「老师最优」「特征是你挑的」并列 —— 三条都是你带进来的。

64 / 65

知识点 9 · 检验

为什么从最优专家行为恢复奖励函数是不适定的?

知识点 11

完

65 / 65
讲解
回头看这九集,承重的是三件事。 第一,分布偏移不是小毛病,它是模仿学习的全部困难。行为克隆在专家的状态分布上是标准的监督学习,误差界 εT;但一次犯错就把你推到分布之外,那里的保证一条都不剩,界变成 ε·T(T+1)/2。ε=0.01、T=100 时是 50.5 对 1,T=1000 时是 5005 对 10。 第二,DAgger 要的不是更多数据,是不同分布的数据。它让你先用当前策略跑出轨迹,再去问专家「你在这些状态会怎么做」——标注的是你自己会到达的状态。这把界压回线性的 O(εT)。区分「数据量」和「数据来自谁的分布」,是这一讲最可迁移的一条。 第三,奖励不可辨识。从最优行为恢复奖励这件事没有唯一解——R ≡ 0 就能解释任何策略的最优性。所以逆强化学习必须外加准则(特征匹配、最大熵、边际最大化),而你选哪个准则,就决定了你恢复出什么奖励。 下一讲换一条路。前七讲都在估值函数、再从中读出策略;L8 的策略梯度不再绕这一道,而是直接对策略的参数求梯度——于是连续动作空间和随机策略第一次变得自然。