第 11 讲:探索 I——多臂老虎机、遗憾与 UCB

Reinforcement Learning · Lecture 11。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

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

本篇目录

对应:Stanford CS234 Lecture 11–12(Fast Learning / Exploration: Bandits) 配套代码:code/lecture11/(只需 numpy) 预计阅读时间:3.5 小时


0. 本讲导航

0.1 本讲要回答的问题

怎样衡量一个学习算法”学得快不快”?怎样在探索与利用之间做出有理论保证的平衡?

从第 1 讲开始,我们就一直在用 ε\varepsilon-贪心做探索:以一个小概率随机选动作,其余时候选”目前看起来最好”的。它简单、好用,但我们从没问过:

  • 它探索得够不够?会不会永远错过最好的动作?
  • 它探索得太多了吗?已经很确定哪个动作最好了,为什么还要随机试?
  • 有没有更聪明的探索方式?“聪明”又该怎样衡量?

这一讲从强化学习中最简单的问题——多臂老虎机——出发回答这些问题。它只有一个状态,没有”延迟后果”,却完整地保留了探索与利用的矛盾。在这个干净的设定里,我们能精确地定义”学得快”,证明哪些算法是好的,甚至证明”任何算法都不可能做得更好”的极限。

0.2 学完本讲,你应该能够

  1. 形式化多臂老虎机问题,定义遗憾,写出遗憾分解公式 Regret(T)=∑aΔaE[Na(T)]\mathrm{Regret}(T) = \sum_a \Delta_a \mathbb{E}[N_a(T)]。
  2. 解释贪心和 ε\varepsilon-贪心为什么是线性遗憾。
  3. 陈述霍夫丁不等式,由它构造置信区间。
  4. 描述 UCB1 算法,理解”面对不确定性时保持乐观”的原则,写出其对数遗憾界并了解证明思路。
  5. 陈述 Lai–Robbins 下界,解释 KL 散度在其中的作用,知道 KL-UCB 为什么渐近最优。
  6. 区分与问题有关和与问题无关的遗憾界。
  7. 理解 A/B 测试(先探索后承诺)与老虎机算法的区别。

0.3 先修知识

知识点用在哪里最低要求
第 1 讲:探索与利用、ε\varepsilon-贪心第 1、3 节必须
期望、方差、独立同分布全讲必须
大数定律(样本均值趋于真实均值)第 4 节知道结论即可
KL 散度第 6 节第 7 讲已介绍
对数的增长速度:ln⁡T\ln T 远慢于 T\sqrt T 远慢于 TT全讲必须

0.4 本讲地图

第1节 多臂老虎机:问题与应用
   │
第2节 遗憾:怎样衡量"学得快"
   │
第3节 贪心与 ε-贪心:线性遗憾
   │
第4节 霍夫丁不等式:量化"我有多不确定"
   │
第5节 UCB1:面对不确定性时保持乐观;对数遗憾
   │
第6节 下界:任何算法都做不到更好——Lai–Robbins 与 KL-UCB
   │
第7节 问题难度与遗憾;A/B 测试
   │
第8节 从老虎机到强化学习

1. 多臂老虎机

1.1 问题

赌场里有 KK 台老虎机(“单臂强盗”,one-armed bandit),第 aa 台的中奖概率是 μa\mu_a,但你不知道这些概率。你一共可以拉 TT 次,每次选一台拉一下,中奖得 1,不中得 0。怎样拉才能让总奖励尽可能多?

形式化地:

  • KK 个臂(动作)a∈{1,…,K}a \in \{1, \dots, K\};
  • 每个臂有一个未知的奖励分布,均值为 μa\mu_a;
  • 每一步 t=1,…,Tt = 1, \dots, T:选一个臂 ata_t,观察奖励 rt∼r_t \sim 臂 ata_t 的分布;
  • 目标:最大化 E[∑t=1Trt]\mathbb{E}\left[\sum_{t=1}^T r_t\right]。

记最好的臂的均值为 μ∗=max⁡aμa\mu^* = \max_a \mu_a,臂 aa 的差距(gap) 为 Δa=μ∗−μa\Delta_a = \mu^* - \mu_a。

和 MDP 的关系:老虎机就是只有一个状态的 MDP。选择动作不会改变状态,所以没有”延迟后果”——今天的选择只影响今天的奖励,以及你学到了什么。这让我们能把”探索”这件事单独拿出来研究。

1.2 为什么这个问题重要?

老虎机的名字听起来像赌博,但它的应用远比赌场广泛:

  • 临床试验:历史上第一篇老虎机论文(Thompson, 1933)研究的就是:两种疗法,效果未知,怎样分配病人,才能既尽快弄清哪种更好,又让尽量多的病人得到更好的治疗?
  • 在线广告与推荐:展示哪个广告、推荐哪篇文章?点击率未知,只能边展示边学。
  • 网站设计与 A/B 测试:哪个版本的页面转化率更高?
  • 教育:给学生推荐哪道练习题、哪种讲解方式?(CS234 主讲人 Brunskill 研究组的方向之一)
  • 超参数搜索、蒙特卡洛树搜索:第 14 讲的 AlphaGo 在搜索树的每个节点上都在解一个老虎机问题。

这些问题的共同点:每一次尝试都有真实的代价(病人、用户、收入),所以不仅要学会,还要在学的过程中少犯错。

1.3 本讲的实验平台

代码 bandits.py 中的默认老虎机有 5 个臂,成功率(智能体不知道)为:

臂01234
μa\mu_a0.20.40.50.60.7
Δa\Delta_a0.50.30.20.10

另外还有一个”困难的”版本(臂 3 的成功率改为 0.67,与最好的臂只差 0.03)和一个”点击率”版本(4 个臂,成功率 2%~5%)。

为了得到可靠的平均,每个实验都独立重复几百次。bandits.py 把几百次实验”叠”在一起用 numpy 并行模拟——这是本讲代码的一个工程技巧,README 中有说明。


2. 遗憾:怎样衡量”学得快”

2.1 为什么不直接比较总奖励?

总奖励的大小取决于问题本身:成功率都很高的老虎机,随便拉总奖励也很高。我们需要一个与”最好可能”比较的指标。

2.2 遗憾的定义

遗憾(regret):如果一开始就知道哪个臂最好、一直拉它,期望能得到 Tμ∗T \mu^*;实际期望得到 E[∑trt]\mathbb{E}[\sum_t r_t]。两者之差:

Regret(T)=Tμ∗−E[∑t=1Trt]\mathrm{Regret}(T) = T \mu^* - \mathbb{E}\left[ \sum_{t=1}^T r_t \right]

遗憾分解:设 Na(T)N_a(T) 为前 TT 步中臂 aa 被拉的次数,则

Regret(T)=∑t=1TE[μ∗−μat]=∑aΔa E[Na(T)]\mathrm{Regret}(T) = \sum_{t=1}^T \mathbb{E}[\mu^* - \mu_{a_t}] = \sum_{a} \Delta_a\, \mathbb{E}[N_a(T)]

每拉一次差距为 Δa\Delta_a 的臂,就”亏” Δa\Delta_a。要让遗憾小,就要少拉差的臂——但不拉又没法知道它们差。这就是探索与利用的矛盾在公式中的体现。

