CS234 L15 · 批量(离线)强化学习与安全策略改进 · 全片速览

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

1 · 开场2 · 1 · 安全策略改进:上线3 · 2 · 重要性采样:环境的因子<4 · 3 · 覆盖条件:无偏不够5 · 4 · 每步 IS:未来影6 · 5 · 加权 IS:有偏<7 · 6 · 控制变量:讲座的判据8 · 7 · 双重稳健与 MAGIC:9 · 8 · Hoeffding 配 10 · 9 · 截尾修复:只压低不11 · 完
知识点 1

开场

1 / 65
讲解
这一讲的设定是前十四讲都没出现过的:你不能和环境交互。 手上只有一份已经收集好的轨迹数据,是某个行为策略 π_b 跑出来的。你要用它评估、甚至改进出一个新策略,而且在部署之前就要给出统计上的保证。 这是 Brunskill 自己的研究方向,也是整门课里离真实高风险应用最近的一讲——教育系统、医疗、数字营销,这些地方你没法「先上线试试」。 她把目标写成一行:找一个算法 A,把数据集 D 映成一个策略,使得 P( V^{A(D)} ≥ V^{π_b} ) ≥ 1 − δ 注意这行式子有一个容易被略过的含义:算法被允许、而且被期待,在证据不足时拒绝输出任何新策略。「不改」永远是一个合法的答案。 本讲分三层。第一层是离策略评估,核心工具是重要性采样,以及一整条降方差的阶梯——每上一级大约省一个数量级的数据。第二层是高置信度的评估,而这里有一个惊人的失败:把 IS 和 Hoeffding 直接拼起来,在 mountain car 上用十万条轨迹,得到的下界是 −5 百万,而真值是 0.19、所有回报都落在 [0,1] 里。第三层才是安全改进本身。 这一讲的记号极其混乱:行为策略在不同时刻被叫作 π_b、π_1、π_2,有学生当场提问;评估策略一度被说成「数据来自的那个策略」,也是学生纠正的。本片统一用 π_b(行为)和 π_e(评估)。
知识点 2

1 · 安全策略改进:上线之前就要有保证,而算法可以拒绝

2 / 65
教育学生只有一次医疗病人只有一次营销客户会流失没有第二次不能「先上线试试」
这一讲的设定:你不能和环境交互。只有一份别人跑出来的旧数据。
讲解
前十四讲都默认一件事:你可以和环境交互。哪怕是 L11 到 L13 那一块讲样本效率,讨论的也是「交互多少次」。 这一讲把这个默认拿掉。 设定是:手上有一份已经收集好的轨迹数据,是某个行为策略 π_b 跑出来的。你不能再跑一次,不能试探,不能小流量灰度。你要用这份数据判断一个新策略好不好,而且在部署之前就要判断。 这不是人为的限制。教育系统里学生只上一次课,医疗里病人只有一次治疗机会,数字营销里客户流失了就回不来。「先上线试试」在这些地方不是保守不保守的问题,是根本不成立。
3 / 65
先小流量上线试试跑一点数据看看效果不就知道了
「小流量」也是真实的人。而且要多小才安全,本身就是个没答案的问题。
讲解
这个错误模型在互联网产品里是标准做法,而且在那里通常是对的——A/B 测试就是这么做的。 但它有两个前提,在这一讲的场景里都不成立: 第一,小流量里的人也是真实的人。如果新策略是有害的,那部分人受到的伤害是真实发生的。在推荐系统里这个代价可以接受;在胰岛素给药上不行。 第二,「多小才算安全」这个问题本身没有答案。要回答它,你得先知道新策略有多差——而那正是你要评估的东西。这是循环的。 所以问题必须换一个形状:不上线,只用旧数据,能不能给出一个有统计保证的判断? 这就是这一讲的全部内容。
4 / 65
P(VA(D) ≥ Vπb) ≥ 1−δ
算法把数据映成策略至少不比现在差
目标写成一行:输出的策略以高概率不比现任差。
讲解
目标可以写成一行: 找一个算法 A,把数据集 D 映成一个策略 A(D),使得 P( V^{A(D)} ≥ V^{π_b} ) ≥ 1 − δ 读法:以至少 1−δ 的概率,新策略不比现在正在用的那个差。 注意基准是 V^{π_b}——现任策略,不是最优策略。这个选择很实际:真实系统里已经有一个策略在跑,你要说服别人换掉它,需要的正是「不会变差」这个保证,而不是「接近最优」。 对照 L10 那个单调改进:形状一样(都是「不比上一个差」),但那里可以交互、可以一步步小心地走;这里只有一次机会,而且没有反馈。 下一镜说这行式子里一个容易被略过的含义。
5 / 65
历史数据 D1 − δSPI新策略 π不改,输出 π_b这一支也满足保证「不改」是合法答案
算法被允许拒绝。输出 π_b 本身,那行不等式自动成立。
讲解
那行式子里有一个容易被略过的含义: 算法可以输出 π_b 本身。 那样 V^{A(D)} = V^{π_b},不等式以概率 1 成立。也就是说,「什么也不改」永远是一个满足保证的合法答案。 这不是钻空子,这是设计意图。整套方法的行为是: 证据足够 ⟹ 输出一个能证明更好的新策略。 证据不够 ⟹ 输出现任策略,也就是拒绝改动。 把这条和前十四讲对比一下差别就很清楚:前面那些算法总会给你一个策略,好坏另说。这一讲的算法会说「我不知道」。 在教育和医疗这类场合,一个会说「我不知道」的算法,比一个总是给答案的算法有用得多。因为你真正需要的不是一个建议,是一个可以据以承担责任的判断。
6 / 65
OPEJ(π_e) 的估计HCOPE置信下界SPI新策略 / 拒绝D, π_e+ 1−δ缺一层保证就没了三层,缺一不可
指名反驳:不靠上线试。靠三层机器把保证在部署前算出来。
讲解
指名回去:不靠上线试探,而是把保证在部署之前算出来。 这需要三层机器,接下来八集分别搭: 第一层,离策略评估:用 π_b 产生的数据,估计另一个策略 π_e 的值。核心工具是重要性采样,以及一整条降方差的阶梯(第二到第七集)。 第二层,高置信度评估:不只给一个点估计,还要给一个下置信界。这一层有一个惊人的失败等着(第八、九集)。 第三层,安全改进:搜索候选策略,算它们的下界,只在超过现任时才部署。 三层缺一不可:没有第一层你连点估计都没有;没有第二层你有点估计但不知道它准不准;没有第三层你有界但不知道拿它做什么决定。 下一集从第一层开始。而它的第一步会让人有点意外:整个推导居然不需要知道环境。
7 / 65

知识点 1 · 总结

安全策略改进:上线之前就要有保证,而算法可以拒绝

核心结论

目标:找算法 A 使 P( V^{A(D)} ≥ V^{π_b} ) ≥ 1 − δ。基准是现任策略 π_b,不是最优策略 —— 因为真实系统里要说服人换掉现有的那个。

底层机制

算法可以输出 π_b 本身,那时不等式以概率 1 成立。所以「什么也不改」是合法答案,而且是设计意图:证据不够就拒绝改动。

常见误解

