跳到主要内容

调完之后,它说的「九成把握」还算数吗(DAC)

这一章讲三件事: 「它报的把握准不准」是一个和准确率完全无关的独立问题,而且量得出来; 第 08 章那套「学那句话」的做法在这个问题上会出一件反直觉的事故; 以及这件事故只用类名就能修好,几乎不花钱。 它在全书链条里的位置: 第 08、09、10 三章比的都是准确率——谁的分高谁赢。 这一章是对那三章的一次安全性拷问:分高了,但它自己知道自己什么时候可能错吗? 答案是调完之后反而更不知道了。

这也是第 01 章那笔账的结账处。 第 01 章讲最后一步「除以一个温度」时说, 这个温度是训练时学出来的、书里没交代更多。这一章发现:微调之后那个温度已经不合适了, 而且不是整体不合适,是对某些类别特别不合适

1. 顶层全景:一条从「报错把握」到「修好把握」的链

这一章只有一条主线,而且它有一个很干脆的形状:

① 它报了一个把握 「我有 90% 的把握这是条纹布」

② 你去数一数 报 90% 的那一批里,真正答对的只有一半上下
│ ↑ 这个「报的」和「真的」之间的差距,是这一章的全部主题
③ 什么时候会这样? 零样本时基本不会;**按第 08 章去学那句话之后才会**

④ 而且方向是反的 对学过的类偏保守,对**没学过的新类**过度自信

⑤ 拿现成办法救 救不动,在新类上比不救还差

⑥ 查病因 调完之后,新类的文本那一侧和学过的类裂开一条缝
│ **离这条缝越远的类,它越自信**
⑦ 对症下药 按「离得多远」给每一类单独把温度调高

⑧ 结果 11 个数据集上,新类的校准误差 13.84 → 7.00

图说:第 ③ 步是这一章的钩子,第 ⑥ 步是它的全部技术含量。
**注意从 ③ 到 ⑧ 全程没有碰过准确率**——这条链修的不是「答得对不对」,是「说得准不准」。

这一章的主走查,从头到尾锁死一个数据集:一个纹理分类数据集(DTD), 主干是 CLIP 的 ViT-B/16 版,用第 08 章那种「学那句话」的做法调过。

发生了什么具体的数
把这个数据集的类别劈成两半:一半拿每类 16 张图去学那句话这一半叫学过的类
另一半的类名一次都没参与训练,直接拿来测这一半叫没学过的新类
在新类上看「报 0.9 那一箱」报的把握比真实准确率高出 41.60 个百分点
全数据集算总账校准误差 26.86(原始未调的模型只有 6.86)
把新类的类名过一遍文本编码器,量它离学过的类多远得到一个 0 到 1 之间的邻近度
拿调之前的邻近度做分母,算出这一类的偏离分数 γ离得越远,γ 越小
推理时把这一类的所有分数乘以 γ(等价于把温度调高)报出来的把握被压低
再看那一箱 / 全数据集 / 11 个数据集平均41.60 → 11.37 · 26.86 → 10.48 · 13.84 → 7.00
代价一次推理从 0.12 秒变成 0.13 秒

这张表里的数全是书里的真数,唯一由我们推算的是第 ③ 步那句「真实准确率大约一半」—— 书里给的是「差距 41.60」,报的把握在 0.9 出头,所以真实准确率不到一半(这一步算术是我们做的)1

2. 先讲清「校准」:它和准确率是两回事

这一节回答:一个模型答对答错之外,还有什么可挑剔的?

从天气预报说起

天气预报说「明天有 70% 的概率下雨」。你没法拿一天来验证它—— 下了或没下,都不能说它错。

但你可以拿一百天来验证:把所有报过「70%」的日子挑出来,数一数其中真正下雨的有多少天。 如果是 70 天左右,这个预报说得准;如果只有 30 天,它就是在虚张声势。

这件事有个正式名字:校准。

一个校准得完美的模型满足这样一条:凡是它报出把握 q 的那些样本, 真正答对的比例就正好是 q2

