第 12 讲:采集函数与 Thompson 采样

Machine Learning from Human Preferences · Lecture 12。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应:Stanford CS329H Fall 2026 Lecture 12(11/2 Acquisition functions & Thompson sampling)。依据教材第 3 章 3.3–3.4 节及相应幻灯片;Thompson 采样依据 Thompson(1933)、Chapelle & Li(2011)、Agrawal & Goyal(2012、2013)与 Russo 等(2018)的教程;情境老虎机依据 Li 等(2010)、Bastani & Bayati(2020)、Bastani、Bayati、Khosravi(2021);贝叶斯优化依据 Jones 等(1998)、Srinivas 等(2010)与 Garnett(2023)。 配套代码:code/lecture12/(只需要 numpy) 预计阅读时间:3 小时(含运行代码)


0. 本讲导航

0.1 学完本讲,你应该能够

  1. 写出 Beta–伯努利的 Thompson 采样,解释”概率匹配”,说出它和 UCB 的异同。
  2. 说出 Thompson 采样、KL-UCB 为什么能达到 Lai–Robbins 下界,以及 Thompson 采样在批量 / 延迟反馈下为什么更稳健。
  3. 把 Thompson 采样推广到有特征的问题:线性模型(精确后验)、逻辑斯蒂模型(拉普拉斯近似);说出 LinUCB 的指数。
  4. 解释为什么在特征多样的情境老虎机里贪心常常表现不错,以及它为什么会系统性地亏待少数群体。
  5. 写出改进概率(PI)、期望改进(EI)、GP-UCB 的公式,解释 PI 为什么太贪心、ξ 的作用。
  6. 说出几种采集函数在什么情况下适合,以及 Thompson 采样的局限(短期探索成本、纯探索问题)。

0.2 先修知识

知识点用在哪里最低要求
第 11 讲全部遗憾、UCB、Lai–Robbins 下界
第 6 讲第 2、4、5 节共轭先验(练习 1:Beta–伯努利)、拉普拉斯近似、高斯过程
概率全部正态分布、Beta 分布

0.3 本讲地图

第1节  从“乐观”到“后验”
第2节  Thompson 采样:概率匹配                        ← 代码 01 演示 1
第3节  遗憾与批量反馈                                  ← 代码 01 演示 2、3
第4节  有特征的老虎机:剂量与冷启动                     ← 代码 02、04
第5节  连续的选项:贝叶斯优化与采集函数                  ← 代码 03
第6–10节 小结、与考核的关系、练习、延伸阅读、下一讲预告

0.4 关于数字

本讲的数字都来自配套代码的实际运行(随机种子固定,每个文件不超过 20 秒)。代码 02 用的是模拟数据(仿照华法林剂量问题的设定),不是真实病人数据。


1. 从”乐观”到”后验”

第 11 讲的 UCB 用”置信上界”处理不确定性:对每个选项乐观地估计,选最乐观的那个。它需要设计”置信半径”(Hoeffding、KL……),并且是确定性的。

贝叶斯的思路更直接:我们对每个选项的价值有一个后验分布(第 6 讲)。不确定性已经完整地写在后验里了,问题只是”怎样根据后验做决定”。

  • 只用后验均值(贪心):忽略了不确定性,会卡住(第 11 讲第 5.3 节)。
  • Thompson 采样:从后验里抽一个样本——“一种可能的世界”——在那个世界里选最好的行动。

这个想法来自 Thompson(1933),他关心的是临床试验:两种疗法,怎样在试验的同时尽量让病人接受更好的那种。它沉寂了几十年,直到 Chapelle & Li(2011)在雅虎的广告和新闻推荐上发现它效果极好,随后 Agrawal & Goyal(2012)、Kaufmann 等(2012)证明了它的理论最优性。今天它是工业界最常用的老虎机算法之一,也是第 10 讲”双 Thompson 采样”的基础。


2. Thompson 采样:概率匹配

2.1 Beta–伯努利