误解:「小流量上线试试」。两个前提不成立:小流量里也是真实的人;而且「多小才安全」要先知道新策略多差 —— 循环。

与你的考试

三层机器:离策略评估(点估计)→ 高置信度评估(下界)→ 安全改进(决定部不部署)。缺一层保证就没了。对照 L10 的单调改进:形状相同,但那里可以交互、这里只有一次机会且没有反馈。

8 / 65

知识点 1 · 检验

安全策略改进的目标 P(V^{A(D)} ≥ V^{π_b}) ≥ 1−δ 里,有一个容易被略过的含义是什么?

知识点 3

2 · 重要性采样:环境的因子全部约掉,连马尔可夫假设都不需要

9 / 65
数据是 π_b 跑出来的要估的是 π_e 的值两者的轨迹分布不一样
第一层的核心问题:数据来自一个分布,要问的是另一个分布的均值。
讲解
第一层:离策略评估。 问题的形状是:数据里的轨迹是按 π_b 的概率出现的,而你想知道的是按 π_e 会拿到多少回报。 两个策略产生轨迹的分布不一样。直接把数据里的回报平均一下,得到的是 π_b 的值,不是 π_e 的。 统计里对付这个有一个标准工具:重要性采样——给每条样本重新加权,权重是它在目标分布和采样分布下的概率之比。 听上去需要知道很多东西。下一镜看它实际需要什么。
10 / 65
得知道转移模型要算轨迹的概率,总得知道环境吧
不需要。环境的每一个因子在相除时完全约掉。
讲解
这个担心完全合理:一条轨迹的概率里既有动作的概率,也有状态转移的概率和初始状态的概率。要算这个比值,好像得知道整个环境。 不需要。 关键在于:比值的分子和分母是同一条轨迹,只是在两个策略下的概率。而环境的部分——初始状态分布、转移概率、奖励——和策略无关,在分子分母里一模一样。 相除就没了。 下一镜把这个约分写出来,因为约掉之后剩下的东西比想象的少得多,而且带来一个额外的好处。
11 / 65
P(τ∣πe)P(τ∣πb)=p(s0)∏tπe(at|st)P(st+1|st,at)p(s0)∏tπb(at|st)P(st+1|st,at)=∏tπe(at|st)πb(at|st)
这两个两边一样,约掉
约分之后只剩动作概率之比的连乘 —— 环境的部分全没了。
讲解
把轨迹概率拆开:初始状态的概率,乘上每一步「按策略选这个动作」的概率,再乘上「环境转移到下一个状态」的概率。 分子用 π_e,分母用 π_b。而初始状态分布和转移概率在两边完全相同——它们只依赖环境,不依赖策略。 全部约掉。剩下的是: ∏_t π_e(a_t|s_t) / π_b(a_t|s_t) 只有动作概率的比值,逐步连乘。 所以这个估计量:不需要转移模型,不需要奖励模型,什么模型都不需要。它只需要知道两件事——新策略在每个记录下来的 (s,a) 上给多少概率,以及行为策略给了多少概率。 (标一处记号:讲座在讲一般化的 IS 推导时用 p 作采样分布、q 作目标分布,这和统计学里通常的约定正好相反。对应到这里:q 是 π_e,p 是 π_b。另外轨迹的分解被口述成「sum over j」,实际是对时间步 t 的连乘,不是求和,下标也是时间不是轨迹编号。)
12 / 65
∏tπe(at|st)P(st+1|st,at)πb(at|st)P(st+1|st,at)
上下同一个 P第三条常被忽略
额外的好处:这个推导根本没用到马尔可夫假设。
讲解
约分带来一个经常被忽略的好处。 再看一遍那个约分:环境的因子之所以消失,是因为它在两个策略下是同一个数。 而这一点和环境是不是马尔可夫的完全无关。 就算转移概率依赖整段历史——P(s_{t+1} | 从头到现在发生的一切)——它在分子和分母里仍然是同一个数,仍然约掉。 所以重要性采样在非马尔可夫的环境里同样成立。 这一条在实际中很值钱,因为真实系统几乎从不是马尔可夫的:学生的状态不只是这道题的对错,病人的状态不只是最近一次化验。前十四讲的方法全部建立在马尔可夫假设上——值迭代、TD、Q 学习、策略梯度,无一例外。 而这一个不用。它也是这一讲的方法能用在真实教育和医疗数据上的原因之一。 估计量本身的性质是标准的:无偏(期望正好等于 V^{π_e})、相合(数据越多越准)。
13 / 65
sarπ_b(a|s)0.200.550.100.350.25这一列必须记下来唯一的要求在这里
指名反驳:不需要环境。但需要知道行为策略给了多少概率。
讲解
指名回去:不需要知道转移模型,因为环境的因子在相除时全部约掉。连马尔可夫假设都不需要。 但要把确实需要的东西说清楚,因为它是这套方法在实践中最大的门槛: 你必须知道行为策略在每个记录下来的 (s,a) 上给了多少概率。 这在你自己部署的系统里没问题——策略是你写的,概率你有日志。但如果数据来自人(医生的处方、老师的决策),或者来自一个没有记录概率的旧系统,那 π_b(a|s) 就是未知的,得先估出来。而估它本身就是一个新的误差来源。 讲座在这里明确做了假设:「we're gonna assume that we know what the behavior policy is」。这个假设在结尾的开放问题列表里又出现了一次——行为策略未知是这套方法公认的软肋之一。 下一集看另一个前提,而那个前提不满足时,估计量会直接失效,不只是变差。
14 / 65

知识点 2 · 总结

重要性采样:环境的因子全部约掉,连马尔可夫假设都不需要

核心结论

轨迹概率之比里,初始状态分布与转移概率在两个策略下完全相同,相除消失。剩下 ∏_t π_e(a_t|s_t)/π_b(a_t|s_t) —— 只有动作概率之比的连乘。

底层机制

因子约掉与马尔可夫性无关:就算转移依赖整段历史,它在分子分母里仍是同一个数。所以 IS 在非马尔可夫环境里同样成立 —— 前十四讲的方法全部依赖马尔可夫假设,这一个不依赖。

常见误解

误解:「要算轨迹概率就得知道转移模型」。不需要任何模型。

与你的考试

确实需要的:知道 π_b 在每个记录的 (s,a) 上给了多少概率。数据来自人或旧系统时它未知 —— 讲座明确假设已知,而行为策略未知在结尾的开放问题里又出现一次。记号:讲座用 p 作采样、q 作目标,与统计学惯例相反。

15 / 65

知识点 2 · 检验

重要性采样的权重为什么不需要转移模型?

知识点 4

3 · 覆盖条件:无偏不够,行为策略得去过那些地方