注意它和准确率彻底无关。 一个准确率只有 30% 的模型可以校准得很好(它每次都老老实实报 0.3), 一个准确率 90% 的模型也可以校准得很烂(它次次报 0.99)。

(模型报出来的那个百分比,业内叫置信度——你在任何一份讲模型可靠性的材料里都会撞见这个词。 第 01 章那条链的最后一步吐出来的三个百分比 0.72 / 0.21 / 0.07,最大的那个 0.72 就是它的置信度。)

怎么把「说得准不准」变成一个数

做法就是上面那个「拿一百天来数」的机械化版本3:

① 把所有测试样本按它报的把握分箱:
报 0.0–0.1 的一箱、0.1–0.2 的一箱 …… 0.9–1.0 的一箱
② 每一箱里算两个数:
这一箱报的把握平均是多少(比如 0.93)
这一箱实际答对的比例是多少(比如 0.51)
③ 两个数相减取绝对值 → 这一箱的差距(0.42)
④ 各箱的差距按样本数加权平均 → 一个总数

图说:这个总数就是这一章从头用到尾的指标,
名字叫**期望校准误差**,通常写成 **ECE**,**越小越好**。
书里报的都是百分数形式:26.86 的意思是「平均差 26.86 个百分点」。
(0.93 / 0.51 这两个数是为演示编的,只用来说明箱内怎么算。)

为什么值得单开一章

书里给的理由很实在:这类模型要用在医疗诊断和自动驾驶这种地方4

在那种场景里,「我不太确定」是一条必须能被信任的信息—— 系统靠它来决定要不要转人工、要不要减速。 如果模型一律报九成把握,这条信息就等于不存在了。

3. 反直觉的事故:调完之后,它对没学过的类更自信

这一节是全章的钩子。

先说实验怎么摆的

书里用的是一套很标准的摆法:把一个数据集的类别劈成两半5

哪一半怎么用书里的叫法
前一半拿每类十几张标注图去学那句话基类(base)
后一半类名一次都没参与训练,直接拿来测新类(new)

这两个名字要留下——你在任何一篇讲这类适配方法的材料里都会撞见 base / new 这对词。 本章后面一律叫「学过的类」和「没学过的新类」,指的就是它们。

直觉会怎么猜

几乎所有人的第一反应都是同一个:

学过的类它见过样例,应该更自信;新类它没见过,应该更保守。

实际发生的正好相反

七种「学那句话」的方法、11 个数据集,量出来的是同一个方向6:

调完之后,模型对学过的类偏保守(报的把握低于实际准确率), 对没学过的新类过度自信(报的把握高于实际准确率)。

这就是主走查第 ③ 步那个数字的来历: 在纹理数据集的新类上, 报 0.9 那一箱,报出来的把握比真实准确率高出 41.60 个百分点—— 它说「九成把握」,实际连一半都不到1

而且这不是「本来就烂」: 同一个数据集,没调过的原始模型在新类上的校准误差只有 6.86, 调完之后是 26.86——是调这件事本身把它弄坏的7

这一句要和第 08 章连起来读才有分量: 第 08 章证明「学那句话」换个数据集就废(准确率意义上); 这一章证明它在同一个数据集内部、只是换一批类别,也已经出了另一种事故—— 而这种事故光看准确率是看不见的。

4. 拿现成办法救:救不动

这一节回答:这个问题在别的领域早就有解法,为什么搬不过来?

现成办法分两类

书里试了五种,分成两族8:

做法代表
缩放类不动模型,只把它吐出来那排数整体拉平或拉尖温度缩放、密度比校准
分箱类拿一批带答案的数据统计出「报 0.9 时实际是多少」,直接查表改写直方图分箱、保序回归

温度缩放正是第 01 章那个温度的直接用法: 拿一小批带答案的数据,只调「除以多少」这一个数,把整排把握统一压平或拉尖。 它是这一族里最简单也最常用的一种,名字必须留下。

结果:治好了这一半,治坏了那一半

在千类数据集上量出来的两行数9:

不校准温度缩放密度比校准原始未调的模型
学过的类4.821.940.733.58
没学过的新类1.593.903.862.09

两行的方向是反的,这是这一节的全部内容:

  1. 学过的类:救得很漂亮,4.82 降到 1.94 甚至 0.73;
  2. 新类:越救越糟,1.59 反而涨到 3.90——比根本不救还差10

分箱那一族更干脆:它压根用不了。 它需要拿「学过的类上的把握分布」当统计样本, 而新类是零样本预测,这个统计量不存在——所以表里那三格是空的10

病因的方向在这里就露出来了: 在学过的类上调出来的那个校正量, 搬到新类上是无效的甚至有害的。说明这两批类别之间存在某种系统性的差别, 而那个差别没有被「整排一起拉平」这种粗办法捕捉到。 下一节就去找那个差别是什么。

5. 病因:调完之后,文本那一侧裂开了一条缝

这一节是全章唯一有技术含量的地方,也是主走查的第 ⑤、⑥ 步。

先看一眼那个空间

第 01 章讲过:图和句子都被变成一串数,住在同一个空间里。 那个空间有几百维,人眼看不了,所以要先压到平面上画出来 (把高维的点压到平面的标准做法叫奇异值分解,这里只是画图用,不影响任何结论)。

画出来的东西是这样的11:

原始未调的模型:
图片那一堆点 ●●●●● 句子那一堆点 ▲▲▲▲▲
各自聚得挺紧,两堆之间隔着一段距离

按第 08 章调过之后(只看句子那一堆):
学过的类的句子 ▲▲▲▲▲ ┊裂缝┊ 新类的句子 △△△△△

**这条缝是调出来的,原来没有这么宽**

图说:调整只动了那句话里的几个词,所以变化几乎全部发生在句子这一侧。
书里对这条缝的说法是「明显的文本分布间隙」。

把这条缝量成一个数

光看图不能用,得有个数。书里借了一个现成的量12:

邻近度:拿一个点,找出它在参照集里最近的 K 个邻居,算平均距离, 再取一个「距离越大、值越小」的变换(这里用的是 exp(−距离))。 所以邻近度越高 = 它离参照集越近 = 它越像参照集里的东西。

在这里的具体用法是:

部件是什么
那个点一个新类的类名过完文本编码器得到的那串数
参照集所有学过的类的类名各自得到的那串数
K5(书里默认值)
距离普通的欧氏距离,但两串数都要先归一化成单位长度

注意这里全程只用到了类名,一张图片都没用。 这是下一节那个办法能成立的全部前提。

关键的那条相关性

把新类逐个算出邻近度,再逐个看它的把握和校准误差,得到一条很干净的规律13:

邻近度越低(离学过的那批类越远)→ 报的把握越高 → 校准误差越大。

而温度缩放在这张图上完全没用:它给所有类同一个校正量, 而问题恰恰是「不同的类需要不同的校正量」13

作者对这条规律的解释: 训练时的那个对比目标把图和字压进一个比较紧的分布里; 推理时如果一个类偏离这个分布太远,模型就对不准了,于是给出不合适的把握13

⚠️ 这条解释是作者的推断,不是被单独验证过的结论。 书里用的原话是「我们非正式地假设」——这一点后面第 10 节会再点一次。

6. 办法:按「离得多远」给每一类单独调温度

这一节是主走查的第 ⑦ 步,也是这一章唯一的方法。

先说它想要什么

目标一句话:离学过的类越远的新类,把握要压得越低。 因为那正是它最容易错、却报得最高的地方。

两步

第一步:给每个新类算一个偏离分数14

这个类在「调过的模型」里的邻近度
γ(这个类) = ───────────────────────────────────
这个类在「原始未调的模型」里的邻近度

图说:分子分母算的是同一件事,只是一个用调过的文本编码器、一个用原始的。
**相除是为了扣掉「这个类本来就偏」这一部分**——
我们要的是「调这件事让它偏了多少」,不是「它本来偏不偏」。
调完之后被推得越远,分子越小,γ 越小。

