Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Concept Bottleneck Models

概念瓶颈模型(CBM)先预测以人类命名的概念,再仅根据这些概念预测标签,让专家能够检查并纠正每项决策。

概念瓶颈模型(CBM)是一种神经网络,它先从输入中预测一组以人类命名的概念,再仅使用这些概念预测最终标签。对于膝关节 X 光片,概念可以是关节间隙变窄和骨赘;对于鸟类照片,概念可以是翅膀颜色和喙的形状。由于每次预测都要经过这个狭窄且带标签的层,人们可以看到哪些概念影响了决策,也可以纠正错误概念来改变结果,因此 CBM 是一种内置于架构中的可解释人工智能(XAI)。斯坦福大学和 Google 的 Pang Wei Koh、Thao Nguyen、Yew Siang Tang、Stephen Mussmann、Emma Pierson、Been Kim 和 Percy Liang 在 ICML 2020 上发表的 Concept Bottleneck Models 中引入了这一术语,并展示了其在两项任务上的准确率可与标准端到端模型相媲美:根据 X 光片评估膝骨关节炎等级,以及识别鸟类物种。

概念瓶颈模型的工作原理#

CBM 包含两部分:将输入(例如图像)映射为概念值的概念预测器,以及将概念值映射为输出的标签预测器。Koh 等人比较了三种训练方式:

  • 独立训练:概念预测器根据概念标注进行学习,标签预测器根据真实概念进行学习,两者分别训练。
  • 顺序训练:先训练概念预测器,再让标签预测器根据预测出的概念进行学习。
  • 联合训练:两部分共同训练,优化概念损失与标签损失的加权和。

在骨关节炎倡议(Osteoarthritis Initiative)数据中,36,369 张膝关节 X 光片根据 Kellgren-Lawrence 严重程度分级进行标注;概念包括放射科医生已经会评估的 10 种序数发现,例如关节间隙变窄、骨赘和骨硬化。在包含 11,788 张、涵盖 200 个物种的照片的 Caltech-UCSD Birds 数据集中,概念包括 112 种二元属性,例如翅膀颜色和喙的形状。每个训练样本都需要同时提供概念和标签标注,这是这种方法的主要成本。

瓶颈结构支持测试时干预:专家发现预测概念有误时,可以将其替换为正确值,然后由标签预测器重新计算输出。在 X 光片任务中,只提供两个概念的真实值,就能将预测严重程度的误差从 0.4 以上降至约 0.3 RMSE。

这个 PyTorch 示例在玩具数据上训练一个独立 CBM:六个二元概念生成带噪声的输入,标签仅取决于这些概念;随后,示例会测量专家逐个提供置信度最低的概念的真实值时,标签准确率如何变化:

import torch
from torch import nn

torch.manual_seed(0)
# Toy data: 6 binary concepts generate noisy 20-D inputs, and the label depends only on the concepts
concepts = torch.randint(0, 2, (3000, 6)).float()
inputs = concepts @ torch.randn(6, 20) + 2 * torch.randn(3000, 20)
labels = (concepts @ torch.tensor([3.0, 2, 2, 1, 1, 1]) >= 5).float()
train, test = slice(0, 2000), slice(2000, None)

# Independent training: inputs -> concepts, and concepts -> label, each against its own ground truth
concept_model, label_model = nn.Linear(20, 6), nn.Linear(6, 1)
optimizer = torch.optim.Adam([*concept_model.parameters(), *label_model.parameters()], lr=0.05)
bce = nn.functional.binary_cross_entropy_with_logits
for _ in range(500):
    optimizer.zero_grad()
    loss = bce(concept_model(inputs[train]), concepts[train]) + bce(label_model(concepts[train])[:, 0], labels[train])
    loss.backward()
    optimizer.step()

with torch.no_grad():
    probs = concept_model(inputs[test]).sigmoid()
    print(f"Concept accuracy: {((probs > 0.5) == concepts[test]).float().mean():.3f}")
    for k in range(4):
        # Test-time intervention: replace the k least certain predicted concepts with their true values
        uncertain = (probs - 0.5).abs().argsort(dim=1)[:, :k]
        fixed = probs.scatter(1, uncertain, concepts[test].gather(1, uncertain))
        accuracy = ((label_model(fixed)[:, 0] > 0) == labels[test].bool()).float().mean()
        print(f"Intervene on {k} of 6 concepts: label accuracy {accuracy:.3f}")

概念预测器在 6,000 个测试概念中正确预测了 0.834 个,CBM 在 1,000 个测试样本中正确预测了 0.819 个标签。对每个样本提供置信度最低的一个、两个和三个概念的真实值后,标签准确率分别提升至 0.861、0.915 和 0.951,且两个模型都不需要改动。

CBM 的应用场景#

CBM 适用于专家本来就会依据明确命名的发现进行判断的领域。在医学图像分析中,上述 X 光研究使用了放射科医生记录的相同发现,因此临床医生可以逐项检查。安全监控也具有相同结构:在Construction-PPE 数据集上训练的 Ultralytics YOLO26 模型会检测以名称标注的类别,例如 helmet、no_helmet、vest 和 no_boots;只读取这些检测结果的合规规则就构成了一个概念瓶颈,审核人员可以追溯其决策所依据的具体缺失物品。

后续研究放宽了标注要求。无标签 CBM使用语言模型生成概念列表,并使用 CLIP为概念打分,无需概念标签便将这一思路扩展到 ImageNet;事后 CBM 则通过将嵌入投影到概念方向上,把已训练好的模型转换为 CBM。

局限性#

概念集合很少能涵盖决定标签的所有因素,因此 CBM 的准确率会受到限制。当标签预测器接收的是概念概率而非硬值时,这些概率可能携带超出各概念含义本身的标签信息;这种现象称为概念泄漏,会降低解释和干预的可信度。概念嵌入模型会将每个概念表示为一个学习得到的向量,以在保持准确率的同时支持干预。定义不清或彼此相关的概念会导致解释不可靠,而存在偏差的概念标注会将偏差传递到依赖这些标注的每项决策中。

  • 显著性图:突出显示影响已训练黑盒模型的像素。CBM 用明确命名的概念解释决策,并允许编辑这些概念。
  • 机制可解释性:对训练模型自行学到的特征和回路进行逆向分析。CBM 则通过监督预先确定中间概念。
  • 线性探测:检验能否从训练模型的激活中解码某个概念,而不改变模型的预测方式。针对黑盒模型的概念探针(例如 Been Kim 及其同事提出的 TCAV)会事后衡量概念的影响。
  • 特征工程:从原始数据中手动计算输入特征。CBM 概念由训练好的模型从原始输入中预测,并通过人工标签进行监督。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来