16 / 65
πb(a∣s)>0wheneverπe(a∣s)>0
这叫覆盖
上一集那个估计量有一个前提。不满足时它不是变差,是失效。
讲解
上一集的估计量是无偏、相合的——但那是在一个前提下。 前提叫覆盖(coverage):凡是 π_e 有可能选的动作,π_b 也必须有可能选。 写成式子:π_e(a|s) > 0 的地方,必须有 π_b(a|s) > 0。 这一集说明不满足时会发生什么,以及为什么它比听上去更严重。
17 / 65
无偏就够了估计量无偏,数据多了自然就准
覆盖不满足时,估计量连无偏都不是 —— 数据再多也不会对。
讲解
这个错误模型的问题在于:无偏这个性质本身就依赖覆盖。 设想 π_e 会在某个状态下选动作 a,而 π_b 从来不选 a。那么数据里一条这样的轨迹都没有。 于是无论你怎么加权,这条轨迹对估计的贡献是 0——而它在 π_e 下的真实贡献不是 0。 估计量缺了一整块,而且这一块的大小你无从得知。 这不是方差问题,数据再多也不会好转——那部分数据在这个数据集里根本不存在。 下一镜看这为什么比「有点偏差」严重得多。
18 / 65
a1a2a3a4π_ea1a2a3a4π_b零条样本缺的那块无从得知
缺的不是精度,是一整块你不知道有多大的东西。
讲解
为什么这比一般的偏差严重? 因为偏差通常可以被界定——你知道它来自哪里、大概多大。而覆盖失效造成的缺口没有任何线索: 数据里没有这些轨迹,所以你看不到它们的回报。 你也不知道π_e 有多大概率走到那里。 你甚至不一定意识到缺了东西——估计量照样会给你一个数。 它会给一个看起来很正常的答案,而那个答案可能任意地错。 更麻烦的是方向:如果 π_e 特意要去那些 π_b 不去的地方(而一个「改进的」策略往往正是这样),那恰恰是它最不同、最需要被评估的部分完全没有数据。 越是激进的新策略,越容易违反覆盖。这是这套方法内在的张力。
19 / 65
确定性 π_b近确定性随机 π_b几乎必然违反才有希望日志策略得是随机的
实践推论:行为策略必须是随机的,否则这套方法根本用不了。
讲解
覆盖条件有一个非常实际的推论,值得单独说: 如果行为策略是确定性的,这套方法基本用不了。 确定性的 π_b 在每个状态只选一个动作。那么任何在某个状态选别的动作的 π_e,都立刻违反覆盖。你能评估的只有 π_b 自己。 所以要让离线评估成为可能,产生数据的那个系统必须带一点随机性——不是因为随机更好,是因为随机是留下证据的方式。 这一条反过来也说明了 L05 到 L13 那些方法里 ε-贪心之类的做法,除了探索之外还有一个副产品:它让日志数据具备了事后评估的价值。 相反,一个被调到「最优」的确定性系统,它产生的数据对改进它自己几乎没有用。这是一个真实存在的两难:系统跑得越「干净」,越难从它的日志里学到怎么把它改得更好。
20 / 65
数据里看得到的?这一块有多大,不知道这是前提,不是修正项
指名反驳:无偏本身就依赖覆盖。前提破了,性质全没。
讲解
指名回去:「无偏就够了」这句话把因果搞反了。无偏不是一个独立的性质,它本身就建立在覆盖之上。前提破了,无偏和相合一起没了。 这是这一系列里反复出现的那个检查:定理失效时先看前提(L05 的压缩性、L08 的确定性最优策略、L10 的混合策略形状——都是同一个形状)。这里前提是覆盖。 再把这条和第一集连起来:覆盖失效是「拒绝部署」最该被触发的场合之一。如果一个候选策略大量走在 π_b 没去过的地方,正确的反应不是给一个宽一点的置信区间,是说「这个策略我评估不了」。 前提清楚了。下面四集全部在做同一件事:降方差。因为上一集那个估计量虽然无偏,方差却大到几乎没法用——而下一集会看到它有多大。
21 / 65

知识点 3 · 总结

覆盖:π_e 可能选的动作,π_b 也必须可能选

核心结论

π_b(a|s) > 0 whenever π_e(a|s) > 0。不满足时数据里一条相关轨迹都没有,贡献被记成 0,而真实贡献不是 0 —— 无偏与相合一起失效,数据再多也不会好转。

底层机制

比一般的偏差严重:缺口没有线索(看不到那些回报、不知道 π_e 有多大概率去那里、甚至不一定意识到缺了东西)。而且方向最坏 —— 越激进的新策略越容易违反覆盖。

常见误解

误解:「无偏就够了」。把因果搞反了 —— 无偏本身就建立在覆盖之上。

与你的考试

实践推论:行为策略必须是随机的,否则只能评估它自己。反过来 —— 系统跑得越「干净」(越确定性),越难从它的日志里学到怎么改进它。覆盖失效也是「拒绝部署」最该被触发的场合之一。

22 / 65

知识点 3 · 检验

覆盖条件不满足时,重要性采样估计量会怎样?

知识点 5

4 · 每步 IS:未来影响不了已经拿到的奖励

23 / 65
真值 0.9σ = 0.5102标准差,真值 0.9
估计量是无偏的。但标准差 0.51,而被估的量只有 0.9。
讲解
重要性采样是无偏的。但无偏只说平均而言对,没说单次有多准。 我在一个小问题上实测(时域 H=8,行为策略对两个动作各 0.5,评估策略 0.9/0.1,真值 0.9000,每批 200 条轨迹、跑 400 批): 普通 IS 的均值是 0.8848——确实接近真值。 但标准差是 0.5102。 抖动和被估的量同一个量级。拿一批数据算出来,你可能得到 0.4,也可能得到 1.4。 接下来四集全部在做同一件事:降方差。从最便宜的一级开始。
24 / 65
一条轨迹一个权重整条轨迹的概率比,乘上整条的回报
第 3 步拿到的奖励,不该被第 50 步的动作重新加权。
讲解
普通 IS 的做法是:算出整条轨迹的概率比,乘上整条轨迹的回报。 看上去天经地义。但仔细想一下时间顺序: 第 3 步拿到的那个奖励,是在第 3 步之前的动作决定的。第 50 步选了什么,对它毫无影响——因果关系不会倒流。 而普通 IS 把整条轨迹的权重(包括第 50 步那一项)乘到了第 3 步的奖励上。 那些因子对这个奖励来说是纯粹的噪声。它们的期望是 1(所以不引入偏差),但它们的波动照单全收地进了方差。 改法是显然的。
25 / 65
V^PDIS=1n∑j∑t(∏k≤tπe(ak|sk)πb(ak|sk))rt(j)
连乘只到 t 为止
每步 IS:第 t 个奖励只乘到第 t 步为止的那些比值。
讲解
每步重要性采样(per-decision IS):把权重截断在奖励发生的那一刻。 第 t 步拿到的奖励,只乘上第 0 到第 t 步的概率比连乘,不乘后面的。 为什么这样还是无偏的?因为被砍掉的那些因子的条件期望正好是 1:对任何一步,E_{a~π_b}[π_e(a|s)/π_b(a|s)] = Σ_a π_b(a|s)·π_e(a|s)/π_b(a|s) = Σ_a π_e(a|s) = 1。 乘一个期望为 1 且与奖励无关的量,不改变期望,但增加方差。去掉它,期望不变、方差下降。 这一步是纯赚的:没有引入任何偏差,没有需要调的参数,没有额外的假设。只是把一个本来就不该乘上去的东西去掉了。 (标一处:转录稿把这个叫 「weighted throughput decision」,实际是 weighted per-decision。)
26 / 65
真值 0.90.51020.1879缩到 37%标准差
标准差 0.5102 → 0.1879,缩到 37%。均方误差降 7.3 倍。
讲解
看什么:窄的那条画在宽的那条里面:0.5102 → 0.1879,宽度缩到 37%。而且注意这是白拿的 —— 没有引入偏差、没有调参、没有加假设,只是把「未来的权重」从「过去的奖励」上拿掉。 —— 实测同一组设定: 普通 IS:均值 0.8848,标准差 0.5102,均方误差 0.260540 每步 IS:均值 0.8870,标准差 0.1879,均方误差 0.035488 标准差缩到 37%,均方误差降 7.3 倍。 两点值得注意: 均值几乎没变(0.8848 → 0.8870,都在真值 0.9000 附近)——这印证了它仍然无偏。 降幅随时域增长:H=8 时降 7.3 倍;时域越长,被砍掉的多余因子越多,收益越大。 用数据量来说:要让普通 IS 达到每步 IS 的精度,大约需要七倍的数据。而这份数据是已经收集好的、拿不到更多的——在这个场景里,降方差就是变出数据来。 这就是讲座说的「阶梯每上一级省大约一个数量级」的第一级。
27 / 65
权重 τ →奖励 t ↓上三角:未来乘过去这一级是白拿的
指名反驳:未来的权重乘在过去的奖励上,纯粹是噪声。
讲解
指名回去:不该一条轨迹一个权重。第 t 步之后的那些概率比,对第 t 步的奖励是纯噪声——期望为 1,只贡献方差。 这一级在整条阶梯里是特殊的:它是白拿的。 没有引入偏差、没有需要调的超参数、没有额外的假设。只要你用 IS,就应该用每步 IS,没有任何理由不用。 后面几级就不是这样了:下一集那个要付偏差,再下一集那个要付额外的模型。阶梯越往上越好用,但也越需要判断。 先把免费的拿完,再去权衡要付代价的——这个次序在工程上通常是对的。 下一集上第二级。而它会做一件前面一直在回避的事:主动接受偏差。
28 / 65

