Shortcut Learning
捷径学习是指模型依赖虚假线索(例如 X 光片上的医院标记);这些线索能通过测试,却会在实际应用中失效。
捷径学习是指模型利用一种简单线索来解决训练任务:该线索在训练数据中能预测标签,却与模型原本要学习的概念无关。只要测试集也包含该线索,模型得分就会很好;线索一旦消失,模型就会失败。Robert Geirhos 及其同事在 2020 年发表于 Nature Machine Intelligence 的观点文章 Shortcut Learning in Deep Neural Networks 中阐述了这一问题,将捷径定义为在标准基准上表现良好、但无法迁移到真实使用等更具挑战性条件下的决策规则。一个经典类比是 Clever Hans:这匹马看似会做算术,实际上是在观察训练者的肢体语言。
已发表模型中的捷径#
许多已发表的模型中都发现了捷径:
- 医学图像中的医院特征:在 John Zech 及其同事于 2018 年开展的一项研究中,使用多个医院系统的胸部 X 光图像训练的肺炎分类器能够识别图像来自哪家医院。由于各医院的患病率不同,这些来源信息也有助于预测诊断结果。在训练数据以外的医院上,模型性能通常较低;这是放射学 AI反复面临的风险。
- COVID-19 X 光影像:Alex DeGrave 及其同事在 2021 年的一项分析发现,COVID-19 检测器依赖文本标记、患者体位和数据来源差异,而不是肺部特征;使用新医院的数据时,检测器准确率大幅下降。
- 相机陷阱照片中的背景:Sara Beery 及其同事在 2018 年发表的“Recognition in Terra Incognita”研究表明,图像分类模型会将动物与拍摄地点及其背景关联起来,因此在新的相机拍摄点上准确率会下降;这是野生动物保护 AI已知的问题。论文开篇展示了一头海滩上的牛,商业图像分类器未能识别它,而阿尔卑斯牧场上的牛则被正确标记。
- 偏重纹理而非形状:Geirhos 及其同事在 2019 年展示,使用 ImageNet 训练的卷积神经网络会将一张具有猫形状、但带有大象皮肤纹理的图像分类为大象。
为什么标准验证会漏掉它#
随机拆分训练集和验证集会让两个子集都包含这种捷径,因此模型在验证数据上的准确率看起来很高。只有在以不同方式采集的数据上才会暴露问题,例如来自新的地点、相机、医院、季节或时间段的数据。
这就是捷径学习与相关问题的区别:
- 过拟合:记住训练数据特有的噪声,表现为训练分数和验证分数之间存在差距。如果验证集来自相同来源,模型可能很好地泛化捷径。
- 数据泄漏:预测时不会存在的信息混入特征或数据拆分中。数据泄漏是捷径进入数据集的一种特定且往往无意的方式。
- 数据集偏差:采集数据存在偏斜,例如所有正例都来自同一台扫描仪,这为模型利用捷径提供了机会。
几行 scikit-learn 代码就能用一个包含两个特征的逻辑回归复现这种失败:一个是真实但较弱的信号,另一个是在训练数据中几乎能完美追踪标签的捷径。
import numpy as np
from sklearn.linear_model import LogisticRegression
rng = np.random.default_rng(0)
labels = rng.integers(0, 2, 2000)
# A weak genuine signal and a shortcut that tracks the label almost perfectly
signal = labels + rng.normal(0, 1.0, labels.size)
shortcut = labels + rng.normal(0, 0.1, labels.size)
model = LogisticRegression()
model.fit(np.column_stack([signal, shortcut]), labels)
# At deployment the shortcut no longer carries any label information
shifted = rng.permutation(shortcut)
print(f"In-distribution accuracy: {model.score(np.column_stack([signal, shortcut]), labels):.2f}")
print(f"Shifted accuracy: {model.score(np.column_stack([signal, shifted]), labels):.2f}")将捷径打乱后,准确率会从 1.00 降至 0.52。仅凭真实信号,模型的准确率约为 70%;但模型赋予捷径的系数约为真实信号的 18 倍,因此几乎没有从更难利用的线索中学到东西。
发现并消除捷径#
最可靠的测试方法是使用捷径无法跟随的数据进行评估:留出整片区域、整批相机或整个时间段,而不是随机抽取图像。如果该分数与同分布分数之间差距很大,就说明模型可能利用了背景、光照或传感器线索。数据探索可以在训练前找到可疑线索。Ultralytics Platform中的聚类面板会将视觉相似的图像放在二维地图上的相近位置,并按类别、拆分方式或图像宽高着色;因此,如果某个类别的图像都来自同一台相机并形成独立区域,就能在 YOLO26 模型学会相机特征而非物体特征之前发现这个问题。
反事实编辑可以直接检验可疑线索。替换背景、移除叠加内容或裁掉标记后,正确的预测应保持不变,而依赖捷径的预测则会改变。可解释 AI(XAI)中的归因方法(如显著图)可以显示哪些像素在驱动预测;在 COVID-19 研究中,这些方法突出显示的是图像边缘和文本,而非肺部。
修正捷径通常意味着改变数据。收集线索与标签不一致的样本(例如在每种托盘和背景下拍摄的缺陷零件),就能打破二者之间的相关性。通过改变颜色、缩放比例和位置的数据增强,可以削弱与这些属性相关的线索;对于合成图像,域随机化也会通过随机化纹理、光照和背景来达到相同效果。如果已知哪些群组携带了某种捷径,群组分布鲁棒优化就会最小化表现最差群组的损失,而非平均损失。