(代码中记录的是 ∑aΔaNa(T)\sum_a \Delta_a N_a(T),即用期望奖励而不是实际拿到的 0/1 来算,叫伪遗憾。它的期望就是遗憾,但曲线更平滑。)

2.3 “学得快”意味着什么?

遗憾最多是 T⋅max⁡aΔaT \cdot \max_a \Delta_a(一直拉最差的臂)。关键在于遗憾随 TT 增长的速度:

增长速度含义
线性 Θ(T)\Theta(T)每一步平均亏的钱不随时间减少——永远没学会
次线性 o(T)o(T),如 T\sqrt T、ln⁡T\ln T平均每步遗憾 Regret(T)/T→0\mathrm{Regret}(T)/T \to 0——最终学会了
对数 O(ln⁡T)O(\ln T)学得极快:步数增加 10 倍,遗憾只增加一个常数

ln⁡T\ln T 有多慢?ln⁡103≈6.9\ln 10^3 \approx 6.9,ln⁡106≈13.8\ln 10^6 \approx 13.8:步数从一千增加到一百万,遗憾只翻一倍。

这就是本讲衡量”学得快”的标准。它和第 3 讲的”样本效率”一脉相承,但更严格:不仅要最终学会,还要学的过程中犯的错尽量少。


3. 贪心与 ε\varepsilon-贪心:线性遗憾

3.1 贪心:永远可能卡住

贪心:每个臂先拉一次,之后总拉经验均值 μ^a=(臂 a 的总奖励)/Na\hat\mu_a = (\text{臂 } a \text{ 的总奖励}) / N_a 最高的臂。

代码 01_greedy_epsilon.py 演示 1:T=1000T = 1000,重复 1000 次,实验结束时”被拉得最多的臂”的分布:

臂0 (0.2)1 (0.4)2 (0.5)3 (0.6)4 (0.7)
实验比例1.3%5.1%7.5%26.7%59.4%

四成的实验卡在了次优的臂上。一个典型的例子:前 20 步拉的臂是 4 1 3 2 0 1 3 3 3 3 …,最终各臂被拉的次数是 [1, 2, 1, 995, 1]——最好的臂 4 只在第一步被拉了一次。

为什么? 臂 4 第一次拉得到 0,经验均值为 0;臂 3 第一次得到 1。之后贪心一直拉臂 3,它的经验均值收敛到 0.6 > 0,永远高于臂 4 的 0。臂 4 得不到数据,它被低估的状态就永远得不到纠正。

线性遗憾的证明:上面这种事情发生的概率 p>0p > 0(不随 TT 变化),一旦发生,之后每一步至少亏 Δmin⁡\Delta_{\min}。所以 Regret(T)≥p⋅Δmin⁡⋅(T−K)\mathrm{Regret}(T) \ge p \cdot \Delta_{\min} \cdot (T - K),是线性的。

3.2 ε\varepsilon-贪心:永不停止的探索

ε\varepsilon-贪心:以概率 ε\varepsilon 随机选一个臂,否则选经验均值最高的臂。

它解决了”卡住”的问题(每个臂都会被不断地试),但带来新的问题:即使已经非常确定哪个臂最好,每一步仍以 ε\varepsilon 的概率随机拉。随机拉时,每个臂被选中的概率都是 1/K1/K,所以

E[Na(T)]≥εTK⇒Regret(T)≥εT⋅1K∑aΔa=ε⋅Δˉ⋅T\mathbb{E}[N_a(T)] \ge \frac{\varepsilon T}{K} \quad \Rightarrow \quad \mathrm{Regret}(T) \ge \varepsilon T \cdot \frac{1}{K}\sum_a \Delta_a = \varepsilon \cdot \bar\Delta \cdot T

其中 Δˉ\bar\Delta 是平均差距(默认老虎机为 0.22)。线性遗憾。

演示 2 的实验(重复 200 次):

策略T=102T=10^2T=103T=10^3T=104T=10^4T=105T=10^5R(105)/R(104)R(10^5)/R(10^4)后 9 万步每步遗憾εΔˉ\varepsilon\bar\Delta
贪心8.669.8677.36752.310.00.0675—
ε=0.01\varepsilon=0.019.263.1238.8502.52.10.00290.0022
ε=0.05\varepsilon=0.059.746.4178.31184.36.60.01120.0110
ε=0.1\varepsilon=0.110.248.3262.72241.98.50.02200.0220
ε=0.2\varepsilon=0.210.661.4458.44415.69.60.04400.0440

读这张表:

  1. 贪心和 ε≥0.05\varepsilon \ge 0.05 的 ε\varepsilon-贪心,TT 增加 10 倍,遗憾增加 6.6~10 倍——线性。
  2. 后期的每步遗憾与 εΔˉ\varepsilon\bar\Delta 几乎完全吻合——理论分析非常准确。
  3. ε=0.01\varepsilon = 0.01 只增长了 2.1 倍,看起来不像线性。原因是它探索得太少,前 1 万步里还有不少实验没找到最好的臂,这一阶段的遗憾占了大头。但它后期的每步遗憾(0.0029)已接近 εΔˉ\varepsilon\bar\Delta,只要 TT 再长,也会线性增长——只是进入线性阶段更晚。看遗憾曲线时,要注意”还没到渐近阶段”的情况。
  4. 最佳的 ε\varepsilon 取决于 TT:T=103T = 10^3、10410^4 时 ε=0.05\varepsilon = 0.05 最好,T=105T = 10^5 时 ε=0.01\varepsilon = 0.01 最好。TT 越长,长期的探索代价越重要,就越应该少探索。可我们往往不知道 TT。

3.3 能不能让探索逐渐减少?

递减 ε\varepsilon-贪心(Auer et al., 2002):εt=min⁡(1,cK/(d2t))\varepsilon_t = \min(1, cK/(d^2 t))。探索概率按 1/t1/t 递减,总探索次数 ∑tεt≈(cK/d2)ln⁡T\sum_t \varepsilon_t \approx (cK/d^2) \ln T——只按对数增长!理论保证要求 d≤Δmin⁡d \le \Delta_{\min}(最小差距)。

乐观初始化:假装每个臂在开始前已被拉了若干次(“伪计数”)、每次都得到最高奖励 1。所有臂一开始都”看起来很好”,贪心地拉一个,发现不如预期,估计值下降,就换别的臂——乐观驱动了探索。

演示 3 的结果(T=105T = 10^5,重复 200 次;“认错”= 结束时被拉得最多的臂不是最好的臂):

策略容易的老虎机 R(105)R(10^5)认错比例困难的老虎机 R(105)R(10^5)认错比例
ε=0.01\varepsilon = 0.01568.10.0%848.517.5%
递减 ε\varepsilon:c=1,d=0.1c=1, d=0.1691.60.0%734.42.5%
递减 ε\varepsilon:c=1,d=0.3c=1, d=0.3156.80.5%648.517.5%
递减 ε\varepsilon:c=5,d=0.1c=5, d=0.12575.60.0%2418.00.0%
乐观初始化:伪计数 13211.928.0%1650.640.5%
乐观初始化:伪计数 10117.81.0%558.418.0%