知识点 4 · 总结

每步 IS:未来的权重不该乘在过去的奖励上

核心结论

第 t 步的奖励只乘到 t 为止的概率比。仍然无偏,因为被砍掉的每个因子条件期望正好是 1:Σ_a π_b·(π_e/π_b) = Σ_a π_e = 1。

底层机制

实测(H=8,200 条/批 × 400 批,真值 0.9000):标准差 0.5102 → 0.1879(缩到 37%),MSE 0.260540 → 0.035488(降 7.3 倍)。均值 0.8848 → 0.8870,仍在真值附近。

常见误解

误解:「一条轨迹一个权重」。第 50 步的动作影响不了第 3 步的奖励 —— 那些因子对它是纯噪声(期望为 1,只贡献方差)。

与你的考试

这一级是白拿的:没偏差、没参数、没额外假设。只要用 IS 就该用每步 IS。后面几级要付偏差或额外模型 —— 先拿完免费的,再权衡要付钱的。转录稿把它写成「weighted throughput decision」,实为 per-decision。

29 / 65

知识点 4 · 检验

每步 IS(per-decision IS)为什么在降方差的同时保持无偏?

知识点 6

5 · 加权 IS:有偏,但均方误差小一个数量级

30 / 65
V^WIS=∑jwjGj∑jwj
分母不是 n,是权重之和
加权 IS:把除以 n 换成除以权重之和。一个字的改动。
讲解
第二级的改动只有一处:换分母。 普通 IS 是「加权回报的和,除以 n」。加权 IS 是「加权回报的和,除以权重之和」——也叫自归一化。 为什么这会有用?因为权重之和本身是随机的,而且它和分子同向波动:这批数据的权重整体偏大时,分子偏大,分母也偏大,一部分抵消掉了。 代价是:这个估计量不再无偏。 这一集就是这个交换。
31 / 65
有偏的不能用无偏是估计量的基本要求
在数据固定的场合,无偏往往是最不值钱的那个性质。
讲解
「优先选无偏估计量」是一条很普遍的直觉,而且在很多场合是对的。 但在这一讲的场景里它很可疑,原因在于数据是固定的。 无偏说的是:如果你能反复重新收集数据、反复估计,那些估计的平均会等于真值。 而你不能。你只有这一份数据,只估一次。你真正关心的是这一次估得准不准,而衡量它的是均方误差——偏差的平方加方差。 一个偏差很小、方差小得多的估计量,均方误差可以低一个数量级。 下一镜量一下这个交换有多划算。
32 / 65
真值IS:正中但抖WIS:偏一点但窄失去的是无偏,不是相合
要分清丢的是哪一条:无偏没了,相合还在。
讲解
要把丢掉的东西说准,因为「有偏」听起来比实际严重。 失去的是无偏性:有限样本下,估计的期望不精确等于真值。 保住的是强相合性:数据量趋于无穷时,估计几乎必然收敛到真值。 这两条差别很大。一个有偏但相合的估计量,偏差会随数据增多而消失;而一个不相合的估计量,数据再多也停在错的地方(第三集覆盖失效就是那种情形)。 所以加权 IS 的偏差是会自己消退的那种。它换来的方差下降也不会随数据增多而消失——或者说,它在每一个数据量上都更好用。 这就是为什么这笔交换在实践中几乎总是划算的。下一镜给数。
33 / 65
真值 0.90.51020.18790.0540标准差,真值 0.9000
标准差 0.5102 → 0.1879 → 0.0540。每上一级大约缩到三分之一。
讲解
看什么:三条钟形曲线一条比一条窄:0.5102 → 0.1879 → 0.0540,每一级大约缩到前一级的三分之一。最窄那条只有最宽的 10.6% —— 而它是有偏的,偏差就藏在这个便宜里。 —— 把三级并排放(同一组设定,真值 0.9000): 普通 IS:均值 0.8848,标准差 0.5102,MSE 0.260540 每步 IS:均值 0.8870,标准差 0.1879,MSE 0.035488 加权 IS:均值 0.8759,标准差 0.0540,MSE 0.003492 三件事值得指出: 偏差看得见:加权 IS 的均值 0.8759 离真值 0.9000 有 0.024——比前两个都远。这就是它有偏的样子。 但 MSE 仍然低一个数量级:0.003492 对 0.035488,降 10.2 倍。偏差的平方是 0.00058,而方差降了 0.032——赚的比亏的多五十倍。 整条阶梯从头到尾:MSE 从 0.2605 到 0.0035,降 74.6 倍。也就是说,要让普通 IS 达到加权 IS 的精度,需要大约七十五倍的数据。 这就是讲座说的「每上一级省大约一个数量级的数据」,实测对得上。
34 / 65
ISWIS偏差² 0.00058方差降 0.032,净赚 55 倍
指名反驳:数据固定时该看的是均方误差,不是无偏。
讲解
指名回去:「有偏的不能用」在数据固定的场合站不住。 无偏描述的是「反复重新收集数据」时的平均行为,而你只有这一份数据、只估一次。该看的是均方误差。 把账算清楚:加权 IS 引入的偏差平方约 0.00058,换来的方差下降约 0.032——净赚约 55 倍。 这个判断方式在别处也管用,而它需要的只是一条正确的分解: MSE = 偏差² + 方差 按约定标一处:讲座把它说成了「偏差 + 方差」,漏了平方。这个差别在偏差小于 1 时会高估 MSE(偏差 0.5、方差 0.1 时:正确 0.35,说法给 0.60),在偏差大于 1 时会低估(偏差 2.0 时:正确 4.10,说法给 2.10)。方向随偏差大小翻转,所以它不是一个可以忽略的口误。 下一集上第三级。而那一级会用到一个前面几讲出现过的老朋友。
35 / 65

