跳到主要内容

主动学习 — 标注预算花在刀刃上

这一章讲三件事: 主动学习的三要素(策略、候选池、标注者); 不确定性的三种量法;以及用判别器补上「多样性」的进阶玩法。 主走查是 200 个点、25 个标注预算的完整循环——「挑着标」怎么赢「随便标」。 与第 08 章是一对:那边是「彻底不要标注」,这边是「标注花得值」。

1. 顶层全景

┌─────────────── 本轮模型 ───────────────┐
│ │
▼ │
无标注池 ──查询策略挑 1 个──▶ 标注者打标签 │
(一大堆没标的数据) │ │
▼ │
已标注集(变大 1 个)───┘

重新训练 → 下一个循环

图说:与普通训练唯一的区别是"标谁"由模型自己提名。
循环一圈,已标注集多一个最有信息量的样本——预算花在刀刃上[^1]。

2. 核心原理

2.1 三要素:策略、池子、oracle

主动学习是半监督(标注一部分、留一部分不标)方法的一种,目标直白:少标多学。原书拆出三个部件1:

要素角色一句话
查询策略挑谁去标注核心情报部门
无标注池候选人名单池子的多样性和大小直接决定上限
标注者(oracle)给真值的人可能是专家、众包或自动系统,它的准确与速度是硬约束

策略的底层直觉只有一句话:模型最没把握的样本,往往就是信息量最大的样本—— 它正好落在模型理解的空白地带,标一个、补一片2。 主动学习还有一个被低估的优点:适应变化。数据分布漂移时,持续挑「当前最没把握」的样本标注, 模型自动跟上新分布——等于把「持续学习」内置进了流程3

2.2 主走查:200 个点,只许标 25 个

任务:分两组二维高斯点(中心 (−2,0) 和 (2,0),各 100 个);分类器用逻辑回归(画一条直线分开两类的经典小模型)。 全量 200 个都标上训练,准确率 0.97——这是天花板4。 现在只给 25 个标注名额,主动学习循环这样跑5:

初始(种子):从每组随机挑 1 个,标好 ——已标注集 = 2 个
循环 23 轮:
① 用当前已标注集训练模型
② 模型给无标注池里每个点打分(每点一个"属于组1"的概率)
③ 查询策略选出一个点 → 交给标注者 → 进已标注集
④ 回到 ①
结束:25 个标注,准确率 0.965(不确定性策略,原书实测)[^7]

用 12.5% 的标注预算,拿到只比天花板低 0.5 个百分点的成绩——这个量级的「省」 正是主动学习的卖点。而「随便标 25 个」(随机策略)在同样预算下明显更差; 原书跑了 100 次取平均,不确定性策略的曲线全程压住随机策略6

选出来的点在哪?把它们画出来看:几乎全落在两组数据的分界线附近7。 道理直白:分界线附近的点两种可能都像,模型拿不准;远处的点闭着眼也能分对,标了浪费。

2.3 不确定性的三种量法

二分类里「没把握」就是一个数(预测概率接近 0.5); 多分类里「没把握」变成了一个向量,量法不止一种,选择直接影响效果8:

量法挑哪个个性
最小置信度「最高那个类概率」最小的点通用默认
小 margin「最高与次高概率之差」最小的点更稳:盯两类交界,不易被多类交叉口的怪点带偏(原书练习 12-4 的注)
预测分布整体最「摊」的点捕捉总不确定性,但算得贵
大 margin(反向操作)最自信的点巩固已懂区域,不修边界——对照项

四个量法各跑一遍再画在同一张图上比较,是原书练习 12-4 布置的完整实验9

2.4 进阶:不确定之外,还要多样

纯不确定性策略有个系统性盲区:它挑的点容易扎堆——分界线附近那一片被反复采样, 而数据其他区域的新信息没人管。对抗式采样给系统补上「多样性」这一维10:

训练一个判别器:只干一件事——猜"这个样本标过没有"

├─ 判成"标过" → 它长得像已标注样本 → 信息不多,跳过
└─ 判成"没标过" → 它是已标注世界之外的新面孔 → 优先提名