第二步:推理时把这一类的所有分数乘以 γ15

原来: 这一排分数 = 温度那一步的结果
现在: 这一排分数 = γ(模型选中的那一类) × 温度那一步的结果

γ < 1 → 整排分数被按比例缩小 → 摊平之后差距变小 → 报出来的把握降低

图说:乘一个小于 1 的数,和「把除数(温度)调大」是同一件事的两种写法。
所以书里管这叫「给不同的类分配不同的温度」——**离得越远,温度调得越高。**

三条必须点明的性质

性质为什么
准确率一个点都不变整排分数同乘一个数,谁最大还是谁最大——排序没动16
学过的类一个字不改对学过的类直接令 γ = 1,这时它退化成普通的温度缩放15
一张新类的图片都不需要γ 只用类名算得出来——而现实里新概念的图片往往正是你拿不到的东西15

第三条是这个办法真正的卖点,值得多说一句。 上一节那些救不动的办法,失败的根子都在「校正量要从数据里统计出来」, 而新类恰恰没有数据。这个办法绕开的正是这一点: 它从类名本身就看得出「这个类有多陌生」。

还有一条:它挂在谁后面都行

书里在七种「学那句话」的方法上各挂了一遍,七种全都变好17它不改训练、不改结构,只在推理时乘一个数——书里管这叫「与算法无关」。

7. 效果:降了多少,以及降在哪儿

全表:11 个数据集的新类平均校准误差

被挂的方法挂之前挂之后
第 08 章那种最基础的做法(CoOp)13.847.00
它的一个改进版(CoCoOp)6.294.82
表里本来最好的一种(PromptSRC)3.843.63
(参照物:原始未调的模型)4.43

这张表有三条读法18:

  1. 降幅最大的是最基础那一种,13.84 砍掉一半多;
  2. 原方法越好,可捡的越少——最好的那一种只降 0.21;
  3. 最要紧的一条参照:原始未调的模型是 4.43。 也就是说,调之前它比调之后好得多;这个办法把 13.84 拉回 7.00, 但仍然没回到「根本不调」的水平。这一点书里没有明说,是我们从同一张表里读出来的。

降在哪儿:全在高把握那一头

书里把纹理数据集按把握分箱,逐箱列出差距1:

报的把握落在这一箱挂之前的差距挂之后的差距
0.633.28
0.730.30
0.837.84
0.941.6011.37

一箱就改善了 30.23,而低把握那几箱几乎没动。

这个分布正是你想要的分布。 模型报 0.2 的时候本来就没人会信它;出事的地方永远是它报 0.9 而你信了。 这个办法恰好把力气全用在那一箱上。

8. 一个便宜到不像话的对照:文本 vs 图像

这一节是这一章最实用的一条结论,而且它是靠一张成本表说出来的。

「按离得多远来调把握」这个思路本身不是新的,以前的做法是拿图片来算距离: 把测试图片的那串数拿去和一堆参照图片比。书里把两条路摆在一起量19:

不校准本章的办法(用文本)老办法(用图像)两个一起上
学过的类的误差1.651.651.191.19
新类的误差10.695.678.083.29
一次推理要多久0.12 秒0.13 秒15.88 秒15.91 秒

三条结论,一条比一条实在:

  1. 用文本的那条更准(5.67 对 8.08);
  2. 用文本的那条几乎不要钱(多花 0.01 秒),而用图像的那条慢 120 倍以上—— 0.12 秒是你眨一次眼,15.88 秒是你等一杯咖啡凉;
  3. 两条可以叠加,叠起来最好(3.29)——但那 15.9 秒的账也照付。

判断(我们的,不是书里的): 这张表比这一章的主方法更值得记住。 它说明「这个类有多陌生」这件事,在类名那一侧就已经写着了,不必去看图片。 而类名是你在任何一个开放词表场景里唯一一定拿得到的东西—— 新概念的图片可能一张都没有,但你既然要模型认它,就一定说得出它叫什么。 如果错,会错在: 这个对照只在一个千类数据集上做过一次, 而且两条路用的是不同论文的实现。在类名很短、很抽象的领域 (比如类名是型号编码而不是自然词),文本这一侧可能根本量不出距离, 那时图像那条路的额外开销就是必要成本了。