问题暴露了:

  • “安全”的参数(满足理论条件 d≤Δmin⁡d \le \Delta_{\min},尤其 c=5c = 5)探索得太多,遗憾很大。
  • “大胆”的参数(d=0.3d = 0.3,伪计数 10)在容易的老虎机上表现极好;换到困难的老虎机上,将近五分之一的实验认错了最好的臂——这些实验的遗憾会线性增长。

这些方法的参数隐含了对问题难度的假设(差距有多大),而差距恰恰是我们不知道的。我们想要的是:不需要知道差距,能自动适应问题难度的方法。


4. 霍夫丁不等式:量化”我有多不确定”

4.1 动机

贪心的问题在于:它把经验均值 μ^a\hat\mu_a 当成了真值。拉了 1 次得到 0,和拉了 1000 次平均 0.3,贪心一视同仁。可前者的不确定性要大得多!

更聪明的做法:同时考虑估计值和它的不确定性。这需要回答:“拉了 nn 次,经验均值与真实均值相差多少?”

4.2 霍夫丁不等式

定理(Hoeffding, 1963):设 X1,…,XnX_1, \dots, X_n 是独立同分布的随机变量,取值在 [0,1][0, 1],均值为 μ\mu,μ^n=1n∑iXi\hat\mu_n = \frac1n\sum_i X_i。则对任意 u>0u > 0:

P(μ^n−μ≥u)≤e−2nu2,P(μ−μ^n≥u)≤e−2nu2P(\hat\mu_n - \mu \ge u) \le e^{-2nu^2}, \qquad P(\mu - \hat\mu_n \ge u) \le e^{-2nu^2}

直觉:偏差超过 uu 的概率随 nn 指数下降。它不需要知道分布的具体形状,只要求取值有界——所以对任何 [0,1][0,1] 上的奖励都成立。

代码 02_hoeffding_ucb.py 演示 1 用模拟验证(部分结果):

真实 μ\munnuu模拟的 P(∣μ^−μ∣≥u)P(\lvert\hat\mu - \mu\rvert \ge u)霍夫丁上界 2e−2nu22e^{-2nu^2}
0.51000.10.05740.271
0.510000.050.001760.0135
0.11000.10.002020.271

不等式总是成立,但偏保守——尤其当 μ\mu 接近 0 或 1 时(伯努利分布的方差 μ(1−μ)\mu(1-\mu) 较小,而霍夫丁按最坏的方差 1/4 来算)。记住这一点,第 6 节会用到。

4.3 反过来用:置信区间

令 e−2nu2=δe^{-2nu^2} = \delta,解出 u=ln⁡(1/δ)/(2n)u = \sqrt{\ln(1/\delta)/(2n)}。于是:

以至少 1−δ1 - \delta 的概率,μ≤μ^n+ln⁡(1/δ)2n\mu \le \hat\mu_n + \sqrt{\dfrac{\ln(1/\delta)}{2n}}。

这就是置信上界。它的宽度 ∝1/n\propto 1/\sqrt n:95% 置信区间(双侧)的半宽在 n=10,100,1000,10000n = 10, 100, 1000, 10000 时分别为 0.429、0.136、0.043、0.014。数据增加 100 倍,不确定性只缩小 10 倍。


5. UCB1:面对不确定性时保持乐观

5.1 原则

面对不确定性时保持乐观(Optimism in the Face of Uncertainty, OFU):对每个臂,假设它和”在数据允许的范围内最好的可能”一样好,然后选最好的。

为什么这是个好主意?拉了”上界最高”的臂之后,只有两种可能:

  1. 它的上界高是因为均值确实高 → 我们拉到了一个好臂(利用),很好;
  2. 它的上界高是因为不确定性大 → 拉完之后多了一个数据,不确定性变小,上界下降(探索),我们学到了东西。

两种情况都不亏。这就是乐观原则的精髓:它把”探索”和”利用”统一到一个指标里,不需要人为地决定”什么时候探索”。

对比贪心:贪心是”面对不确定性时保持中立”——把估计当真。一旦低估了好臂,就再也不去验证。乐观则保证:被低估的臂迟早会因为”不确定”而被再试一次。

5.2 算法

UCB1(Auer, Cesa-Bianchi & Fischer, 2002):每个臂先拉一次,之后每一步选

at=arg⁡max⁡a[μ^a+cln⁡tNa]a_t = \arg\max_a \left[ \hat\mu_a + \sqrt{\frac{c \ln t}{N_a}} \right]

原论文取 c=2c = 2。

置信宽度为什么是 cln⁡t/Na\sqrt{c\ln t / N_a}? 对照 4.3 节,这相当于取 δ=t−2c\delta = t^{-2c}:随着时间推移,要求的置信度越来越高。c=2c = 2 时,上界在每一步失效的概率不超过 t−4t^{-4}。

ln⁡t\ln t 的作用:一个长期不被拉的臂,NaN_a 不变,而 ln⁡t\ln t 缓慢增长,它的上界会慢慢升高,最终超过其他臂而被再试一次。永远不会”永久放弃”任何一个臂——这正是贪心所缺少的。但因为 ln⁡t\ln t 增长极慢,差的臂被重试的频率也极低。

5.3 看 UCB1 如何工作

演示 2:一次实验中各臂的状态(c=2c = 2):

t=100t = 100:

臂NaN_aμ^a\hat\mu_a探索奖励上界
090.2221.0121.234
190.2221.0121.234
2170.5290.7361.265
3240.6250.6191.244
4410.8050.4741.279

t=10000t = 10000:

臂NaN_aμ^a\hat\mu_a探索奖励上界
0660.2120.5280.740
11950.4360.3070.743
21890.4290.3120.741
38930.6000.1440.744
486570.6980.0460.744

最引人注目的现象:所有臂的上界几乎”齐平”。UCB1 让每个次优臂恰好被拉到”它的上界降到 μ∗\mu^* 附近”为止。差距越小的臂,要把上界降到 μ∗\mu^* 以下需要越窄的置信区间,也就越多的样本:大约需要 μ^a+cln⁡t/Na≈μ∗\hat\mu_a + \sqrt{c\ln t/N_a} \approx \mu^*,即

Na≈cln⁡tΔa2N_a \approx \frac{c \ln t}{\Delta_a^2}

每个次优臂被拉的次数按 ln⁡t\ln t 增长,与 Δa2\Delta_a^2 成反比。代入遗憾分解:

Regret(T)≈∑aΔa⋅cln⁡TΔa2=∑a:Δa>0cln⁡TΔa\mathrm{Regret}(T) \approx \sum_a \Delta_a \cdot \frac{c\ln T}{\Delta_a^2} = \sum_{a: \Delta_a > 0} \frac{c \ln T}{\Delta_a}

对数遗憾!

5.4 遗憾界(定理与证明思路)

定理(Auer et al., 2002):UCB1(c=2c = 2)对任何奖励在 [0,1][0,1] 内的老虎机满足

E[Na(T)]≤8ln⁡TΔa2+1+π23,Regret(T)≤∑a:Δa>0(8ln⁡TΔa+(1+π23)Δa)\mathbb{E}[N_a(T)] \le \frac{8\ln T}{\Delta_a^2} + 1 + \frac{\pi^2}{3}, \qquad \mathrm{Regret}(T) \le \sum_{a:\Delta_a>0} \left( \frac{8 \ln T}{\Delta_a} + \left(1 + \frac{\pi^2}{3}\right)\Delta_a \right)