知识点 5 · 总结

加权 IS:有偏,但均方误差低一个数量级

核心结论

改动只有一处:分母从 n 换成权重之和(自归一化)。分子分母同向波动,抵消掉一部分。代价是失去无偏 —— 但保住强相合,偏差会随数据增多而消退。

底层机制

实测三级(真值 0.9000):标准差 0.5102 → 0.1879 → 0.0540;MSE 0.260540 → 0.035488 → 0.003492。全程降 74.6 倍 ≈ 省七十五倍的数据。

常见误解

误解:「有偏的不能用」。无偏描述的是反复重新收集数据时的平均行为;而你只有一份数据、只估一次 —— 该看均方误差。

与你的考试

算账:偏差² ≈ 0.00058,方差下降 ≈ 0.032,净赚约 55 倍。按约定标一处:讲座把 MSE 说成「偏差 + 方差」,正确是 偏差² + 方差 —— 偏差 <1 时高估、>1 时低估,方向会翻转。

36 / 65

知识点 5 · 检验

加权 IS(自归一化)失去了什么、保住了什么?

知识点 7

6 · 控制变量:讲座的判据漏了一个 2

37 / 65
Z=X−Y+E[Y]
期望不变方差可能变小
控制变量:减去一个你知道期望的量,再把那个期望加回来。
讲解
第三级叫控制变量(control variate),而它其实是一个老朋友。 做法:找一个和 X 相关、而且你知道它期望的量 Y,构造 Z = X − Y + E[Y] 期望显然不变:E[Z] = E[X] − E[Y] + E[Y] = E[X]。 方差呢?可能变小,也可能变大——取决于 X 和 Y 相关到什么程度。 认出这个形状了吗?这就是 L09 那个基线:从蒙特卡洛回报里减去一个值函数。讲座也是这么引入的:「我们可以像减基线那样做」。同一个技巧,第二次出现。
38 / 65
Cov(X,Y) > Var(Y) 才有用相关得够强才划算
漏了一个 2。正确的判据是 2Cov(X,Y) > Var(Y)。
讲解
什么时候这个替换真的降方差?讲座给的条件是「如果 X 和 Y 的协方差大于 Y 的方差」。 漏了一个因子 2。 推一遍就清楚了: Var(Z) = Var(X − Y) = Var(X) + Var(Y) − 2Cov(X,Y) 要 Var(Z) < Var(X),就是 Var(Y) − 2Cov(X,Y) < 0,也就是 2Cov(X,Y) > Var(Y) 那个 2 来自方差展开里的交叉项,它一直都在。 少了它的后果不是估计变错,而是判据变严——它会让你放过一整类真正有用的控制变量。下一镜造一个落在两条判据之间的例子。
39 / 65
Cov 0.6985Var(Y) 1.30192Cov 1.3969讲座的判据在这里就停了落在两条判据之间
造一个例子:Cov 没到 Var(Y),但 2·Cov 超过了。
讲解
看什么:数轴上三个刻度按顺序落下:Cov 0.6985 没够到中间那条 Var(Y) 1.3019,而 2·Cov 1.3969 越过去了 —— 两条判据的分歧就在这一段上。 —— 造一个例子,让它恰好落在两条判据之间。 实测(40 万个样本): Var(X) = 1.9945 Var(Y) = 1.3019 Cov(X,Y) = 0.6985 现在看两条判据怎么说: 讲座的判据:Cov > Var(Y)?0.6985 > 1.3019 —— 不成立,会判「别用」。 正确的判据:2Cov > Var(Y)?1.3969 > 1.3019 —— 成立,会判「该用」。 两条判据给出相反的结论。 哪条对?下一镜直接量。
40 / 65
1.99451.8995不用控制变量用了控制变量之后确实降了
实测 1.9945 → 1.8995:确实降了。正确判据赢。
讲解
看什么:右边那个点比左边低 —— 虽然只低一点点(1.9945 → 1.8995)。低得少正是因为这个例子被故意造在判据的边界附近;关键不在降了多少,在于它确实降了,而讲座的判据会判「别用」。 —— 直接量 Var(X − Y + E[Y]): 1.8995,而 Var(X) = 1.9945。 确实降了。正确判据说「该用」,而结果是该用。讲座那条判据会让你放弃这个控制变量。 降幅不大(约 4.8%),那是因为这个例子被故意造在边界附近——我要的就是一个能分开两条判据的例子。真实情形里相关性更强时,降幅会大得多。 关键不是降了多少,是方向:少那个 2,判据变严,于是一整类满足 Var(Y)/2 < Cov < Var(Y) 的控制变量会被误判为无用。 那么在 RL 里用什么当 Y?讲座给的答案是 Q 函数:可以来自一个近似的 MDP 模型,也可以直接来自 Q 学习。用一个估计出来的 Q 当控制变量——这就是下一集双重稳健估计量的来历。
41 / 65
Var(X−cY)=Var(X)−2cCov(X,Y)+c2Var(Y)
c=1这里才降少那个 2 = 判据变严
指名反驳:是 2Cov(X,Y) > Var(Y)。那个 2 来自方差展开的交叉项。
讲解
指名回去:条件是 2Cov(X,Y) > Var(Y),不是 Cov(X,Y) > Var(Y)。 那个 2 来自 Var(X−Y) 展开时的交叉项 −2Cov(X,Y),它一直都在。实测证实了:一个只满足正确判据的例子,方差确实从 1.9945 降到 1.8995。 这处笔误的方向值得注意——它让判据更严,所以它不会让你用错一个控制变量,只会让你白白放弃一些能用的。偏保守的那一侧,和 L10 那个 Pinsker 少 ½ 是同一个方向。 再把这条和 L09 连起来:基线和控制变量是同一件事。L09 里减去一个基线降低策略梯度的方差,这里减去一个 Q 函数降低 IS 的方差——同一个恒等式,两个场合。 而这里比 L09 多一步:L09 的基线只能依赖状态(依赖动作会引入偏差);这里的 Y 可以依赖动作,因为我们把 E[Y] 显式加了回去。 下一集把 Q 真的放进去。
42 / 65

知识点 6 · 总结

控制变量:讲座的判据漏了一个 2

核心结论

Z = X − Y + E[Y],期望不变。Var(Z) = Var(X) + Var(Y) − 2Cov(X,Y),所以降方差的条件是 2Cov(X,Y) > Var(Y) —— 那个 2 来自方差展开的交叉项。

底层机制

造一个落在两条判据之间的例子:Var(X)=1.9945、Var(Y)=1.3019、Cov=0.6985。讲座判据判「别用」,正确判据判「该用」;实测 Var(Z)=1.8995,确实降了。

常见误解

误解:「Cov(X,Y) > Var(Y) 才有用」。少那个 2 让判据变严 —— 不会让你用错,只会让你白白放弃一整类能用的控制变量(偏保守一侧,同 L10 的 Pinsker 少 ½)。