9. 两个稳健性检查

这一节短,但它决定这个办法能不能被别人复现。

① 邻居取几个不敏感。 K 从 1 试到 10,K=1 就已经有明显改善,再加邻居收益递减; 书里全程用 520

② 归一化不能省。 算距离之前那两串数必须先归一化成单位长度, 否则「这串数本身有多长」会把邻居距离带歪——书里说这是这个办法有效的关键因素之一21

③ 顺带一条:样例给多少张都救不了。 每类样例从少到多试了一遍, 准确率会随样例增多而涨,校准误差却一直在—— 这说明它不是「训练不够」造成的22

10. 作者的判断与证据

书里给了证据的:

说法证据
调完之后对学过的类偏保守、对新类过度自信七种方法 × 11 个数据集,外加纹理数据集的逐箱可靠性图
现成办法在新类上失效表 9.1 两行数:学过的类 4.82 → 1.94,新类 1.59 → 3.90
分箱类办法用不了它需要学过的类的概率输入,零样本预测给不出
调完之后文本那一侧裂开一条缝把嵌入压到平面上画出来的对照图
邻近度越低越自信、误差越大逐类散点图 + 分箱折线
按类调温度有效七种方法全改善;11 个数据集平均 13.84 → 7.00
改善集中在高把握区逐箱表:0.9 那一箱 41.60 → 11.37
文本比图像更准也更便宜5.67 对 8.08;0.13 秒对 15.88 秒
对 K 不敏感、归一化必要两组消融

属于作者的推断:

  • 「对齐不上导致把握不合适」——这是对那条相关性的解释。 书里自己用的措辞是「我们非正式地假设」,没有做因果验证。 相关性是量出来的,机制是猜的;
  • 「拿调之前的邻近度当分母是为了扣掉类本身的偏离」—— 这个相除的动机书里只用一句话交代,没有做「不相除会怎样」的消融

11. 边界与局限

① 这是纯粹的事后补救,一点没碰训练。 整个办法发生在推理时乘一个数; 为什么微调会造成这种偏差、能不能在微调时就避免,这一章没有回答。 书里在延伸阅读里把这件事指给了另一篇论文23——也就是说作者自己知道这是个缺口。

② 它没有把模型拉回「不调」的水平。 见第 7 节那条参照: 原始未调的模型是 4.43,挂上这个办法之后是 7.00。 它把伤害减了一半多,没有消除。

③ 类名必须能说得出、而且要有语义。 整个办法建立在「类名过文本编码器得到的那串数之间的距离有意义」上。 类名如果是编号或者内部代号,这条距离就量不出东西来。

④ 只做了图像分类。 全章 11 个数据集都是分类任务。 检测、分割这些任务上「把握准不准」同样要紧,书里一个字没提—— 而那正好是接下来第 12、13 两章的地盘。

⑤ 「温度」这个词在本书里有两种写法,读的时候要当心。 第 01 章(依据原书第 5 章)说这个温度是训练时学出来的; 这一章的公式里直接把它当成固定的 10024。 两者是同一件事的两种写法(乘以 100 = 除以 0.01),但「学出来的」和「固定的」是真的不一致, 书里没有交代这处出入。照实写在这儿。