证明思路(理解结构即可):设次优臂 aa 已经被拉了至少 ℓ=⌈8ln⁡T/Δa2⌉\ell = \lceil 8\ln T/\Delta_a^2 \rceil 次,它在第 tt 步又被选中,说明 UCBa≥UCBa∗\mathrm{UCB}_a \ge \mathrm{UCB}_{a^*}。这只可能因为以下三件事之一:

  1. 最优臂被低估:UCBa∗<μ∗\mathrm{UCB}_{a^*} < \mu^*,即最优臂的上界失效了。由霍夫丁不等式,概率 ≤t−4\le t^{-4}。
  2. 臂 aa 被高估:μ^a>μa+2ln⁡t/Na\hat\mu_a > \mu_a + \sqrt{2\ln t/N_a}。同样,概率 ≤t−4\le t^{-4}。
  3. 置信区间还太宽:μ∗<μa+22ln⁡t/Na\mu^* < \mu_a + 2\sqrt{2\ln t/N_a},即 Na<8ln⁡t/Δa2N_a < 8\ln t/\Delta_a^2。但我们假设了 Na≥ℓN_a \ge \ell,所以这不可能。

所以,拉满 ℓ\ell 次之后,臂 aa 再被选中只能是因为”小概率事件”1 或 2 发生了。把这些小概率对所有可能的 tt 和拉的次数求和(∑tt−4⋅t2\sum_t t^{-4} \cdot t^2 收敛,这是 π2/3\pi^2/3 的来源),得到上面的界。

关键思想:好事(置信区间成立)以高概率发生;在好事发生时,次优臂只会被拉 O(ln⁡T/Δ2)O(\ln T/\Delta^2) 次;坏事的概率小到对总次数的贡献只是一个常数。 这个”好事件 + 坏事件”的论证模式在整个探索理论中反复出现(第 13 讲的 MBIE-EB 也一样)。

5.5 实验

与上一节的方法对比(演示 3,T=105T = 10^5,重复 200 次):

策略容易:R(105)R(10^5)R(105)/R(104)R(10^5)/R(10^4)认错困难:R(105)R(10^5)R(105)/R(104)R(10^5)/R(10^4)认错
ε=0.01\varepsilon = 0.01568.12.250.0%848.55.0717.5%
递减 ε\varepsilon:d=0.3d=0.3156.81.660.5%648.54.6917.5%
乐观初始化:伪计数 10117.84.241.0%558.47.7218.0%
UCB1(c=2c = 2)380.91.730.0%521.62.480.0%
UCB1(c=0.5c = 0.5)100.01.450.0%182.82.070.0%
  • UCB1 在两个老虎机上都没有认错过最好的臂,遗憾增长缓慢(10 倍的步数,1.5~2.5 倍的遗憾)。增长比仍大于 ln⁡105/ln⁡104=1.25\ln 10^5 / \ln 10^4 = 1.25,是因为有限的 TT 下还有低阶项,比如差距小的臂在 T=104T = 10^4 时还没被充分探索。
  • UCB1 用同一组参数适应了两个难度不同的问题。这就是它相对于递减 ε\varepsilon、乐观初始化的根本优势。
  • 理论值 c=2c = 2 偏保守;c=0.5c = 0.5 在两个问题上都好得多。

每个次优臂被拉了多少次(演示 4,默认老虎机,T=105T = 10^5):

臂Δa\Delta_aUCB1 (c=2c=2)UCB1 (c=0.5c=0.5)定理上界 8ln⁡T/Δ2+4.38\ln T/\Delta^2 + 4.3Lai–Robbins 下界 ln⁡T/kl\ln T/\mathrm{kl}遗憾贡献 (c=2c=2)
00.587223732243.3
10.32366210286070.7
20.2490130230713298.0
30.116834719215510168.3
  1. 次数与 1/Δ21/\Delta^2 大致成正比:要区分两个很接近的臂,需要很多样本。
  2. 实际次数远低于定理上界——证明中的放缩很宽松(常数 8 来自最坏情况的分析)。
  3. 差距最小的臂贡献的遗憾最多(Δ×1/Δ2=1/Δ\Delta \times 1/\Delta^2 = 1/\Delta)。有点反直觉:最差的臂很快就被识破了,真正”费钱”的是那些与最好的臂难以区分的臂。
  4. c=0.5c = 0.5 的次数与 Lai–Robbins 下界(第 6 节)几乎相同——下一节解释为什么这在这个老虎机上是巧合。

5.6 探索强度 cc 的取舍

演示 5(T=105T = 10^5,重复 200 次):

cc容易:平均遗憾最差 1% 实验认错困难:平均遗憾最差 1% 实验认错
0.05860.910014.47.0%520.43069.814.0%
0.1109.12716.91.0%238.03018.15.5%
0.2552.9105.60.0%88.3175.20.0%
0.5105.1162.20.0%176.9313.70.0%
1200.3270.30.0%308.0440.60.0%
2384.5517.30.0%528.6696.40.0%
4715.8904.00.0%881.11063.90.0%
  • cc 太大:探索过多,遗憾偏大,但非常稳定——最差的实验也不比平均差多少。
  • cc 太小:上界太窄,最好的臂早期运气不好时,它的上界可能长时间低于某个次优臂的上界——又退化成了”贪心卡住”。平均遗憾也许还行,但最差 1% 的实验遗憾极大。
  • c=0.5c = 0.5 对应霍夫丁不等式本身给出的宽度 ln⁡t/(2Na)\sqrt{\ln t/(2N_a)},即”以 1−1/t1 - 1/t 的概率成立”的上界;c=2c = 2 对应 1−t−41 - t^{-4},是为了让证明简洁而取的保守值。
  • c=0.25c = 0.25 在这两个问题上最好——它在拿最坏情况冒险,而这两个问题恰好没让它付出代价。

理论保证与实际表现之间的取舍,是探索算法设计中永恒的主题:理论常数通常偏保守;调得更激进能提高平均表现,但会增加”偶尔很差”的风险。在高风险应用(比如医疗)中,稳定性往往比平均表现更重要。


6. 下界:任何算法都做不到更好

6.1 问题

UCB1 的遗憾是 O(∑aln⁡T/Δa)O(\sum_a \ln T/\Delta_a)。能不能做到比 ln⁡T\ln T 更慢的增长?常数能不能更小?

6.2 Lai–Robbins 下界

定理(Lai & Robbins, 1985):对任何一致的算法(在所有伯努利老虎机上,遗憾都是 o(Tα)o(T^\alpha),对任意 α>0\alpha > 0),对每个次优臂 aa:

lim inf⁡T→∞E[Na(T)]ln⁡T≥1kl(μa,μ∗)\liminf_{T\to\infty} \frac{\mathbb{E}[N_a(T)]}{\ln T} \ge \frac{1}{\mathrm{kl}(\mu_a, \mu^*)}

因此

lim inf⁡T→∞Regret(T)ln⁡T≥C≡∑a:Δa>0Δakl(μa,μ∗)\liminf_{T\to\infty} \frac{\mathrm{Regret}(T)}{\ln T} \ge C \equiv \sum_{a:\Delta_a > 0} \frac{\Delta_a}{\mathrm{kl}(\mu_a, \mu^*)}