与你的考试

这就是 L09 的基线,第二次出现。差别:L09 的基线只能依赖状态(依赖动作会引入偏差),这里的 Y 可以依赖动作,因为 E[Y] 被显式加了回去。RL 里 Y 通常取 Q 函数 —— 这就是下一集双重稳健的来历。

43 / 65

知识点 6 · 检验

控制变量 Z = X − Y + E[Y] 什么时候真的降低方差?

知识点 8

7 · 双重稳健与 MAGIC:MSE 是偏差的平方加方差

44 / 65
模型权重对错对错✓✓✓✗四格里三格仍然相合两条腿,断一条还站得住
把 Q 当控制变量,得到双重稳健:两个来源错一个仍然相合。
讲解
把上一集那个控制变量里的 Y 换成一个估计出来的 Q 函数,得到的估计量叫双重稳健(doubly robust)。 名字来自它的性质。这个估计量依赖两样可能出错的东西: 一、那个 Q 模型(可能拟合得很差)。 二、行为策略 π_b(如果是估出来的,可能估错)。 而只要这两个里有一个是对的,估计量就仍然相合。 两条腿,断一条还站得住。这在实践中价值很大,因为这两个来源的误差通常是独立的——模型拟合差不一定意味着行为策略估得差。 这一集还要处理阶梯的最后一级,以及一个会影响你怎么做选择的口误。
45 / 65
MSE = 偏差 + 方差经典分解,记住了
是偏差的平方加方差。而这个差别会改变你的选择。
讲解
讲座在讲 MAGIC 的时候说 MSE 是「偏差加方差」。 正确的是:MSE = 偏差² + 方差。 这不是一个可以忽略的口误,因为 MAGIC 这个估计量就是靠最小化 MSE 的估计值来做选择的。用错公式,选出来的混合比例就不对。 差多少,而且差的方向会翻转: 偏差 0.5、方差 0.1 → 正确 0.35,说法给 0.60(高估 1.7 倍)。 偏差 2.0、方差 0.1 → 正确 4.10,说法给 2.10(低估,只有一半)。 分界线在偏差 = 1。偏差小于 1 时平方让它变小,说法会高估;大于 1 时平方让它变大,说法会低估。 而在这一讲的语境里,偏差通常远小于 1(上一集加权 IS 的偏差是 0.024)——所以错误的公式会系统性地高估有偏估计量的 MSE,于是系统性地偏向低偏差、高方差的那一端。正好选反了方向。
46 / 65
MSE=Bias2+Var
偏差 0.5 方差 0.10.35,不是 0.60
修好公式,才能谈 MAGIC —— 因为 MAGIC 就是在最小化它。
讲解
把公式修好,才能讲这一级阶梯。 MAGIC 要做的事很直接:前面几级给了若干个估计量(纯模型的、纯 IS 的、以及各种混合),哪一个最好取决于具体的数据——时域长、覆盖差的时候模型那一端更稳;数据多、覆盖好的时候 IS 那一端更准。 MAGIC 不预先选,它直接估计每种混合的 MSE,然后挑估计 MSE 最小的那个。 但这里有一个实际困难:要估 MSE,得知道偏差,而偏差需要知道真值——恰恰是你要估的东西。 MAGIC 的解法很巧,下一镜。
47 / 65
IS 的置信区间模型的估计偏差至少这么多用抖的那个去量准的那个
MAGIC 的巧处:用 IS 的置信区间,给模型的偏差算一个下界。
讲解
MAGIC 怎么在不知道真值的情况下估偏差? 用 IS 的置信区间。 推理是这样的:IS 是无偏的,所以它的置信区间以高概率框住真值。现在看基于模型的那个估计值: 如果它落在这个区间内,那它的偏差可能很小,说不出什么。 如果它落在区间外面,那它离真值至少有「它到区间边界」那么远——这是一个可以算出来的偏差下界。 用一个方差大但无偏的估计量,去量一个方差小但有偏的估计量的偏差。两者的长处正好互补:IS 的无偏性提供了参照系,模型提供了精度。 有了偏差下界和方差估计,MSE 的估计就有了,然后直接挑最小的。 讲座给的实测结论是:在 gridworld 上,阶梯每上一级大约省一个数量级的数据。我在自己那个小问题上量到的是:每步 IS 降 7.3 倍,加权 IS 再降 10.2 倍——对得上。
48 / 65
偏差²+方差偏差+方差0.350.60偏差 0.5,方差 0.1
指名反驳:偏差的平方加方差。用错会系统性地选错方向。
讲解
看什么:右边那根高出七成。偏差 0.5、方差 0.1 时,正确的 MSE 是 0.35,而「偏差+方差」给 0.60。偏差小于 1 时这个说法总是高估,于是会系统性地嫌弃有偏估计量 —— 而这一讲里有偏的那些恰恰更好用。 —— 指名回去:MSE = 偏差² + 方差。 这一处不是咬文嚼字,因为 MAGIC 就是靠这个量做选择的。用「偏差 + 方差」去比较,会得出不同的选择。 而且方向是系统性的:这一讲里所有估计量的偏差都远小于 1(加权 IS 是 0.024),在这个区间里平方让偏差项几乎消失——正确公式下 0.024² = 0.00058,几乎可以忽略;而错误公式下 0.024 要和方差直接相加,被放大了四十倍。 于是错误的公式会让你系统性地偏向无偏但高方差的那一端——正好是这一讲一路在论证不该选的那一端。 阶梯到此为止。整条梯子是:普通 IS → 每步 IS → 加权 IS → 控制变量 → 双重稳健 → 加权双重稳健 → MAGIC。 但这些全是点估计。而第一集那个目标要的是概率保证,也就是一个下界。 下一集做那件事。而它会以一个我在整门课里见过的最戏剧性的失败开场。
49 / 65

知识点 7 · 总结

双重稳健与 MAGIC:MSE 是偏差的平方加方差

核心结论

双重稳健:用估计的 Q 当控制变量。依赖两个可能出错的来源(Q 模型、π_b),只要有一个是对的就仍然相合 —— 两条腿断一条还站得住。

底层机制

MAGIC 的巧处:用 IS(无偏)的置信区间去量模型(有偏)的偏差 —— 模型估计落在区间外多远,就是偏差的一个可算的下界。拿抖的量准的。

常见误解

误解:「MSE = 偏差 + 方差」。正确是 偏差² + 方差。偏差 0.5、方差 0.1 → 正确 0.35,说法给 0.60;偏差 2.0 时正确 4.10、说法给 2.10 —— 方向在偏差=1 处翻转。

与你的考试

这处口误有系统性后果:本讲的偏差都远小于 1(加权 IS 是 0.024),平方后几乎消失(0.00058);用「偏差+方差」会把它放大四十倍,于是系统性偏向无偏高方差的那一端 —— 正是这一讲一路论证不该选的那端。

50 / 65

知识点 7 · 检验

MAGIC 在不知道真值的情况下,怎么估计基于模型的估计量的偏差?

知识点 9

8 · Hoeffding 配 IS 是灾难:界给出 −5 百万