最终提名分数 = 不确定性(margin 准则)与多样性的加权合成[^13]

判别器还有一笔附带收益:为了骗过它,特征骨干被迫用全部数据(不只是已标注的) 学出有结构的表示——小标注量下泛化更好11

2.5 主走查续:MNIST 上的验收

大考在 MNIST 上:分类器换成卷积网络,对比三种策略——随机、不确定性(margin)、对抗式。 预算制度:每轮标 120 张,总预算 1,800 张(≈六万训练图的 3%),跑 5 次取中位数12

结果阶梯(原书实测)13:

随机:稳步上升,但要更多标注才到位
不确定性:起步慢,后劲足,同样标注量下压住随机
对抗式:最快、最稳 —— 用 3% 的训练数据,达到接近全量训练的精度[^17]

3. 作者的判断与证据

  • 有证据的:200 点玩具上的策略对比曲线(100 次取平均)、MNIST 上的三策略对照、 3% 数据逼近全量——全是实测数字。
  • 作者的取舍点:不确定性「起步慢」——早期模型没把握的地方到处都是,提名质量差; 这是冷启动问题,种子样本的选择因此要随机铺开(原书循环第一步就是每类随机标一个)5
  • 诚实的坦白:多分类的不确定性量法「选择显著影响效果」,没有万灵药8

4. 边界与局限

边界说明
冷启动弱模型没学过时「没把握」没有意义;要靠随机种子起步
挑出的点分布偏集中在边界,远域欠采样——多样性约束是解药也是额外复杂度
oracle 不便宜也不一定对专家时间是真金白银;标注质量差,再聪明的提名也白搭
单个提名效率低每轮只标 1 个时重训次数太多;批量化(每轮 120)又稀释了「逐个挑」的精细
「3%」数字不可直接外推数据集、模型、任务一变,比例就变;可外推的是方法论不是数字

5. 可带走的

  1. 标注预算有限时,「挑着标」结构性优于「随便标」——分界线附近的样本最值钱;
  2. 三要素:查询策略、无标注池、oracle;池子的多样性是隐性上限;
  3. 不确定性多分类三量法:最小置信度、小 margin、熵;小 margin 更稳;
  4. 对抗式采样 = 不确定性 + 多样性:判别器认「陌生面孔」,补上扎堆的盲区;
  5. MNIST 实测:3% 标注逼近全量训练——主动学习与自监督(第 08 章)是省标注的两条互补路线;
  6. 循环设计的细节决定成败:随机种子起步、批量化提名、多次试验取中位数;
  7. 分布漂移场景下,主动学习天然就是持续学习机制;
  8. 先问「标注预算多少」,再选路线:预算为零去第 08 章,预算有限留本章,预算管够直接监督学习。

6. 原文地图