其中 kl(p,q)=pln⁡pq+(1−p)ln⁡1−p1−q\mathrm{kl}(p, q) = p\ln\frac{p}{q} + (1-p)\ln\frac{1-p}{1-q} 是两个伯努利分布之间的 KL 散度。

对数增长是不可避免的,而且常数有一个精确的下限。

6.3 直觉:为什么至少要 ln⁡T/kl\ln T / \mathrm{kl} 次?

设想另一个”平行世界”:其他都一样,只是臂 aa 的成功率被悄悄调高到略高于 μ∗\mu^*——在那个世界里,臂 aa 是最好的臂。

  • 一个一致的算法,在那个世界里必须几乎一直拉臂 aa(否则遗憾是线性的);
  • 在我们的世界里,它必须很少拉臂 aa。

所以算法必须能够区分这两个世界。而区分它们的唯一信息来源,是拉臂 aa 得到的奖励。每拉一次,平均获得 kl(μa,μ∗)\mathrm{kl}(\mu_a, \mu^*) 那么多”区分两个世界的信息”。要把”误判世界”的概率降到 1/T1/T 量级(否则误判的代价 ∝T\propto T 会让遗憾变大),需要的信息总量约为 ln⁡T\ln T。于是:

Na⋅kl(μa,μ∗)≳ln⁡TN_a \cdot \mathrm{kl}(\mu_a, \mu^*) \gtrsim \ln T

KL 散度就是”区分两个分布的难度”的度量:kl\mathrm{kl} 越小,两个臂越像,需要的样本越多。

6.4 UCB1 离下界有多远?

由 Pinsker 不等式,kl(p,q)≥2(p−q)2\mathrm{kl}(p, q) \ge 2(p - q)^2,所以下界要求的次数 ln⁡T/kl≤ln⁡T/(2Δ2)\ln T/\mathrm{kl} \le \ln T/(2\Delta^2)。UCB(常数 cc)的次数大约是 cln⁡T/Δ2c\ln T/\Delta^2。

  • c=0.5c = 0.5 时,UCB 的次数 ≈ln⁡T/(2Δ2)\approx \ln T/(2\Delta^2),恰好是 Pinsker 意义下的”下界的上界”。当 kl≈2Δ2\mathrm{kl} \approx 2\Delta^2 时,两者几乎相等——这发生在成功率接近 0.5 时(伯努利分布的方差接近最大值 1/4)。这就是 5.5 节表格中 c=0.5c = 0.5 与下界吻合的原因:默认老虎机的成功率都在 0.2~0.7 之间。
  • 当成功率接近 0 或 1 时,kl≫2Δ2\mathrm{kl} \gg 2\Delta^2(分布的方差小,更容易区分),霍夫丁上界会非常松,UCB1 会做大量不必要的探索。

6.5 KL-UCB:渐近最优

KL-UCB(Garivier & Cappé, 2011)直接用 KL 散度构造上界:

UCBa(t)=max⁡{q∈[μ^a,1]:Na⋅kl(μ^a,q)≤ln⁡t}\mathrm{UCB}_a(t) = \max\left\{ q \in [\hat\mu_a, 1] : N_a \cdot \mathrm{kl}(\hat\mu_a, q) \le \ln t \right\}

“在 μ^a\hat\mu_a 之上,找一个最大的 qq,使得’真实值为 qq‘这件事与已有的 NaN_a 个观察仍然不矛盾”。kl(μ^a,q)\mathrm{kl}(\hat\mu_a, q) 随 qq 单调增加,所以可以用二分法求解。

可以证明 KL-UCB 的遗憾满足 lim⁡Regret(T)/ln⁡T=C\lim \mathrm{Regret}(T)/\ln T = C——恰好达到 Lai–Robbins 下界,渐近最优。

代码 03_regret_bounds.py 演示 1(重复 100 次):

默认老虎机(C=9.2C = 9.2):

策略R(103)R(10^3)R(104)R(10^4)R(105)R(10^5)R/ln⁡TR/\ln T at 10510^5
UCB1 (c=2c=2)78.8227.3390.533.9
UCB1 (c=0.5c=0.5)36.469.4104.59.1
UCB1 (c=0.25c=0.25)23.137.052.24.5
KL-UCB31.463.193.48.1

点击率老虎机(成功率 2%~5%,C=15.4C = 15.4):

策略R(103)R(10^3)R(104)R(10^4)R(105)R(10^5)R/ln⁡TR/\ln T at 10510^5
UCB1 (c=2c=2)14.1122.5783.068.0
UCB1 (c=0.5c=0.5)13.096.9409.635.6
UCB1 (c=0.25c=0.25)12.080.8263.222.9
KL-UCB10.850.1109.99.5
  1. 点击率老虎机上,KL-UCB 的遗憾只有 UCB1 的 1/4~1/7。这类”成功率很低”的问题在实际中非常常见(广告点击率、转化率),是 KL-UCB 最有价值的场景。
  2. KL-UCB 的 R/ln⁡TR/\ln T 从下方逐渐接近 CC(T=105T = 10^5 时 8.1 与 9.5,CC 为 9.2 与 15.4),与”渐近最优”一致。UCB1 在点击率老虎机上的 R/ln⁡TR/\ln T 还在快速增长,离它的对数阶段还远。
  3. UCB1(c=0.25c = 0.25)在默认老虎机上的遗憾低于 Cln⁡TC \ln T! 这并不违反下界:
    • 下界是 T→∞T \to \infty 时的极限,有限的 TT 下可以低于它;
    • 更重要的是,下界只约束一致的算法——在所有老虎机上都表现合理。c<0.5c < 0.5 的 UCB 在某些老虎机上会付出很大代价(5.6 节中”最差 1% 的实验”已经显示了苗头)。它在这里的低遗憾,是用在其他问题上的风险”换”来的。

下界的真正含义:要想在所有问题上都表现合理,在每个具体问题上就必须付出至少 Cln⁡TC \ln T 的遗憾。这是”不能对问题做任何假设”的代价。


7. 问题难度与遗憾

7.1 遗憾随差距先升后降

∑aln⁡T/Δa\sum_a \ln T/\Delta_a 在 Δ→0\Delta \to 0 时趋于无穷,但遗憾不可能超过 ΔT\Delta T(一直拉错也只亏这么多)。真实的遗憾大约是

Regret(T)≈min⁡(ΔT,  cln⁡TΔ)\mathrm{Regret}(T) \approx \min\left( \Delta T, \; \frac{c\ln T}{\Delta} \right)

演示 2:两臂老虎机(成功率 0.5±Δ/20.5 \pm \Delta/2),T=104T = 10^4,重复 200 次:

Δ\Delta0.0050.010.020.030.050.10.20.4
UCB1 (c=0.5c=0.5)21.434.747.446.343.430.818.19.8
KL-UCB21.136.348.450.243.730.717.910.0
随机拉 ΔT/2\Delta T/2255010015025050010002000
渐近下界 Cln⁡TC\ln T92146023015492462311
  • Δ\Delta 大:容易区分,遗憾小。
  • Δ\Delta 小:难以区分,但拉错也亏得少,遗憾同样小。此时”渐近下界”Cln⁡TC\ln T 远大于实际遗憾——TT 不够大,渐近结论还没”生效”。这再次提醒我们:渐近结论要谨慎使用。
  • 最”坏”的是中间的 Δ\Delta(这里约 0.02~0.05,理论上约 Kln⁡T/T≈0.043\sqrt{K\ln T/T} \approx 0.043)。