51 / 65
点估计有了第一集要的是概率保证也就是一个下界
阶梯给的全是点估计。而目标要的是 P(...) ≥ 1−δ。
讲解
前面六集造出了一整条降方差的阶梯,但它们给的全是点估计——一个数,没有保证。 而第一集那个目标要的是 P( V^{A(D)} ≥ V^{π_b} ) ≥ 1 − δ,是一个概率陈述。要做到它,需要的是 V^{π_e} 的一个下置信界。 这看上去是个例行公事:有了估计量,套一个浓度不等式就行了。L11 到 L13 一路都是这么做的。 而这一次会出大问题。
52 / 65
套个 Hoeffding 就行前面几讲都是这么干的
在 mountain car 上,十万条轨迹给出的下界是 −5 百万。
讲解
最自然的做法:IS 估计量是若干条轨迹的加权回报的平均,那就用 Hoeffding 给它一个下界。 讲座真的做了这件事,用的是 mountain car,十万条轨迹。 评估策略的真实值是 0.19。所有回报都落在 [0, 1] 里——这一点我们知道。 Hoeffding 给出的下界是: −5,000,000。 讲座当时的反应是笑出来的:「0.19 确实大于 −5 百万嘛。」 这个界完全正确。它也完全没用。下一镜看它是怎么变成这样的。
53 / 65
V^−bln⁡(1/δ)2n
b 是取值范围整个问题在这一个字母上
Hoeffding 的界依赖随机变量的取值范围 b。问题全在这里。
讲解
Hoeffding 的单侧下界是:估计值 减去 b·√(ln(1/δ)/(2n)),其中 b 是随机变量的取值范围。 L11 用它的时候,被平均的是老虎机的奖励,范围是 [0,1],b = 1,一切正常。 这里被平均的是什么?是加权回报——回报乘上那个概率比的连乘。 回报确实在 [0,1] 里。但权重不是。 上一集那些权重是 ∏_t π_e/π_b。如果 π_b 在某个动作上只给 0.1 的概率,而 π_e 给接近 1,那每一步贡献一个 10 倍的因子。 而 mountain car 的一条轨迹大约 200 步。 (顺带标一处:讲座把 Hoeffding 写成「减去 b 乘 √(1/n)」,漏掉了 ln(1/δ) 和那个 2。式子的形状对,但 δ 依赖没写出来。)
54 / 65
1010¹⁰10⁵⁰10²⁰⁰纵轴是 10 的指数L(时域长度)权重的理论上界
权重随时域指数增长:π_b≈0.1 时是 10^L。L=200 就是 10²⁰⁰。
讲解
把权重的量级算出来。π_b ≈ 0.1、π_e ≈ 1 时,每一步贡献约 10 倍: L=1 → 10 L=10 → 10¹⁰ L=50 → 10⁵⁰ L=200 → 10²⁰⁰ 可观测宇宙里的原子数大约是 10⁸⁰。 这就是 b。Hoeffding 拿这个数乘上 √(ln(1/δ)/(2n)),不管 n 多大都救不回来——n 在根号里,而 b 是指数的。 我反推了一下讲座图里实际用的 b:要让十万条轨迹给出 −5×10⁶ 的界,需要 b ≈ 1.3×10⁹(δ=0.05 时;δ 取 0.01 或 0.1 都是同一量级)。 所以图里用的不是理论最坏值 10²⁰⁰,而是某个实际观测到的最大加权回报——已经是「温和」的版本了,仍然给出 −5 百万。 这是整门课里最有教育意义的一次失败:一个完全正确的定理,用在一个前提被极端拉伸的地方,给出一个完全无用的结论。
55 / 65
真值 ≈ 1界给出 −5 百万这段全是 b 撑出来的正确 ≠ 有用
指名反驳:Hoeffding 没错。它依赖的那个范围,被时域指数放大了。
讲解
指名回去:不是 Hoeffding 错了,是它依赖的取值范围在这个问题里被指数放大了。 把这个教训的形状记清楚,因为它比这个具体例子普遍得多: 浓度不等式的界依赖某个「规模」参数(Hoeffding 是取值范围,Bernstein 是方差,等等)。当这个参数很大时,界会失效——不是失效成「错」,是失效成「没信息」。 这和 L10 第七集、L12 第八集是同一个形状的第三次出现: L10:理论常数 C 在 γ=0.99 时是 39600ε,按它走步子几乎为零。 L12:Even-Dar & Mansour 的初始化含 10^T 的因子。 L15:Hoeffding 的 b 含 10^L 的因子。 三次都是「定理正确,常数大到没法用」。而三次的出路也相似:放弃那个理论上的最坏值,换一个只朝安全方向偏的近似。 下一集就是这个出路,而它简单得让人有点吃惊。
56 / 65

知识点 8 · 总结

Hoeffding 配 IS 是灾难:十万条轨迹给出 −5 百万

核心结论

Hoeffding 的下界 V̂ − b·√(ln(1/δ)/(2n)) 依赖取值范围 b。被平均的是加权回报,而权重 ∏π_e/π_b 随时域指数增长:π_b≈0.1 时是 10^L,mountain car 的 L≈200 → 10²⁰⁰。

底层机制

实测:真值 0.19、回报全在 [0,1]、十万条轨迹 → 下界 −5,000,000。反推图里实际用的 b ≈ 1.3×10⁹(已经不是理论最坏值 10²⁰⁰,仍然如此)。

常见误解

误解:「套个 Hoeffding 就行」。界完全正确,也完全没用。n 在根号里,而 b 是指数的 —— 加数据救不回来。

与你的考试

同一形状的第三次出现:L10 的 C=39600ε、L12 的 10^T 初始化、L15 的 10^L 范围。定理正确,常数大到没法用。三次的出路也相似:放弃理论最坏值,换一个只朝安全方向偏的近似。(讲座把 Hoeffding 写成「b·√(1/n)」,漏了 ln(1/δ) 和 2。)

57 / 65

知识点 8 · 检验

为什么把 Hoeffding 直接用在 IS 估计量上会给出 −5 百万这样的界?

知识点 10

9 · 截尾修复:只压低不抬高,所以界还成立