每个臂的奖励是 0/1,未知的成功率 θk\theta_k。先验 θk∼Beta(a,b)\theta_k \sim \text{Beta}(a, b)(例如 a=b=1a = b = 1 的均匀分布)。观察到 sks_k 次成功、fkf_k 次失败后,后验是 Beta(a+sk,b+fk)\text{Beta}(a + s_k, b + f_k)(共轭,第 6 讲练习 1)。

Thompson 采样的每一步:

  1. 对每个臂抽一个 θ~k∼Beta(a+sk,b+fk)\tilde\theta_k \sim \text{Beta}(a + s_k, b + f_k);
  2. 选 θ~k\tilde\theta_k 最大的臂;
  3. 观察奖励,更新那个臂的 sks_k 或 fkf_k。

整个算法只有一行(rng.beta),没有需要调的常数。

2.2 概率匹配

选臂 kk 的概率 = 后验认为臂 kk 是最好的概率。 因为”抽到的样本里 kk 最大”这个事件的概率,正是 P(θk=max⁡jθj∣数据)P(\theta_k = \max_j\theta_j \mid \text{数据})(练习 2)。

代码 01_thompson_bernoulli.py 演示 1:三个臂的数据是 A 6/10、B 3/4、C 20/40。

臂后验均值P(它是最好的)UCB1 指数KL-UCB 指数
A0.5830.3041.4930.923
B0.6670.6212.1620.998
C0.5000.0760.9470.713

贪心、UCB1、KL-UCB 都选 B,而且每次都选 B。Thompson 采样以 0.62 的概率选 B、0.30 选 A、0.08 选 C。B 只试了 4 次:它可能很好,也可能只是运气;Thompson 采样按”它真的是最好的概率”分配机会。C 试了 40 次、平均只有 0.5,不太可能是最好的,但仍有约 8% 的机会被再试一试。

为什么概率匹配是好的探索? 一个臂被试的频率,和”它有可能是最好的”成比例:几乎不可能是最好的臂,很快就很少被试(不浪费);还有可能是最好的臂,会被试到足够确定为止(不错过)。直觉上,这和 UCB 的”乐观”相似——Thompson 采样是”平均意义上的乐观”:抽到的样本有时高于均值、有时低于,最大的那个往往来自不确定性大的臂。


3. 遗憾与批量反馈

3.1 遗憾

演示 2(每种算法 100 次实验、每次 2 万步):

容易的问题(5 个臂,0.3~0.7;Lai–Robbins 系数 9.46):

算法T = 10001000020000遗憾 / ln T最后 10% 选中最好的
ε-贪心(ε = 0.1)46.9237.8438.344.260.919
UCB182.1234.6286.928.970.974
KL-UCB35.166.876.67.740.994
Thompson 采样26.642.047.44.780.997

难的问题(10 个臂,最好的 0.5、其余 0.45):Thompson 采样 273.9、ε-贪心 272.3、KL-UCB 460.0、UCB1 723.6;最后 10% 选中最好臂的比例 Thompson 最高(0.919)。

  • Thompson 采样和 KL-UCB 的遗憾最小。两者都在渐近意义上达到 Lai–Robbins 下界(Agrawal & Goyal 2012;Kaufmann 等 2012;Garivier & Cappé 2011)。这里的”遗憾 / ln T”甚至低于系数——下界是 T→∞T \to \infty 的结论(第 11 讲)。
  • KL-UCB 用伯努利分布真正的”距离”(KL 散度)定置信区间:满足 nk KL(μ^k,q)≤ln⁡tn_k\,\mathrm{KL}(\hat\mu_k, q) \le \ln t 的最大的 qq。成功率接近 0 或 1 时,它的区间比 Hoeffding 窄得多。

3.2 批量 / 延迟反馈

真实系统里,反馈常常成批到来:推荐模型每小时才更新一次;标注团队一次交回几百条偏好(第 10 讲)。演示 3:奖励每 BB 步才能看到一次,容易的问题、1 万步:

算法B = 120100500
UCB1228.8245.2275.4493.6
KL-UCB65.776.7126.4171.7
Thompson 采样44.446.250.8114.1

UCB 类算法是确定性的:一批之内信息不变,它就把整批都押在同一个臂上。Thompson 采样每一步重新抽样,一批之内自然地分散到几个”可能最好”的臂上。B = 100 时,KL-UCB 的遗憾几乎翻倍(65.7 → 126.4),Thompson 采样只增加约 14%(44.4 → 50.8);B = 500 时所有算法都明显变差(1 万步只做 20 次”带新信息的决定”),Thompson 采样仍然最低。(UCB1 的相对增幅不大,是因为它本来就探索过多。)Chapelle & Li(2011)特别强调了 Thompson 采样对延迟的稳健性。这和第 10 讲”批量主动学习要多样”是同一个问题。

3.3 局限

  • 需要后验:伯努利、线性高斯有共轭后验;复杂模型(神经网络)只能近似(拉普拉斯、集成、epinet——第 6、10 讲)。后验近似得不好,Thompson 采样会探索得太多或太少。
  • 短期内可能探索过度:时间很短时,前期探索的代价来不及收回(第 4.3 节的冷启动)。
  • 不适合纯探索:如果目标是”尽快确定哪个最好”(最佳臂识别、A/B 测试的结论),Thompson 采样会过早地把几乎所有样本给当前最好的臂,第二名的估计永远不够准。“前二 Thompson 采样”(Russo 2016)等变体修正了这一点。第 13 讲的对决老虎机会遇到同样的问题。
  • 信息导向采样(Russo & Van Roy 2014):显式地权衡”这一步的遗憾”和”这一步获得的信息”,在一些 Thompson 采样表现不好的问题上更好。

4. 有特征的老虎机:剂量与冷启动

4.1 情境老虎机

很多问题里,每次决策都有情境(context):病人的特征、用户的特征、提示词。最好的行动依赖于情境——给这个病人什么剂量,给这个用户推荐什么。情境老虎机:每一步观察情境 xtx_t,选行动 ata_t,得到奖励 rt∼P(r∣xt,at)r_t \sim P(r \mid x_t, a_t)。遗憾和”知道真实模型时、对每个情境都选最好行动”的策略比。

常用的模型和算法:

模型后验算法
线性:E[r]=x⊤θaE[r] = x^\top\theta_a精确的正态后验LinUCB(Li 等 2010):选 x⊤θ^a+αx⊤Σaxx^\top\hat\theta_a + \alpha\sqrt{x^\top\Sigma_a x} 最大的;线性 Thompson 采样(Agrawal & Goyal 2013)
逻辑斯蒂:P(r=1)=σ(x⊤wa)P(r = 1) = \sigma(x^\top w_a)拉普拉斯近似 N(w^a,Σa)N(\hat w_a, \Sigma_a)Thompson 采样(Chapelle & Li 2011)、UCB(在 logit 上加不确定性)

4.2 个性化剂量(模拟的华法林问题)

华法林是常用的抗凝药,合适的剂量因人而异,和年龄、体重、两个基因(VKORC1、CYP2C9)、是否服用胺碘酮有关(IWPC 2009 给出了剂量公式)。Bastani & Bayati(2020)把它做成情境老虎机:病人一个个来,从”低 / 中 / 高”三档剂量(每周 < 21 mg、21~49、> 49)里选一档,选对得 1 分。

代码 02_logistic_thompson.py 用模拟数据仿照这个设定(需要低 / 中 / 高剂量的病人约 21% / 69% / 10%;同样特征的病人也有个体差异,所以知道真实模型的”最优个性化策略”最多选对 80.5%)。每个剂量一个逻辑斯蒂回归,拉普拉斯近似,每 10 个病人重新拟合。10 次实验、每次 5000 个病人:

算法第 1~200 个201~10001001~30003001~5000累计遗憾
固定中剂量0.6840.6920.6880.682603.7
贪心0.6800.7550.7660.762236.9
ε-贪心(ε = 0.1)0.6580.7080.7250.722440.7
UCB0.6810.7600.7750.771196.2
Thompson 采样0.6220.7460.7660.766247.0
最优的个性化策略0.8030.8070.8090.8040

(表中是选对率;累计遗憾 = 5000 个病人里比最优策略少选对的人数。)

三个发现:

  1. 贪心的整体表现出人意料地好,和 UCB、Thompson 采样相差不大。病人的特征千差万别,每来一个新病人,贪心的”最好猜测”自然落在不同的地方——特征的多样性本身提供了探索。Bastani、Bayati、Khosravi(2021)证明了这个现象:“几乎不需要探索”的情境老虎机。
  2. 所有学习算法都停在最优策略以下:中剂量只在”不高不低”时对,“选中剂量对不对”和特征的关系不是单调的,线性 logit 表示不了——模型设定错误给学习设了上限。
  3. 少数病人被系统性地亏待。只看第 3001~5000 个病人里”最优策略会给高剂量”的那些(约 7%):
算法给了低给了中给了高
贪心0.000.950.05
ε-贪心0.030.860.12
UCB0.000.780.22
Thompson 采样0.000.850.15

贪心几乎从不给高剂量:一开始”高剂量”的模型数据很少、预测很悲观,贪心就不选它;不选它,就永远学不到”哪些病人需要高剂量”——第 11 讲”贪心卡住”的情境版本。整体选对率看不出这个问题,因为这些病人只占 7%。UCB 和 Thompson 采样好一些,但 5000 个病人之后仍远没学会。

平均指标会掩盖对少数群体的系统性失败。在医疗、推荐、内容审核里,这种失败恰恰最需要关注(第 17 讲的公平)。评估一个在线学习系统,要按子群体看。

4.3 推荐系统的冷启动

代码 04_cold_start.py:一个新用户,口味 θ∼N(大众口味,I)\theta \sim N(\text{大众口味}, I),内容有 8 维特征,评分 =x⊤θ= x^\top\theta + 噪声(第 4 讲的因子模型,内容特征已知)。每人推荐 50 轮、不重复,200 个新用户:

推荐方式第 1~5 轮6~1516~5050 轮累计遗憾
随机3.0103.0292.963149.04
热门(大众口味下最好的)1.8281.9031.97297.20
贪心1.3620.6600.29623.75
LinUCB(α = 1)1.4410.5420.26621.94
线性 Thompson 采样1.8440.7500.30827.50

热门推荐从不学习,把每个用户当成”平均用户”。LinUCB 的累计遗憾最小;Thompson 采样前 15 轮探索得最多,50 轮之内还没把成本赚回来——只有 50 轮时,探索的回报期很短。三种学习算法相差不大,同样是因为内容特征多样。


5. 连续的选项:贝叶斯优化与采集函数

5.1 问题

选项不再是有限的几个,而是一个连续的参数 xx:生成时的温度、推荐的”新颖度”、机器学习模型的超参数、外骨骼的步态参数(第 10 讲第 6.3 节)。效用 f(x)f(x) 未知、每次评估很贵(要训练一个模型、要让人走一遍),只能试几十次。

贝叶斯优化:用高斯过程表示对 ff 的信念(第 6 讲;这里观测的是带高斯噪声的函数值,后验是精确的正态分布),每一步用一个采集函数决定下一个 xx。采集函数把”后验”变成”下一步试哪里”——它就是连续版本的老虎机策略。

5.2 几种采集函数

记后验均值 μ(x)\mu(x)、标准差 σ(x)\sigma(x),当前最好的值 f+f^+(有噪声时,用已评估点上后验均值的最大值,而不是带噪声的观测最大值),z=(μ(x)−f+−ξ)/σ(x)z = (\mu(x) - f^+ - \xi)/\sigma(x):