主题原书章原文位置
标注贵、主动学习目标Understanding Active Learningtext/89-fm-understanding-active-learning.txt:4(搜「cost of labeling data is high」)
减少标注量Understanding Active Learningtext/89-fm-understanding-active-learning.txt:14(搜「most informative samples for labeling」)
查询策略两类Understanding Active Learningtext/89-fm-understanding-active-learning.txt:16(搜「uncertainty sampling」)
无标注池Understanding Active Learningtext/89-fm-understanding-active-learning.txt:18(搜「unlabeled pool」)
oracleUnderstanding Active Learningtext/89-fm-understanding-active-learning.txt:20(搜「labeling oracle」)
适应分布变化Understanding Active Learningtext/89-fm-understanding-active-learning.txt:22(搜「continuously adapt」)
全量基线 0.97Understanding Active Learningtext/89-fm-understanding-active-learning.txt:79(搜「was 0.97」)
种子与循环结构Understanding Active Learningtext/89-fm-understanding-active-learning.txt:108(搜「seed dataset」) · text/89-fm-understanding-active-learning.txt:110(搜「exhausts the budget」)
不确定性=最小最大概率Understanding Active Learningtext/89-fm-understanding-active-learning.txt:177(搜「least confident」)
25 标注得 0.965Understanding Active Learningtext/89-fm-understanding-active-learning.txt:185(搜「0.965」)
收敛更快Understanding Active Learningtext/89-fm-understanding-active-learning.txt:232(搜「converges more quickly」)
多分类不确定性变向量Understanding Active Learningtext/89-fm-understanding-active-learning.txt:240(搜「uncertainty becomes more complex」)
选点在分界线附近Understanding Active Learningtext/89-fm-understanding-active-learning.txt:340(搜「near the decision boundaries」)
三种量法(练习)Understanding Active Learningtext/89-fm-understanding-active-learning.txt:344(搜「small margin sampling」) · text/89-fm-understanding-active-learning.txt:348(搜「entropy sampling」)
小 margin 更稳Understanding Active Learningtext/89-fm-understanding-active-learning.txt:379(搜「more stable because it finds points」)
MNIST 三策略Understanding Active Learningtext/89-fm-understanding-active-learning.txt:442(搜「uniform random sampling」)
预算 120/1800Understanding Active Learningtext/89-fm-understanding-active-learning.txt:451(搜「max_budget」)
对抗式=不确定性+多样性Understanding Active Learningtext/89-fm-understanding-active-learning.txt:536(搜「uncertainty sampling and diversity」)
加权信息分数Understanding Active Learningtext/89-fm-understanding-active-learning.txt:571(搜「weighted informativeness score」)
3% 数据逼近全量Understanding Active Learningtext/89-fm-understanding-active-learning.txt:609(搜「3 percent of the training data」)

Footnotes

  1. 出处:「Understanding Active Learning」第 16-20 段(text/89-fm-understanding-active-learning.txt:16,搜「query strategy」)、第 18 段(text/89-fm-understanding-active-learning.txt:18,搜「unlabeled pool」)、第 20 段(text/89-fm-understanding-active-learning.txt:20,搜「labeling oracle」)。

  2. 出处:「Understanding Active Learning」第 16 段(text/89-fm-understanding-active-learning.txt:16,搜「most informative」)。

  3. 出处:「Understanding Active Learning」第 22 段(text/89-fm-understanding-active-learning.txt:22,搜「continuously adapt」)。

  4. 出处:「Understanding Active Learning」第 79 段(text/89-fm-understanding-active-learning.txt:79,搜「was 0.97」)。

  5. 出处:「Understanding Active Learning」第 108-110 段(text/89-fm-understanding-active-learning.txt:108,搜「seed dataset」)。 2

  6. 出处:「Understanding Active Learning」第 206-232 段(text/89-fm-understanding-active-learning.txt:34,搜「100」)、第 232 段(text/89-fm-understanding-active-learning.txt:232,搜「converges more quickly」)。

  7. 出处:「Understanding Active Learning」第 340 段(text/89-fm-understanding-active-learning.txt:340,搜「near the decision boundaries」)。

  8. 出处:「Understanding Active Learning」第 240 段(text/89-fm-understanding-active-learning.txt:240,搜「uncertainty becomes more complex」)。 2

  9. 出处:「Understanding Active Learning」第 379 段(text/89-fm-understanding-active-learning.txt:379,搜「Compare the performance」)。

  10. 出处:「Understanding Active Learning」第 536-538 段(text/89-fm-understanding-active-learning.txt:536,搜「uncertainty sampling and diversity」)。

  11. 出处:「Understanding Active Learning」第 538 段(text/89-fm-understanding-active-learning.txt:538,搜「enforcing a structure to the embeddings」)。

  12. 出处:「Understanding Active Learning」第 450-454 段(text/89-fm-understanding-active-learning.txt:451,搜「max_budget」)、第 419 段(text/89-fm-understanding-active-learning.txt:419,搜「adaptive averaging」)。

  13. 出处:「Understanding Active Learning」第 612-620 段(text/89-fm-understanding-active-learning.txt:603,搜「steady increase in accuracy」)、第 605 段(text/89-fm-understanding-active-learning.txt:605,搜「After a slow start」对应不确定性起步)、第 607 段(text/89-fm-understanding-active-learning.txt:607,搜「more quickly and consistently」)。