58 / 65
少数几条轨迹权重极大b 就是被它们撑起来的那就把它们扔掉
修法朴素得让人吃惊:把加权回报最极端的上尾扔掉。
讲解
Phil Thomas 的修法很朴素。 观察是这样的:那个巨大的 b,是被极少数几条权重极大的轨迹撑起来的。绝大多数轨迹的加权回报都很正常。 那就把最极端的那部分上尾扔掉。 第一反应通常是:这不行吧?扔数据会让估计有偏,界不就失效了吗? 恰恰相反。而理由只有一句话,下一镜。 (标一处:转录稿把 Phil 写成了「Bill and I」。这是 Phil Thomas 的工作。)
59 / 65
扔数据会让界失效改动了估计量,保证就没了
扔掉上尾只会让估计变低。而下界变低仍然是下界。
讲解
这个担心对点估计是对的:扔掉高值会让估计系统性偏低。 但我们要的不是点估计,是下界。 关键在于扔的是哪一侧:扔掉的是上尾——那些值最大的加权回报。去掉它们,估计值只会变低,绝不会变高。 于是: 原来的下界 ≤ 真值(Hoeffding 保证的)。 新的估计 ≤ 原来的估计(扔掉了高值)。 所以新的下界仍然 ≤ 真值。 界仍然有效。 而好处是:b 从「最极端的加权回报」变成了「截断阈值」,一下子小了很多个数量级。 朝安全方向偏的近似,可以免费使用。这是一个很值得记住的模式——它和 L07 第四集里「宁可高估代价」的处理是同一个形状。
60 / 65
历史数据训练 20%测试 80%候选策略安全测试两份不能互相偷看阈值不能用算界的那份数据调
阈值怎么定:拿一部分数据专门调它,剩下的用来算界。
讲解
截断阈值定在哪里?太高了 b 还是大,太低了扔掉太多、估计被压得太低。 讲座的做法:拿出 20% 的数据专门用来调这个阈值,剩下 80% 用来算最终的界。 这两份数据必须分开,理由是标准的:如果用同一份数据既调阈值又算界,那个「以概率 1−δ 成立」的保证就不成立了——你已经用这份数据做过一次选择,等于偷看了答案。 讲座还提到阈值的选择应该依赖数据量:数据越多,可以越激进地保留上尾(因为 √n 那一项在帮你)。 这一步在工程上很典型:一个保守的近似,加一个用留出数据调的参数。保守性保证正确,调参保证有用。
61 / 65
真值0.19新界0.145原来的界 −5,000,000同样十万条轨迹
同样的数据,界从 −5,000,000 变成 0.145,真值 0.19。
讲解
看什么:轴上两个点挨得很近:新的下界 0.145 和真值 0.19 —— 界终于紧到有用了。而上一集同样这十万条轨迹给出的是 −5,000,000,那个数在这条轴上只能用一个向左的箭头表示。 —— 结果。同样是 mountain car,同样十万条轨迹: 旧的界:−5,000,000 新的界:0.145 真值:0.19 从一个负七位数,变成一个只比真值低 24% 的下界。 而数据一条没多。换的只是「怎么用这些数据构造那个界」。 讲座还给了一个对照:其它几种浓度不等式(Chernoff-Hoeffding 之类)全都很糟,只有 Anderson 那个例外。 这一镜是整个第二层的落点,也是这一讲最漂亮的结果:正确不等于有用;而让一个正确的界变有用,有时只需要一个只朝安全方向偏的近似。
62 / 65
截尾线只往下压所以下界仍然成立回路闭合,问题还在
指名反驳:扔上尾只压低不抬高,所以下界仍然成立。
讲解
指名回去:扔掉上尾不会让下界失效,因为它只会把估计压低,而一个被压低的下界仍然是下界。 现在把三层机器接上,回路就闭合了: 搜索若干候选策略 → 对每个候选算下置信界(第二层)→ 只在某个候选的下界超过现任的值时才部署,否则什么也不改(第一集那条)。 整套东西给出的保证,就是第一集那行式子。 讲座提到的实际应用有三处:和 Adobe 合作的数字营销、一个糖尿病/胰岛素模拟器、以及智能辅导系统。 最后照录讲座列的开放问题,因为它们标出了这套方法今天的边界: 长时域——权重的指数增长是根本困难,截尾只是缓解。 IS 的「不公平」——离 π_b 越远的候选策略,界越松,于是系统性地不利于差异大的策略,而那些往往正是改进最大的。 行为策略未知——第二集那个假设在真实数据上经常不成立。 非平稳——旧数据里的世界和现在的世界不是同一个。 迁移——一个场景学到的东西能不能用到另一个。 这五条里有三条(长时域、不公平、行为策略未知)是这一讲的方法自己带来的。这不是缺陷清单,是一套刚好够用的工具在诚实地标出它的适用范围。
63 / 65

知识点 9 · 总结

截尾修复:只压低不抬高,所以下界仍然成立

核心结论

巨大的 b 是被极少数权重极大的轨迹撑起来的。扔掉加权回报的上尾 ⟹ 估计只会变低 ⟹ 下界仍然是下界。而 b 从「最极端的加权回报」降成「截断阈值」。

底层机制

同样十万条轨迹:界从 −5,000,000 变成 0.145,真值 0.19。数据一条没多,换的只是怎么构造那个界。

常见误解

误解:「扔数据会让界失效」。对点估计是对的,对下界不是 —— 关键在扔的是哪一侧。朝安全方向偏的近似可以免费使用。

与你的考试

阈值用20% 的留出数据调,剩下 80% 算界 —— 两份必须分开,否则 1−δ 的保证不成立。完整回路:搜候选 → 算下界 → 超过现任才部署,否则不动。开放问题:长时域、IS 对差异大的策略不公平、行为策略未知、非平稳、迁移。

64 / 65

知识点 9 · 检验

为什么「扔掉加权回报的上尾」不会让下置信界失效?

知识点 11

完

65 / 65
讲解
回头看这九集,承重的是四件事。 第一,重要性采样之所以能用,是因为环境的因子全部约掉了。初始状态分布、转移、奖励——同一条轨迹在两个策略下,这些因子完全相同,相除就没了。剩下的只有动作概率的比值连乘。这带来一个经常被忽略的好处:整个推导不需要马尔可夫假设。因子约掉这件事,不管环境依赖上一个状态还是依赖整段历史,都一样成立。 第二,降方差的阶梯每上一级省大约一个数量级。我在一个 H=8 的小问题上实测(每批 200 条轨迹、400 批、真值 0.9000):普通 IS 的均方误差 0.2605,每步 IS 0.0355(降 7.3 倍),加权 IS 0.0035(再降 10.2 倍)。而加权 IS 的均值是 0.8759——它是有偏的,偏差看得见。用一点偏差换两个数量级的方差,在数据固定的场合几乎总是划算的。 第三,Hoeffding 配 IS 的失败是这一讲最有教育意义的一段。Hoeffding 的界依赖随机变量的取值范围,而 IS 的加权回报的范围随时域指数增长——π_b≈0.1、L≈200 时理论上界是 10²⁰⁰。于是十万条轨迹给出的下界是 −5 百万。这个界完全正确(0.19 确实大于 −5 百万),而且完全没用。Phil Thomas 的修法很朴素:把加权回报最极端的那部分上尾扔掉。扔掉只会让估计变低,所以下界仍然有效;而界一下子变成了 0.145,对着真值 0.19。正确不等于有用,而让一个界变有用,有时只需要一个只朝安全方向偏的近似。 第四,「拒绝部署」是这套方法的核心功能,不是它的缺陷。安全策略改进的完整回路是:搜索候选策略、算它们的下置信界、只在某个候选的下界超过现任时才部署。数据不够、或者候选确实不够好,算法就什么也不输出。在教育和医疗这类场合,一个会说「我不知道」的算法,比一个总是给答案的算法有用得多。 这一讲的记号问题也归个类:行为策略被叫作 π_b / π_1 / π_2(学生问过,Brunskill 确认 π_b 就是 π_2);一般化的 IS 推导里 p 是采样分布、q 是目标分布,和统计学的通常约定正好相反;控制变量的条件漏了一个因子 2;MSE 被说成「偏差加方差」,正确是偏差的平方加方差。 讲座结尾列的开放问题也照录:长时域、IS 对不同候选策略的「不公平」、行为策略未知、非平稳、以及迁移。