采集函数公式含义
改进概率 PI(Kushner 1964)Φ(z)\Phi(z)比现在好(至少 ξ\xi)的概率
期望改进 EI(Jones 等 1998)(μ−f+−ξ)Φ(z)+σϕ(z)(\mu - f^+ - \xi)\Phi(z) + \sigma\phi(z)期望能改进多少(练习 3)
GP-UCB(Srinivas 等 2010)μ+βt σ\mu + \sqrt{\beta_t}\,\sigma乐观地看能有多好;βt\beta_t 随时间缓慢增大,有遗憾保证
Thompson 采样抽一条函数 f~∼\tilde f \sim 后验,选 arg⁡max⁡f~\arg\max\tilde f按”是最大值点的概率”去试
基于信息的方法熵搜索、预测熵搜索、最大值熵搜索选”最能减少关于最大值点(或最大值)的不确定性”的 xx(Hennig & Schuler 2012;Wang & Jegelka 2017)

5.3 实验

代码 03_gp_acquisition.py:真实的 ff 在 x≈0.25x \approx 0.25 处有一个宽而矮的峰(0.6),在 x≈0.8x \approx 0.8 处有一个窄而高的峰(1.0)。先随机评估 3 个点,再评估 25 个点;40 次实验:

采集函数5 次后差距10 次后25 次后推荐点的差距找到高峰
随机0.3070.2120.1050.0640.70
只看均值0.3800.3770.3390.3550.35
PI(ξ = 0.01)0.2340.2160.1940.2140.55
PI(ξ = 0.1)0.1650.0430.0020.0091.00
EI0.2600.1080.0160.0250.97
GP-UCB0.3220.1180.0030.0061.00
Thompson 采样0.2480.1130.0300.0390.93

(“差距”:已评估的点里最好的真实值离全局最大值 1.0 还差多少;“找到高峰”:25 次后差距 < 0.1 的实验比例。)

  • 只看均值(纯利用):三分之二的实验从没找到高峰。
  • PI(ξ = 0.01)太贪心:将近一半的实验困在矮峰上。演示 3 说明了原因:在矮峰上评估了几次之后,当前最好点旁边(x = 0.24)的后验均值 0.591、标准差 0.073,PI = 0.424——“比现在好一点点”的可能性很大;没探索过的地方(x = 0.8)均值 0、标准差 0.70,PI 只有 0.194。PI 选”旁边”。EI 则相反:旁边即使能改进,也只是一点点(EI = 0.023);远处虽然概率低,可一旦改进就是一大截(EI = 0.075)。探索的价值来自”可能有大的改进”,而不只是”可能有改进”。
  • ξ 是 PI 的探索旋钮:调到 0.1,PI 在这里甚至是最好的。问题是事先不知道该调多大。
  • EI、GP-UCB、Thompson 采样都可靠。GP-UCB 前期探索得多(5 次后差距最大),之后最好;Thompson 采样有约 7% 的实验没找到高峰——它是随机的,单次运行有波动(演示 2 的那次实验里,它和 PI 一起被困在了矮峰上)。
  • 随机:约 30% 的实验 25 次都没碰到那个窄峰。窄而高的最优点,正是需要”聪明地找”的情形。

5.4 实践

贝叶斯优化广泛用于机器学习超参数调优(Snoek 等 2012)、材料与药物设计、机器人控制参数。几点经验:GP 的超参数(长度尺度、噪声)用边际似然估计(第 6 讲);维数超过十几维时 GP 不好用,要用其他代理模型或降维;评估可以并行时,要用批量采集函数(“假装已经评估了”的贪心,第 7 讲);EI 和 GP-UCB 是可靠的默认选择。

当评估是”人的偏好”时——人说不出”这个步态值 0.73 分”,只能说”这个比那个舒服”——就是第 13 讲的偏好贝叶斯优化。