12. 可带走的

  1. 「答得对不对」和「说得准不准」是两个独立的问题,一个模型可以准确率很高、把握全是虚的;
  2. 校准 = 凡是它报把握 q 的那些样本,真正答对的比例就是 q;
  3. 量法叫期望校准误差(ECE):按把握分箱,每箱算「报的」与「真的」之差,加权平均;
  4. 调完之后会出一件反直觉的事:对学过的类偏保守,对没学过的新类过度自信;
  5. 而且是调这件事本身造成的——同一个数据集,不调是 6.86,调完 26.86;
  6. 现成办法救不了新类:温度缩放把学过的类从 4.82 救到 1.94,却把新类从 1.59 弄到 3.90; 分箱那一族因为需要统计样本,对零样本预测压根用不了;
  7. 病因在文本那一侧:调完之后新类的类名嵌入和学过的类之间裂开一条缝,离得越远越自信;
  8. 量这条缝的东西叫邻近度:到最近 K 个邻居的平均距离,取一个递减变换;
  9. 办法是按类调温度:偏离得越远,温度调得越高、把握压得越低;学过的类不动;
  10. 它不改准确率——整排分数同乘一个数,排序不变;
  11. 它只用类名,一张新类的图片都不需要——这正是它比基于图像的同类办法便宜 120 倍的原因;
  12. 改善集中在高把握区(0.9 那一箱 41.60 → 11.37),而那正是会出事的地方;
  13. 但它没把模型拉回「不调」的水平(7.00 对 4.43)——这条书里没说,是我们从表里读出来的

13. 原文地图