7.2 与问题无关的遗憾界

把最坏的 Δ\Delta 代入:对任何老虎机,UCB 的遗憾都不超过

Regret(T)=O(KTln⁡T)\mathrm{Regret}(T) = O\left(\sqrt{K T \ln T}\right)

(推导:把臂分成 Δa<δ\Delta_a < \delta 和 ≥δ\ge \delta 两组,前者遗憾最多 TδT\delta,后者最多 ∑8ln⁡T/δ≤8Kln⁡T/δ\sum 8\ln T/\delta \le 8K\ln T/\delta;取 δ=8Kln⁡T/T\delta = \sqrt{8K\ln T/T} 平衡两项。)

另一方面,可以证明任何算法在最坏的老虎机上都至少有 Ω(KT)\Omega(\sqrt{KT}) 的遗憾(极小极大下界)。UCB1 只差一个 ln⁡T\sqrt{\ln T} 因子(MOSS 等改进算法可以去掉它)。

所以遗憾界有两种说法:

与问题有关(gap-dependent)与问题无关(gap-independent / minimax)
形式O(∑aln⁡T/Δa)O(\sum_a \ln T/\Delta_a)O(KTln⁡T)O(\sqrt{KT\ln T})
回答的问题在这个老虎机上表现如何?在最坏的老虎机上表现如何?
下界Lai–Robbins:Cln⁡TC\ln TΩ(KT)\Omega(\sqrt{KT})

7.3 先探索后承诺:A/B 测试

实践中最常见的做法是 A/B 测试,也就是先探索后承诺(Explore-Then-Commit, ETC):先把每个版本各试 mm 次,然后选表现最好的,全量上线,不再改变。

演示 3(两臂,T=104T = 10^4,重复 300 次):

策略Δ=0.02\Delta=0.02Δ=0.05\Delta=0.05Δ=0.1\Delta=0.1Δ=0.2\Delta=0.2最坏情况
ETC,m=20m = 2076.8160.4244.4183.3244.4
ETC,m=50m = 5080.2147.7166.762.8166.7
ETC,m=100m = 10070.6109.572.120.0109.5
ETC,m=200m = 20062.261.236.040.062.2
ETC,m=500m = 50047.249.050.0100.0100.0
ETC,m=1000m = 100046.154.0100.0200.0200.0
UCB1 (c=0.5c = 0.5)47.142.830.218.947.1
每个 Δ\Delta 下最好的 ETC46.149.036.020.0—
  1. 最佳的 mm 随 Δ\Delta 变化很大:Δ\Delta 小要多探索,Δ\Delta 大要少探索。mm 太小 → 有相当概率选错,此后每一步都亏 Δ\Delta,而且再也纠正不过来;mm 太大 → 在差的版本上浪费太多。
  2. 即使”作弊”——知道 Δ\Delta、为每个 Δ\Delta 挑出最好的 mm——ETC 也只是与 UCB1 打平或更差。这与理论一致:调到最优的 ETC 的遗憾仍比 UCB 大一个常数倍。原因是 ETC 的探索量是事先定死的,UCB 则根据数据随时调整:差距明显时早早停止探索,差距不明显时继续收集证据。
  3. 任何固定的 mm,最坏情况都明显比 UCB1 差。

那为什么 A/B 测试仍然被广泛使用? 它简单、容易解释,方便做严格的统计检验(“B 版本显著更好,p < 0.05”),而且实验结束后决策就固定了,便于工程实施。如果目标是”弄清楚哪个版本更好”(纯探索/最优臂识别),A/B 测试很合理;如果目标是”实验期间的总收益”(遗憾最小化),老虎机算法通常更好。两个目标不同,最优的算法也不同。

💡 写代码时的一个坑:如果 ETC 在探索结束后每一步都重新选”经验均值最高的臂”,那么承诺的臂的均值会继续更新,选错了还能被纠正——这就变成了”强制探索 + 贪心”,不再是 ETC。本讲代码的第一版就犯了这个错误,导致 ETC 看起来比 UCB 还好。正确的实现只在探索刚结束时做一次决定(见 bandits.py 中 explore_then_commit 的注释)。当实验结果”好得出乎意料”时,先检查代码。


8. 从老虎机到强化学习

8.1 乐观原则贯穿全课

讲次乐观原则的体现
第 4 讲乐观初始化 Q 值(本讲 3.3 节看到了它的局限)
第 11 讲UCB:给每个动作加一个随不确定性减小的”探索奖励”
第 13 讲MDP 中的乐观:R-max、MBIE-EB(给每个状态-动作对加探索奖励)
第 14 讲UCT:把 UCB 用在搜索树的每个节点上(AlphaGo 的核心)
深度 RL基于计数的探索奖励、好奇心驱动的探索

8.2 乐观与悲观

第 10 讲的离线 RL 用的是悲观:置信下界。本讲的在线学习用的是乐观:置信上界。同一个置信区间,两种用法:

  • 能收集新数据时,高估一个动作的代价是”试一次,发现不好”——有限且可纠正。乐观让我们去验证那些”可能很好”的动作。
  • 不能收集新数据时,高估的代价是”部署一个坏策略”——无法纠正。悲观让我们只信任有数据支持的动作。

8.3 从老虎机到 MDP,难在哪里?

老虎机中,选择只影响当前奖励和我们学到的信息。在 MDP 中:

  1. 选择会改变状态,有些状态只有经过一长串特定动作才能到达——探索需要有计划;
  2. 奖励可能延迟很久才出现;
  3. 需要学的不只是 KK 个数,而是整个转移与奖励模型。

第 13 讲将讨论这些问题。在那之前,下一讲介绍另一种完全不同的探索思路:贝叶斯方法与汤普森采样。


9. 本讲总结

9.1 核心概念清单

  1. 多臂老虎机:只有一个状态的 RL,完整保留了探索与利用的矛盾。
  2. 遗憾:Regret(T)=Tμ∗−E[∑rt]=∑aΔaE[Na(T)]\mathrm{Regret}(T) = T\mu^* - \mathbb{E}[\sum r_t] = \sum_a \Delta_a \mathbb{E}[N_a(T)];看它随 TT 的增长速度。
  3. 贪心:可能永远卡在次优臂上,线性遗憾。
  4. ε\varepsilon-贪心:永不停止的探索,线性遗憾,后期每步遗憾 ≈εΔˉ\approx \varepsilon\bar\Delta;最佳 ε\varepsilon 依赖 TT。
  5. 递减 ε\varepsilon、乐观初始化:参数隐含对问题难度的假设,猜错就可能认错最好的臂。
  6. 霍夫丁不等式:P(μ^−μ≥u)≤e−2nu2P(\hat\mu - \mu \ge u) \le e^{-2nu^2};置信宽度 ∝1/n\propto 1/\sqrt n。
  7. UCB1:μ^a+cln⁡t/Na\hat\mu_a + \sqrt{c\ln t/N_a};面对不确定性时保持乐观;遗憾 O(∑aln⁡T/Δa)O(\sum_a \ln T/\Delta_a);不需要知道差距。
  8. Lai–Robbins 下界:lim inf⁡Regret/ln⁡T≥∑aΔa/kl(μa,μ∗)\liminf \mathrm{Regret}/\ln T \ge \sum_a \Delta_a/\mathrm{kl}(\mu_a, \mu^*);KL 散度衡量区分两个臂的难度。
  9. KL-UCB:用 KL 散度构造上界,渐近最优;成功率接近 0 或 1 时远胜 UCB1。
  10. 两种遗憾界:与问题有关 O(∑ln⁡T/Δ)O(\sum \ln T/\Delta);与问题无关 O(KTln⁡T)O(\sqrt{KT\ln T}),下界 Ω(KT)\Omega(\sqrt{KT})。
  11. ETC / A/B 测试:探索量事先定死,即使调到最优也不如 UCB;但它适合”纯探索”的目标。