6. 小结

  1. Thompson 采样:从后验抽一个样本,按样本行动。概率匹配:选每个行动的概率 = 它是最优的后验概率。实现简单、没有调参,在伯努利老虎机上达到 Lai–Robbins 下界;KL-UCB 也能达到。
  2. 批量 / 延迟反馈:确定性的 UCB 类算法在一批里押同一个臂;Thompson 采样天然分散,更稳健。
  3. 局限:需要(近似的)后验;短期内探索成本可能收不回;不适合纯探索(用前二 Thompson 采样等变体)。
  4. 情境老虎机:LinUCB、线性 / 逻辑斯蒂 Thompson 采样。特征多样时贪心常常不错,但会系统性地亏待”一开始看起来不好”的选项和需要它的少数群体——要按子群体评估。模型设定错误给所有算法设了上限。
  5. 贝叶斯优化:GP + 采集函数。PI 太贪心(ξ 是它的探索旋钮),EI 兼顾概率和幅度,GP-UCB 有理论保证,Thompson 采样随机地探索,信息论方法直接减少关于最优点的不确定性。

7. 与测验、口试和项目的关系

  • 测验与口试可能会问:写出 Beta–伯努利的 Thompson 采样;什么是概率匹配;Thompson 采样和 UCB 的异同;为什么 Thompson 采样在批量反馈下更稳健;LinUCB 的指数;逻辑斯蒂 Thompson 采样怎样用拉普拉斯近似;为什么情境老虎机里贪心常常可以、又会在哪里失败;写出 PI、EI、GP-UCB;为什么 PI 太贪心。
  • 期末项目:如果项目要在线地做决策或调参数,说明用什么模型、怎样得到后验、用什么采集函数或探索策略、反馈是否成批到来;评估时按子群体报告,而不只报告平均。

8. 练习

练习 1(Beta 后验)。先验 Beta(1, 1)。臂 B 试了 4 次、成功 3 次。 (a) 后验是什么?后验均值是多少? (b) 再试一次成功了,后验均值变成多少?如果失败了呢?

参考答案

(a) Beta(4, 2),均值 4/6 ≈ 0.667(和代码 01 演示 1 的表一致)。 (b) 成功:Beta(5, 2),均值 5/7 ≈ 0.714;失败:Beta(4, 3),均值 4/7 ≈ 0.571。只试过几次的臂,一次结果就能让估计大幅变动——这正是它值得再试的原因。

练习 2(概率匹配)。证明:Thompson 采样选臂 kk 的概率等于 P(θk=max⁡jθj∣数据)P(\theta_k = \max_j \theta_j \mid \text{数据})。

参考答案

Thompson 采样抽的 (θ~1,…,θ~K)(\tilde\theta_1, \ldots, \tilde\theta_K) 恰好服从后验分布。它选 kk ⇔ θ~k\tilde\theta_k 是最大的。所以 P(选 k)=Pθ~∼后验(θ~k=max⁡jθ~j)=P(θk=max⁡jθj∣数据)P(\text{选 } k) = P_{\tilde\theta\sim\text{后验}}(\tilde\theta_k = \max_j\tilde\theta_j) = P(\theta_k = \max_j\theta_j \mid \text{数据})。(并列的概率为 0。)

练习 3(期望改进)。f(x)∼N(μ,σ2)f(x) \sim N(\mu, \sigma^2),证明 E[max⁡(f(x)−f+−ξ,0)]=(μ−f+−ξ)Φ(z)+σϕ(z)E[\max(f(x) - f^+ - \xi, 0)] = (\mu - f^+ - \xi)\Phi(z) + \sigma\phi(z),z=(μ−f+−ξ)/σz = (\mu - f^+ - \xi)/\sigma。和第 11 讲练习 1 比较。

参考答案

令 U=f(x)−f+−ξ∼N(μ−f+−ξ,σ2)U = f(x) - f^+ - \xi \sim N(\mu - f^+ - \xi, \sigma^2),所求就是 E[max⁡(U,0)]E[\max(U, 0)]。由第 11 讲练习 1(关机博弈的 E[max⁡(U,0)]E[\max(U, 0)]),等于 mΦ(m/σ)+σϕ(m/σ)m\Phi(m/\sigma) + \sigma\phi(m/\sigma),m=μ−f+−ξm = \mu - f^+ - \xi,即所求。关机博弈里”问人的价值”和贝叶斯优化里”期望改进”是同一个数学对象:都是”有一个兜底的选项(0 或 f+f^+)时,再试一个不确定的选项的期望收益”。