主题原书章原文位置
为什么可靠性要紧(医疗、自动驾驶)9. Confidence Calibration in Contrastive VLMstext/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:35(搜「medical diagnosis and autonomous driving」)
校准的定义与 ECE 的算法同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:73(搜「perfectly calibrated model satisfies」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:75(搜「divided into K bins」)
反直觉的现象:学过的类欠自信、新类过度自信同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:87(搜「underconfident on base classes and overconfident on new classes」)
现成办法两族、以及它们在两批类上的表现同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:93(搜「scaling-based methods and binning-based methods」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:143(搜「substantially enhance calibration on base classes」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:147(搜「worse than the uncalibrated model」)
文本那一侧裂开的缝(可视化)同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:157(搜「pronounced textual distribution gap」)
邻近度的定义与在文本上的用法同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:167(搜「K nearest neighbors in the held-out set」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:173(搜「normalized textual embedding」)
邻近度越低越自信、温度缩放治不了同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:185(搜「tends to exhibit higher confidence」)
偏离分数与推理时怎么用、三条性质同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:195(搜「Textual Deviation (TD) score」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:207(搜「does not alter the calibration performance for base classes」)
11 个数据集的结果(13.84 → 7.00)同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:287(搜「13.84」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:313(搜「7.00」)
改善集中在高把握区(41.60 → 11.37)同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:781(搜「41.60 to 11.37」)
文本邻近度 vs 图像邻近度的成本对照同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1057(搜「textual proximity holds a more significant influence」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1039(搜「15.88」)
对 K 不敏感 · 归一化是关键 · 样例增多也救不了同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1045(搜「even K=1 delivering significant」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1061(搜「feature norms can introduce misestimation」) · text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1049(搜「calibration errors persist」)
实验摆法:类别劈成两半同上text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:759(搜「partitioned into base and new classes」)

Footnotes

  1. 出处:「9. Confidence Calibration in Contrastive Vision-Language Models」第 781 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:781,搜「41.60 to 11.37」)与表 9.4 所在的第 823 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:823,搜「41.60」)。原文:改善主要发生在高置信区(0.6–0.9 这几箱);以 CoOp 为例,0.9 那一箱的差距从 41.60 降到 11.37,直接改善 30.23。表里同一行 0.6 / 0.7 / 0.8 三箱分别是 33.28 / 30.30 / 37.84。「所以真实准确率不到一半」是我们由「差距 41.60」与「这一箱的把握在 0.9 出头」推出来的,书里没有直接给这一箱的准确率。 2 3

  2. 出处:同上第 73 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:73,搜「perfectly calibrated model satisfies」)。原文给的条件是:在模型报出概率 q 的条件下,预测为真的概率就等于 q,对区间内所有 q 都成立。

  3. 出处:同上第 75 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:75,搜「divided into K bins」)。原文:ECE 量的是准确率与置信度之间的平均差距;把 N 个样本分进 K 个箱,每箱算「该箱平均准确率减该箱平均置信度」的绝对值,再按箱内样本数占比加权求和。

  4. 出处:同上第 35 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:35,搜「medical diagnosis and autonomous driving」)。原文:提示学习类方法显著提高了准确率,但可靠性这一侧仍然缺乏研究,这给「医疗诊断、自动驾驶这类关键应用」的部署带来挑战。

  5. 出处:同上第 759 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:759,搜「partitioned into base and new classes」)。原文:按少样本评测协议把数据集划分成基类与新类,模型只在基类上以少样本方式训练,校准表现通常在新类上量。11 个数据集见第 763 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:763,搜「ImageNet」):通用物体、细粒度分类、场景、动作、纹理、卫星图各若干。

  6. 出处:同上第 87 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:87,搜「underconfident on base classes and overconfident on new classes」)。原文明确写了「直觉上人们会以为」与「然而与这个预期相反」的对照,并称之为「一个令人惊讶的现象」。七种被测方法见第 83 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:83,搜「CoOp」),包含第 08 章那种最基础的做法及其六个后续改进版。

  7. 出处:同上表 9.2 所在的第 253 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:253,搜「6.86」)与第 279 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:279,搜「26.86」)。表 9.2 是 11 个数据集新类上的 ECE:纹理数据集(DTD)一列,零样本原始模型 6.86,CoOp 26.86,CoOp 挂上本章方法后 10.48(第 305 段,text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:305,搜「10.48」)。

  8. 出处:同上第 93 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:93,搜「scaling-based methods and binning-based methods」)。原文:事后校准方法分两大类——缩放类(温度缩放、密度比校准)与分箱类(直方图分箱、保序回归、多重保序回归);表 9.1 的设定是用 ProDA 在千类数据集上微调 CLIP-ViT-B/16。

  9. 出处:同上表 9.1 所在的第 111–139 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:113,搜「4.82」与 text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:131,搜「3.90」)。学过的类那一行依次是零样本 3.58、不校准 4.82、温度缩放 1.94、密度比 0.73;新类那一行是 2.09、1.59、3.90、3.86,分箱三列为空。

  10. 出处:同上第 143 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:143,搜「substantially enhance calibration on base classes」)与第 147 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:147,搜「worse than the uncalibrated model」)。原文:两族方法都能明显改善学过的类;而在新类上,温度缩放与密度比比不校准甚至比零样本还差,说明「在基类上训出来的校正器不足以应付更广的未见分布」;分箱类需要基类的概率输入,与零样本预测不兼容 2

  11. 出处:同上第 155 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:155,搜「singular value decomposition」)与第 157 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:157,搜「pronounced textual distribution gap」)。原文:成对的图文样本分别过零样本与调过的模型,嵌入用奇异值分解投到二维;零样本时同模态内部聚得较紧,而提示微调在基类与新类的文本之间引入了明显的分布间隙,同时 ECE 显著上升。原文还写明「提示微调的主要影响集中在文本特征上」,这是它只看文本一侧的理由。

  12. 出处:同上第 167 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:167,搜「K nearest neighbors in the held-out set」)与第 173 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:173,搜「normalized textual embedding」)。原文:邻近度定义为与「测试样本到留出集中最近 K 个邻居的平均距离」反相关的函数;在这里 σ 取 exp(−·)、距离取 L2,留出集是所有基类的归一化文本嵌入。邻近度这个量出自另一篇论文(书里标了引用),不是这一章提出的;这一章的贡献是把它用在文本这一侧。

  13. 出处:同上第 185 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:185,搜「tends to exhibit higher confidence」)。原文:文本特征离基类分布越远,调过的模型越倾向于给出更高的置信度、校准也越差;解释是对比目标把两个模态各自嵌进一个相对紧凑的分布,推理时偏离太远就对不齐;并明确指出温度缩放不但治不了这个问题,有时还会让它更糟。上一段第 157 段用的措辞是「我们非正式地假设」(informally hypothesize)。 2 3

  14. 出处:同上第 195 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:195,搜「Textual Deviation (TD) score」)。原文:偏离分数定义为「调过的模型里该类对基类集的邻近度」除以「原始模型里该类对基类集的邻近度」;分数低意味着这个类更可能偏离基类的文本分布,而这类预测正是过度自信的。

  15. 出处:同上第 207 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:207,搜「does not alter the calibration performance for base classes」)。原文:先对每个类收集偏离分数;给一个测试样本,先取模型选中的那一类,再用该类的偏离分数去乘温度项得到修正后的分数。对基类一律取 1,此时方法退化成标准的温度缩放,因此基类的校准表现不变。 原文列的第一条好处是「现实」:计算只依赖文本标签,不需要拿到开放词表概念的视觉数据,而那在现实应用里往往很难获得 2 3

  16. 出处:同上第 43 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:43,搜「without compromising classification accuracy」)。原文把这一条写进了本章要点:这是一种直接有效的事后校准技术,调整预测置信度而不损害分类准确率。(「因为整排分数同乘一个数、排序不变」这个理由是我们补的,书里只给了结论。)

  17. 出处:同上第 209 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:209,搜「Algorithm-agnostic」)与第 777 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:777,搜「applicable to multimodal tuning methods」)。原文:方法与算法无关,能轻松接到已有的提示微调算法上;而且对同时调视觉与语言两侧的那类方法也适用。

  18. 出处:同上表 9.2 所在各段:CoOp 平均 13.84(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:287,搜「13.84」)、挂上后 7.00(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:313,搜「7.00」)、CoCoOp 6.29 → 4.82(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:339,搜「6.29」)、PromptSRC 3.84 → 3.63(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:599,搜「3.84」)、零样本原始模型平均 4.43(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:261,搜「4.43」)。「仍然没回到不调的水平」这一条是我们从同一张表的两行读出来的对比,书里没有写这句话。

  19. 出处:同上第 1057 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1057,搜「textual proximity holds a more significant influence」)与表 9.5 所在的第 1039 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1039,搜「15.88」)。原文:以往研究主要在模型输入(图像)那一侧估邻近度,而这一章表明在提示微调的场景下,文本邻近度的影响比视觉邻近度更大;千类数据集上新类 ECE 依次为不校准 10.69、本章方法 5.67、基于图像的方法 8.08、两者叠加 3.29,推理时间依次为 0.12 / 0.13 / 15.88 / 15.91 秒。

  20. 出处:同上第 1045 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1045,搜「even K=1 delivering significant」)。原文:K 从 1 到 10 都能明显降低 ECE,收益随邻居增多逐渐饱和;K=1 就已经有显著改善,全文实验统一取 5。

  21. 出处:同上第 1061 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1061,搜「feature norms can introduce misestimation」)。原文:归一化后的特征能更准确地估计逐类邻近度;已有研究指出在用欧氏距离时,特征范数会让基于最近邻的分数估歪;实验确认归一化是这个距离型方法有效的关键因素。

  22. 出处:同上第 1049 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1049,搜「calibration errors persist」)。原文:与准确率随样例数增加而提升不同,校准误差在很宽的少样本设定范围内一直存在,而本章方法在各种样例数下都能改善它。

  23. 出处:同上第 1089 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:1089,搜「mitigating miscalibration during the fine-tuning phase」)。原文在延伸阅读里指了一篇「在微调阶段就缓解校准问题」的工作——说明作者清楚本章只做了事后补救这一半

  24. 出处:同上第 51 段(text/39-ch09-9-confidence-calibration-in-contrastive-vision-l.txt:51,搜「constant value of 100」)。原文把零样本推理的分数写成「τ 乘以图文相似度」,并说 τ「通常取常数 100」。这与原书第 5 章的说法不一致:那里说这个数是 CLIP 训练时学出来的(见第 01 章的脚注,text/26-ch05-5-differentiable-prompt-learning-for-vision-lang.txt:103,搜「temperature parameter learned by CLIP」)。书里没有交代这处出入,这一段是我们的比对。