9.2 公式速查表

名称公式
差距Δa=μ∗−μa\Delta_a = \mu^* - \mu_a
遗憾分解Regret(T)=∑aΔaE[Na(T)]\mathrm{Regret}(T) = \sum_a \Delta_a \mathbb{E}[N_a(T)]
ε\varepsilon-贪心的遗憾下界Regret(T)≥εT⋅1K∑aΔa\mathrm{Regret}(T) \ge \varepsilon T \cdot \frac1K\sum_a\Delta_a
霍夫丁不等式P(μ^n−μ≥u)≤e−2nu2P(\hat\mu_n - \mu \ge u) \le e^{-2nu^2}
置信上界μ≤μ^n+ln⁡(1/δ)/(2n)\mu \le \hat\mu_n + \sqrt{\ln(1/\delta)/(2n)},概率 ≥1−δ\ge 1-\delta
UCB1at=arg⁡max⁡aμ^a+2ln⁡t/Naa_t = \arg\max_a \hat\mu_a + \sqrt{2\ln t/N_a}
UCB1 遗憾界E[Na(T)]≤8ln⁡T/Δa2+1+π2/3\mathbb{E}[N_a(T)] \le 8\ln T/\Delta_a^2 + 1 + \pi^2/3
伯努利 KLkl(p,q)=pln⁡pq+(1−p)ln⁡1−p1−q\mathrm{kl}(p,q) = p\ln\frac pq + (1-p)\ln\frac{1-p}{1-q}
Lai–Robbinslim inf⁡T→∞Regret(T)/ln⁡T≥∑a:Δa>0Δa/kl(μa,μ∗)\liminf_{T\to\infty} \mathrm{Regret}(T)/\ln T \ge \sum_{a:\Delta_a>0} \Delta_a/\mathrm{kl}(\mu_a,\mu^*)
KL-UCBmax⁡{q≥μ^a:Na kl(μ^a,q)≤ln⁡t}\max\{q \ge \hat\mu_a : N_a\,\mathrm{kl}(\hat\mu_a, q) \le \ln t\}
与问题无关的界O(KTln⁡T)O(\sqrt{KT\ln T});下界 Ω(KT)\Omega(\sqrt{KT})
Pinsker 不等式kl(p,q)≥2(p−q)2\mathrm{kl}(p, q) \ge 2(p-q)^2

9.3 中英术语对照表

中文英文中文英文
多臂老虎机Multi-armed bandit臂Arm
遗憾Regret伪遗憾Pseudo-regret
差距Gap / suboptimality gap线性遗憾Linear regret
次线性遗憾Sublinear regret对数遗憾Logarithmic regret
贪心Greedy乐观初始化Optimistic initialization
递减 ε-贪心Decaying ε-greedy霍夫丁不等式Hoeffding’s inequality
置信上界Upper confidence bound (UCB)面对不确定性时保持乐观Optimism in the face of uncertainty
探索奖励Exploration bonus一致的算法Consistent algorithm
渐近最优Asymptotically optimal与问题有关的界Problem-/gap-dependent bound
与问题无关的界Problem-independent / minimax bound先探索后承诺Explore-then-commit (ETC)
纯探索Pure exploration最优臂识别Best-arm identification

10. 练习题

练习 1(遗憾分解):三臂老虎机,μ=(0.9,0.8,0.5)\mu = (0.9, 0.8, 0.5)。某算法在 T=1000T = 1000 步中平均拉臂 2 共 50 次、拉臂 3 共 10 次。它的遗憾是多少?

参考答案

Δ=(0,0.1,0.4)\Delta = (0, 0.1, 0.4)。遗憾 =0.1×50+0.4×10=5+4=9= 0.1 \times 50 + 0.4 \times 10 = 5 + 4 = 9。注意:拉差距小的臂 50 次与拉差距大的臂 10 次,贡献的遗憾差不多。

练习 2(贪心的失败概率):两臂伯努利老虎机,μ=(0.9,0.5)\mu = (0.9, 0.5)。贪心先各拉一次。计算”最好的臂第一次得到 0、另一个臂第一次得到 1”的概率。这种情况发生后,贪心还会再拉臂 1 吗?

参考答案

P=0.1×0.5=0.05P = 0.1 \times 0.5 = 0.05。发生后,臂 1 的经验均值为 0,臂 2 为 1。之后贪心一直拉臂 2,它的经验均值收敛到 0.5 但永远大于 0(只要有一次成功,均值就是正的),所以臂 1 永远不会再被拉。遗憾 ≥0.05×0.4×(T−2)\ge 0.05 \times 0.4 \times (T - 2),线性。

练习 3(ε-贪心):在默认老虎机上(Δˉ=0.22\bar\Delta = 0.22),ε=0.05\varepsilon = 0.05 的 ε\varepsilon-贪心在 T=106T = 10^6 时的遗憾大约是多少?UCB1(c=0.5c = 0.5)呢?(后者可以用 R(105)≈100R(10^5) \approx 100 和对数增长粗略估计。)

参考答案

ε\varepsilon-贪心:≈0.05×0.22×106=11000\approx 0.05 \times 0.22 \times 10^6 = 11000(加上前期的少量额外遗憾)。UCB1:对数增长,≈100×ln⁡106/ln⁡105=120\approx 100 \times \ln 10^6 / \ln 10^5 = 120(实际会略多,因为有低阶项,但量级在一两百)。相差约 100 倍,而且 TT 越大差距越大。

练习 4(霍夫丁不等式):要以 99% 的把握保证一个臂的经验均值与真实均值相差不超过 0.05,需要拉多少次?

参考答案

双侧:2e−2nu2≤0.012e^{-2n u^2} \le 0.01,u=0.05u = 0.05 → n≥ln⁡(200)/(2×0.0025)=5.30/0.005≈1060n \ge \ln(200)/(2 \times 0.0025) = 5.30/0.005 \approx 1060 次。

练习 5(UCB 的直觉):在 5.3 节 t=10000t = 10000 的表格中,臂 1 和臂 2 被拉的次数差不多(195 与 189),尽管臂 2 的真实成功率更高(0.5 vs 0.4)。为什么?

参考答案

在这次实验中,臂 2 的经验均值被低估了(0.429,真实值 0.5),而臂 1 被稍微高估(0.436,真实值 0.4)。UCB 只根据经验均值和次数做决定,它”看到”的两个臂差不多,所以拉的次数也差不多。随着 tt 继续增长,两者的估计都会收敛,被拉的次数也会逐渐与 1/Δ21/\Delta^2 成比例。这也说明:单次实验中的具体数字有随机性,结论要看多次实验的平均。