练习 4(PI 的贪心)。当前最好值 f+=0.595f^+ = 0.595,ξ=0.01\xi = 0.01。 (a) 点甲:μ=0.591\mu = 0.591、σ=0.073\sigma = 0.073;点乙:μ=0\mu = 0、σ=0.70\sigma = 0.70。分别算 PI。 (b) 把 ξ\xi 改成 0.1 呢?

参考答案

(a) 甲:z=(0.591−0.605)/0.073≈−0.19z = (0.591 - 0.605)/0.073 \approx -0.19,PI ≈0.42\approx 0.42;乙:z=−0.605/0.70≈−0.86z = -0.605/0.70 \approx -0.86,PI ≈0.19\approx 0.19。PI 选甲(和代码 03 演示 3 一致)。 (b) 甲:z=(0.591−0.695)/0.073≈−1.42z = (0.591 - 0.695)/0.073 \approx -1.42,PI ≈0.078\approx 0.078;乙:z=−0.695/0.70≈−0.99z = -0.695/0.70 \approx -0.99,PI ≈0.16\approx 0.16。现在 PI 选乙:要求的改进幅度变大后,“旁边好一点点”不再算数,远处的不确定性变得有价值。

练习 5(线性高斯后验)。先验 θ∼N(m,I)\theta \sim N(m, I),观测 ri=xi⊤θ+εir_i = x_i^\top\theta + \varepsilon_i,εi∼N(0,σ2)\varepsilon_i \sim N(0, \sigma^2)。推导后验的精度矩阵和均值(代码 04 的更新公式)。

参考答案

对数后验 =−12∥θ−m∥2−12σ2∑i(ri−xi⊤θ)2+常数= -\frac{1}{2}\lVert\theta - m\rVert^2 - \frac{1}{2\sigma^2}\sum_i(r_i - x_i^\top\theta)^2 + \text{常数},是 θ\theta 的二次函数,所以后验是正态的。二次项系数给出精度 P=I+1σ2∑ixixi⊤P = I + \frac{1}{\sigma^2}\sum_i x_ix_i^\top;一次项给出 Pμ=m+1σ2∑ixiriP\mu = m + \frac{1}{\sigma^2}\sum_i x_ir_i。代码里 P += outer(x, x)/σ²、b += x·r/σ²、μ = P⁻¹b。

练习 6(批量反馈)。用一句话解释为什么 B = 100 时 KL-UCB 的遗憾几乎翻倍,而 Thompson 采样只增加了约 14%。如果一定要用 UCB 类算法,你会怎样修改它来适应批量?

参考答案

一批之内 KL-UCB 的指数不变,100 步全押在同一个臂上,相当于”每 100 步才做一次决定”;Thompson 采样每一步重新抽样,一批之内仍然在几个”可能最好”的候选之间分散,相当于在一批之内也在探索。修改:在一批之内,每选一个臂,就”假装”它已经被试了一次(更新 nkn_k 但不更新平均值),让下一步的置信半径缩小——这正是第 7 讲”假装已经问了”的批量选择思路(批量 UCB,例如 GP-BUCB)。

练习 7(少数群体)。代码 02 里贪心几乎从不给高剂量。提出两种改进,并说明各自的代价。

参考答案

(1) 乐观的初始值或先验:一开始假设每个剂量都可能很好,让高剂量至少被试一些。代价:前期对一些病人用了不合适的剂量(在医疗里这是真实的伤害,要有伦理审查和安全约束)。(2) 用 UCB / Thompson 采样代替贪心,或对”预测不确定”的子群体强制一定比例的探索。代价同上,而且需要定义子群体。(3) 利用已有的知识(例如 IWPC 公式)作为先验,减少需要探索的量。更根本的是:评估时按子群体(需要高剂量的病人)报告表现,否则问题根本看不见。