练习 6(下界):两臂老虎机 μ=(0.5,0.6)\mu = (0.5, 0.6) 和 μ=(0.05,0.15)\mu = (0.05, 0.15),差距都是 0.1。分别计算 Lai–Robbins 常数 CC。哪个更难?为什么?

参考答案

kl(0.5,0.6)=0.5ln⁡(0.5/0.6)+0.5ln⁡(0.5/0.4)=−0.0912+0.1116=0.0204\mathrm{kl}(0.5, 0.6) = 0.5\ln(0.5/0.6) + 0.5\ln(0.5/0.4) = -0.0912 + 0.1116 = 0.0204,C=0.1/0.0204≈4.9C = 0.1/0.0204 \approx 4.9。 kl(0.05,0.15)=0.05ln⁡(1/3)+0.95ln⁡(0.95/0.85)=−0.0549+0.1057=0.0507\mathrm{kl}(0.05, 0.15) = 0.05\ln(1/3) + 0.95\ln(0.95/0.85) = -0.0549 + 0.1057 = 0.0507,C=0.1/0.0507≈2.0C = 0.1/0.0507 \approx 2.0。 第一个更难。成功率接近 0.5 时方差最大,同样的差距更难区分;成功率低时方差小,差距 0.1 相对更”明显”。而霍夫丁不等式对两者一视同仁(都按 Δ=0.1\Delta = 0.1 算),所以 UCB1 在第二个问题上会过度探索。

练习 7(与问题无关的界):用 7.2 节的方法推导:若每个次优臂被拉的次数不超过 8ln⁡T/Δa28\ln T/\Delta_a^2,则遗憾不超过 28KTln⁡T2\sqrt{8KT\ln T}。

参考答案

对任意 δ>0\delta > 0:差距 <δ< \delta 的臂,总遗憾 ≤δT\le \delta T;差距 ≥δ\ge \delta 的臂,每个贡献 Δa⋅8ln⁡T/Δa2=8ln⁡T/Δa≤8ln⁡T/δ\Delta_a \cdot 8\ln T/\Delta_a^2 = 8\ln T/\Delta_a \le 8\ln T/\delta,总共不超过 8Kln⁡T/δ8K\ln T/\delta。所以 Regret≤δT+8Kln⁡T/δ\mathrm{Regret} \le \delta T + 8K\ln T/\delta。取 δ=8Kln⁡T/T\delta = \sqrt{8K\ln T/T} 使两项相等,得 Regret≤28KTln⁡T\mathrm{Regret} \le 2\sqrt{8KT\ln T}。

练习 8(动手)★:在 ucb1 中把 np.log(t) 换成常数 np.log(L)(置信宽度不再随时间增长),取 c=0.5c = 0.5,在困难的老虎机上运行 T=105T = 10^5。分别试 L=1000,100,20L = 1000, 100, 20,重复 1000 次。平均遗憾、最大遗憾和”认错”的比例如何变化?为什么 ln⁡t\ln t 必须随时间增长?

参考答案

实测结果(1000 次重复):

置信宽度中的对数项平均遗憾最差 1% 实验最大遗憾认错比例
ln⁡t\ln t(标准 UCB)173.8310.53630.0%
ln⁡1000\ln 1000(常数)112.0229.74300.0%
ln⁡100\ln 100(常数)98.0268.230430.7%
ln⁡20\ln 20(常数)139.73015.830522.9%

出人意料的是:在这个规模上,常数 ln⁡1000\ln 1000 的平均表现反而更好(置信区间更窄,探索更少),1000 次实验中也没有一次卡住。但常数越小,卡住的实验越多;卡住的实验遗憾约 3000 ≈ Δ×T\Delta \times T,是线性的。

原因:宽度不随时间增长时,一个被低估的好臂一旦上界低于次优臂的均值,就再也不会被重试,卡住的概率是一个固定的正数。ln⁡1000\ln 1000 时这个概率很小,1000 次实验里看不到,但只要 TT 足够长,期望遗憾终究是线性的。ln⁡t\ln t 的缓慢增长让”上界失效”的概率随时间趋于 0,保证每个臂都会被无限次重试(尽管频率越来越低)。这是可证明的保证与有限次实验中的表现之间的又一个例子:小概率的灾难在几百次实验里可能根本看不到。

练习 9(思考题):一家公司想用老虎机算法替代 A/B 测试来选择网页设计。列出至少两个 A/B 测试更合适的理由,和两个老虎机算法更合适的理由。

参考答案

A/B 测试更合适:(1) 目标是得出可靠的科学结论(比如”新设计提高了转化率”),需要严格的统计检验和对照组,而老虎机算法的数据分配是自适应的,会让标准的统计检验失效;(2) 决策需要一次性做出、之后长期固定(比如改版需要大量工程投入);(3) 奖励有延迟(比如 30 天留存率),自适应分配难以实施。 老虎机更合适:(1) 实验期间的收益很重要(比如促销期只有几天,每个用户都是真金白银);(2) 选项很多(几十个标题),A/B 测试给每个选项平均分配流量太浪费;(3) 环境在变化,需要持续地学习和调整。


11. 延伸阅读

  • CS234 Spring 2024 Lecture 11–12 录像与课件。
  • Lattimore & Szepesvári (2020),Bandit Algorithms:老虎机理论最全面的教材,作者网站可免费下载。第 6–10 章对应本讲。
  • Auer, Cesa-Bianchi & Fischer (2002),Finite-time Analysis of the Multiarmed Bandit Problem:UCB1 与递减 ε\varepsilon-贪心的原始论文。
  • Lai & Robbins (1985),Asymptotically Efficient Adaptive Allocation Rules:遗憾下界。
  • Garivier & Cappé (2011),The KL-UCB Algorithm for Bounded Stochastic Bandits and Beyond。
  • Sutton & Barto,第 2 章:多臂老虎机(更偏直觉,含乐观初始化、梯度老虎机等)。
  • Slivkins (2019),Introduction to Multi-Armed Bandits:另一本简明的免费教材。

12. 下一讲预告

UCB 是一种频率学派的方法:它不对未知的 μa\mu_a 做任何假设,只用”最坏情况”的集中不等式来构造置信区间。

如果我们对 μa\mu_a 有一些先验知识呢?比如,“新广告的点击率通常在 1%~5% 之间”。下一讲介绍贝叶斯的思路:

  • 用概率分布表示对每个臂的”信念”,每观察一次奖励就用贝叶斯公式更新它(Beta–Bernoulli 共轭先验);
  • 汤普森采样:从信念中随机抽一个”可能的世界”,然后在那个世界里做最优的选择。它出奇地简单,却和 KL-UCB 一样渐近最优,在实践中常常更好;
  • 贝叶斯遗憾:在”问题本身是随机抽出来的”时,平均表现如何;
  • 上下文老虎机:每个用户不一样时,怎样利用用户的特征(LinUCB)。

下一讲之前,建议你:跑通 code/lecture11/ 下的 3 个脚本,完成练习 1、2、4、6,并尝试练习 8。

← 返回课程目录