练习 8(探索的回报期)。代码 04 里 Thompson 采样在 50 轮内累计遗憾比贪心大。什么情况下前期的探索更值得?给出两个因素。

参考答案

(1) 时间更长:用户会长期使用,前期学准了,后面的每一轮都受益(练习:把轮数改成 200)。(2) 特征不够多样:贪心靠特征多样性”免费”探索;如果内容的特征很相似,贪心会卡住,探索的价值更大。另外:用户之间差异大(先验不准)时、少数口味需要被发现时,探索也更值得。


9. 延伸阅读

课程教材

  • Truong, Haupt, Koyejo. Machine Learning from Human Preferences. 第 3 章 3.3–3.4 节。

Thompson 采样

  • Thompson. On the Likelihood that One Unknown Probability Exceeds Another in View of the Evidence of Two Samples. Biometrika 1933.
  • Chapelle, Li. An Empirical Evaluation of Thompson Sampling. NeurIPS 2011.
  • Agrawal, Goyal. Analysis of Thompson Sampling for the Multi-Armed Bandit Problem. COLT 2012;Thompson Sampling for Contextual Bandits with Linear Payoffs. ICML 2013.
  • Kaufmann, Korda, Munos. Thompson Sampling: An Asymptotically Optimal Finite-Time Analysis. ALT 2012.
  • Russo, Van Roy, Kazerouni, Osband, Wen. A Tutorial on Thompson Sampling. Foundations and Trends in ML 2018.
  • Russo, Van Roy. Learning to Optimize via Information-Directed Sampling. NeurIPS 2014;Russo. Simple Bayesian Algorithms for Best Arm Identification. COLT 2016.
  • Garivier, Cappé. The KL-UCB Algorithm for Bounded Stochastic Bandits and Beyond. COLT 2011.

情境老虎机与剂量

  • Li, Chu, Langford, Schapire. A Contextual-Bandit Approach to Personalized News Article Recommendation. WWW 2010.
  • International Warfarin Pharmacogenetics Consortium. Estimation of the Warfarin Dose with Clinical and Pharmacogenetic Data. NEJM 2009.
  • Bastani, Bayati. Online Decision Making with High-Dimensional Covariates. Operations Research 2020.
  • Bastani, Bayati, Khosravi. Mostly Exploration-Free Algorithms for Contextual Bandits. Management Science 2021.

贝叶斯优化

  • Garnett. Bayesian Optimization. 2023.(免费在线)
  • Frazier. A Tutorial on Bayesian Optimization. 2018.
  • Jones, Schonlau, Welch. Efficient Global Optimization of Expensive Black-Box Functions. 1998.
  • Srinivas, Krause, Kakade, Seeger. Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental Design. ICML 2010.
  • Wang, Jegelka. Max-value Entropy Search for Efficient Bayesian Optimization. ICML 2017.
  • Snoek, Larochelle, Adams. Practical Bayesian Optimization of Machine Learning Algorithms. NeurIPS 2012.

10. 下一讲预告

到目前为止,每次行动都能得到一个数值奖励:点了 / 没点、剂量对 / 不对、函数值是多少。可是这门课的主角是偏好:人常常说不出”这个回答值几分”,只能说”这个比那个好”。

第 13 讲讲对决老虎机与偏好贝叶斯优化:

  • 每次选两个臂让它们”对决”,只观察谁赢。“最好的臂”该怎么定义?孔多塞赢家、Borda 赢家、Copeland 赢家、冯·诺依曼赢家(第 9 讲的 Nash 混合策略);没有孔多塞赢家时怎么办。
  • 算法:Interleaved Filter、RUCB、Sparring;信息检索里的交错评估与 DBGD——搜索引擎怎样用用户的点击比较两个排序算法。
  • 偏好贝叶斯优化:连续参数、只能问”哪个更好”——高斯过程偏好模型(第 6 讲)+ 采集函数;外骨骼步态的个性化。
← 返回课程目录