你有没有遇到过这种情况:问一个朋友"你怎么知道这只狗是金毛",他指着照片说"就是这块区域让我觉得像",手指划过狗的整个身体轮廓,但你还是不知道到底是毛色、是耳朵形状、还是别的什么让他下了判断。
这其实就是当前大多数AI可解释性技术正在犯的错误。
当一个深度学习模型把一张照片识别成"金毛寻回犬"时,我们想知道它为什么这么判断。过去十年里,研究者给出的答案主要分成两条路。第一条路叫显著性图
显著性图:一种给图片每个像素打分的热力图,用颜色深浅标出模型在做判断时"看"了图片的哪些区域
,简单说就是在图上打马赛克式的高亮,告诉你"模型盯着这块看了"。这类方法包括大家可能听过的Grad-CAM、RISE之类的技术,它们的共同毛病是,你能看到模型盯着狗的脸看了,但你不知道它到底是在看毛色、看眼神、还是看耳朵的形状。位置给了,含义没给。
第二条路叫概念瓶颈模型
概念瓶颈模型:一类要求模型先识别出若干"人类能理解的概念"(比如"条纹毛""蓝色眼睛"),再用这些概念做最终判断的架构
,这条路走的是语义优先的思路,模型会告诉你"我看到了黄色鸟嘴,这个特征让我判断这是犀鸟",但代价是它通常说不清这个"黄色鸟嘴"具体在图片的哪个像素位置,而且很多早期方法还需要人工标注大量概念样本,成本很高。
这就好比你去医院看病,一个医生只会在你身上画圈说"这里有问题",却说不清是哪种病;另一个医生能准确说出"你得了阑尾炎",但完全不指出你疼痛的具体部位在哪。两种诊断都不完整,一个有位置没病名,一个有病名没位置。
这篇来自特拉维夫大学和开放大学研究团队的论文,提出了一个叫ConEx的框架,试图让AI同时做到两件事:说出它看到了什么概念,并且精确指出这个概念在图片里具体长在哪儿。
这事到底难在哪里
先说一下这个领域此前的尴尬局面。
像ACE(Ghorbani等人2019年提出的自动概念发现方法)这类框架,依赖无监督聚类来发现概念,但它对图像做切分的方式比较粗糙,容易把不相关的视觉特征混在一起,导致"概念不纯"。另一个叫TCAV的经典方法(Kim等人2018年提出),虽然引入了统计验证,但它需要人工挑选代表某个概念的样本图片,这意味着每发现一个新概念,就要人工筛一遍图,根本无法规模化到像ImageNet这样有上千个类别的数据集上。
还有一类做法是用支持向量机(SVM)之类的分类器去学习"概念方向",但这种方式对训练样本的选择特别敏感,换一批样本结果可能完全不同,稳定性堪忧。
最接近ConEx思路的前作是Visual-TCAV(De Santis等人2024年的工作),它确实尝试把显著性可视化和概念推理结合起来,用一种"均值差"的方式构建概念向量,再生成概念定位图。但它仍然要求人工挑选概念样本图,只能处理用户事先指定好的概念,而且概念向量是用整张图片算出来的,背景里的无关像素会把概念的"方向"搞混。
换句话说,在ConEx出现之前,没有一个框架能做到完全自动地发现概念、精确地把概念定位到图片的具体区域、同时还保证概念向量的纯净度。这三件事凑在一起,此前没人真正做成过。
概念是怎么被自动挖出来的
ConEx解决这个问题的第一步,是让概念发现完全自动化,不需要人工指定任何东西。
具体做法是这样的:对于数据集里的每一个类别,比如"西伯利亚雪橇犬",系统先用大语言模型(论文里用的是GPT-4o)生成一批可能和这个类别相关的文字描述,比如"蓝色眼睛""毛茸茸的耳朵""蓬松的尾巴"。这一步借鉴了Label-free CBM(Oikarinen等人2023年的方法)里的概念集创建思路。
视觉语言先验:指不需要人工标注、仅依靠语言模型和图文匹配能力生成的候选知识,比如用GPT自动联想某个动物类别可能具备的外貌特征
这一步生成的只是"候选概念",还不知道这些概念是不是真的能在图片里找到对应的区域,也不知道它们出现得够不够频繁。于是ConEx引入了第二步,叫概念验证。
系统把这些候选概念文字扔给GroundedSAM
GroundedSAM:一种零样本的图像分割模型,能根据一段文字描述自动在图片里框出对应的区域,不需要针对特定物体重新训练
,让它去图片里找,看看"蓝色眼睛"这个描述到底能不能在西伯利亚雪橇犬的照片里找到对应的像素区域。如果能找到,就生成一个分割掩码;如果找不到,就返回空结果。
光是能找到还不够,ConEx还设了两道门槛。第一道叫出现率,要求这个概念至少在15%的同类别图片里能被找到,太罕见的概念会被过滤掉。第二道叫空间覆盖率,要求这个概念对应的区域面积至少占整个物体轮廓的20%,太琐碎太边缘的碎片不算。只有同时通过这两道门槛的概念,才会被保留下来进入下一步。
这套流程最终在CUB鸟类数据集上筛出348个概念,在斯坦福狗数据集上筛出189个,在超大规模的ImageNet上筛出了3602个概念,全程没有一个人工标注的样本。
这就像是你想给一家新开的咖啡馆写菜单介绍,但你没去过现场。于是你先让一个博学的朋友凭经验猜测"这家店大概会有拿铁、手冲、司康"这些候选项,然后你真的拿着这份清单去现场一个一个核实,核实的时候还要求这个东西必须在菜单上出现超过15次才算数,而且分量不能太小气。如果你跳过现场核实这一步,直接把朋友的猜测当成事实印在新菜单上,结果可能是这家店根本没有司康,你却告诉顾客有。ConEx正是靠着这道"现场核实"的程序,把语言模型天马行空的联想,过滤成了真正能在图片里落地的视觉事实。
概念向量是怎么造出来的
挖出概念之后,下一步是要让每个概念在模型的"大脑"里有一个具体的方向,这个方向用数学语言描述就是概念激活向量
概念激活向量(CAV):用一组数字表示某个概念在模型内部特征空间里的方向,这个方向可以告诉你"识别出这个概念"对应着模型内部的哪种激活模式
。ConEx的做法沿用了Kim等人2018年提出的思路,但做了关键的改进。
具体算法很直接:先找100个包含该概念的正样本区域和100个不包含该概念、但包含其他概念的负样本区域,分别计算这两组样本在模型某一层里的平均特征向量,然后把这两个平均值相减,得到的差值向量就是这个概念的CAV。
这种"算两个中心点再相减"的做法,比用支持向量机训练分类器的方式要稳健得多。论文引用了Martin & Weller(2019)的研究结论作为支撑,说明这种中心点差异法对异常样本和扰动的敏感度更低。
这里要讲一个很容易被忽略但其实至关重要的细节:怎么把一个不规则形状的概念区域(比如鸟嘴的轮廓)塞进神经网络去提取特征,这件事本身就有坑。
如果简单地把概念区域之外的像素涂黑或填成某种颜色再喂给网络,边界处就会产生伪影,污染提取出来的特征。这就好比你想单独品尝一盘菜里的胡萝卜味道,于是把盘子里其他所有东西都涂上了厚厚的黑色颜料,结果颜料的化学味道渗进了胡萝卜里,你尝到的根本不是纯粹的胡萝卜味,而是颜料和胡萝卜混在一起的怪味。如果不做任何处理,最后测出来的概念向量就会被这种"涂料污染"带偏,导致概念之间彼此混淆,纯度大打折扣。
ConEx对这个问题给出了架构相关的解决方案。对卷积神经网络(CNN),采用的是逐层掩码法,图像和对应的二值分割掩码一起往网络里传播,每一层只保留未被遮盖像素产生的激活值。为了避免边界处的信息被侵蚀,ConEx只在第一层卷积处做了一次邻域填充,把边界像素用周围未遮盖像素的局部均值来填补,这样既不会让掩码区域外的背景信息泄露进来,又能保住像鸟嘴、眼睛这种精细边界的完整性。
对于视觉Transformer(ViT),情况不一样,因为ViT处理图像的方式是把图片切成一个个小方块(patch)然后用全局自注意力机制让它们互相"交流"。这种结构下如果粗暴地丢弃或清零某些patch的token,会打乱预训练好的注意力结构,导致表征变得不稳定。ConEx的解法是从网络中间层(第6层)提取patch的嵌入,只保留和概念区域重叠的那些patch,再对它们取平均。选中间层是因为中间层的表征在空间细节和语义抽象之间取得了比较好的平衡,这一点也有Raghu等人2021年和Caron等人2021年的研究作为参照。
概念定位图是怎么画出来的
有了概念向量,接下来要做的是把这个"方向"翻译成图片上实际可见的高亮区域,这一步叫概念定位。
ConEx先把概念向量在空间维度上做全局平均池化,得到一个叫通道加权向量
通道加权向量(CWV):把概念激活向量在空间维度上压缩后得到的一组数字,每个数字对应一个特征通道,代表该通道和这个概念的相关程度
的东西,它的每一个数值反映的是某个特征通道和这个概念的相关性,跟空间位置无关。然后用这个通道加权向量和图片的潜在特征表示做加权求和,再过一个ReLU函数过滤掉和概念无关的区域,得到一张原始的语义图。
这张原始图还要经过归一化处理,用正样本中心点的最大激活值作为参照标准,把数值压缩到0到1之间,这样不同概念、不同图片之间的激活强度才能互相比较。
这一步和Visual-TCAV里的"池化CAV"思路机制上是相似的,但ConEx做了两处关键改进。第一,概念向量本身就是从精确分割出来的区域里提取的,不是从整张图片提取,这就去掉了背景的干扰,概念方向更纯粹。第二,归一化锚定在正样本概念中心点上,这保证了跨概念、跨图片的可比性。
光有概念定位图还不够,因为这张图只能告诉你"模型认为这个区域看起来像这个概念",但没告诉你这个概念对最终预测的决策到底有多重要。ConEx接下来把这张语义图和一种叫层级相关性传播的归因方法结合起来。
层级相关性传播(LRP):一种从神经网络输出层开始,一层一层往回追溯"每个神经元对最终预测贡献了多少分"的归因技术
这一步是用乘法融合的方式,把概念出现的位置图和模型关注的重要性图逐元素相乘,只有两者同时重叠的地方,最终的归因分数才会被放大。这个设计逻辑其实很直白:一个区域只有同时满足"这里确实有这个概念"和"模型确实在关注这里",才算是真正支撑了预测结果的证据。如果只用概念定位图而不做这层相乘,可能会把一些模型压根没在意、纯粹偶然存在的概念区域也标亮出来,造成误导。
这就像是刑事侦查里,一个嫌疑人要同时满足"案发现场出现过"和"案发时间没有不在场证明"才能被认定为重点嫌疑,而不是任何一条单独满足就下结论。如果只看"现场出现过"就定罪,很多路过现场的无关路人都会被冤枉,乘法融合的设计正是在排除这种"路人"级别的虚假关联。
概念对预测的具体贡献怎么量化
光知道"这个概念在哪"还不够回答一个更实际的问题:如果把这个概念从图片里抠掉,模型的判断会变吗,变化有多大。
ConEx用了一种叫介入式遮挡的办法来回答这个问题。先算出模型对目标类别的预测概率,然后把被判定为"该概念所在"的区域直接清零,看看预测概率下降了多少。这个下降幅度经过归一化处理之后,就成了这个概念对该类别预测的贡献权重。
最终呈现给用户的解释图,是把一个类别下所有相关概念的贡献权重,乘上各自对应的概念重要性图,再统统加在一起。这样用户看到的不再是一张笼统的热力图,而是一张能拆解成"黄色鸟嘴贡献了多少、灰色翅膀贡献了多少"的可分解解释。
除了针对单张图片的局部解释,ConEx还能做全局层面的统计。把某个概念在某个类别的所有训练图片上的贡献分数求平均,就能得出一句类似"蓝色眼睛是判断西伯利亚雪橇犬的全局重要特征"这样的结论,这种全局洞察对审查模型是否存在系统性偏见特别有用。
怎么知道这些概念向量是靠谱的
一个很现实的问题是,自动挖出来的概念向量,怎么证明它真的代表了那个概念,而不是凑巧抓住了一些别的东西?
ConEx为此设计了两个评估指标。第一个叫向量概念匹配度
向量概念匹配度(VCM):衡量一个概念向量和真正包含该概念的图片区域之间,在特征空间里的相似程度,数值越高说明概念向量越"纯"
,具体做法是拿一批确认包含某概念的测试样本区域,计算它们的特征表示和对应概念向量之间的余弦相似度,取平均值。
第二个叫概念类别匹配度
概念类别匹配度(CCM):衡量一个概念向量的方向,是否和模型判断某个类别时"真正用力的方向"(类别输出对特征的梯度)一致,数值越高说明这个概念不仅存在,还真实影响了分类决策
。VCM解决的是"这个概念向量是不是纯净地代表了那个概念本身",CCM解决的是"这个概念是不是真的影响了模型的决策",两者合起来才能说明一个概念向量既语义准确、又具有预测相关性。
实验结果怎么样
论文在三个数据集(ImageNet、CUB鸟类、斯坦福狗)和五种模型架构(ResNet50、DenseNet121、ConvNeXt-Base、ViT-Base、ViT-Small)上做了全面测试,对比对象包括八种主流显著性方法和三种概念类解释框架。
在忠实度测试(用插入/删除曲线下面积衡量解释是否真正反映模型决策依据)上,ConEx在CUB数据集用ResNet50模型时的插入得分达到59.47,删除得分低至8.19,均优于对比方法中表现最好的IIA方法(插入58.13,删除9.21)。这个结果特别值得注意,因为ConEx是在概念层级做解释的,理论上信息粒度比像素级方法粗,但它依然打赢了像Grad-CAM、Score-CAM这些纯像素方法。
在专门为部件级别可解释性设计的FunnyBirds基准测试上,ConEx同样全面领先,完整性得分0.78、正确性得分0.64、对比性得分0.92,均是所有被测方法里的最高值。
表格:ImageNet数据集上的概念质量与忠实度对比(ResNet50模型)
| 指标 | ACE | ICE | MCD | ConEx |
|---|---|---|---|---|
| 概念插入(CINS, 越高越好) | 44.89 | 43.74 | 48.16 | 51.20 |
| 概念删除(CDEL, 越低越好) | 10.82 | 11.28 | 9.56 | 8.74 |
| VCM(越高越好) | 0.53 | 0.49 | 0.56 | 0.68 |
| CCM(越高越好) | 23.04 | 21.38 | 20.22 | 28.01 |
在人类理解度评估上,58位参与者的测试显示,ConEx的选择准确率达到72.13%,远超MCD的34.32%和ACE的58.47%,并且可识别概念比例、概念描述一致性等指标也全面占优。统计检验结果显示ConEx相对两个对照方法的提升都达到了统计显著性(p值小于0.001)。
消融实验也验证了几个关键设计决策的必要性。如果把ConEx的概念向量构建方式换成ACE、ICE或MCD原本的方法,插入得分会从59.21掉到57到58之间,删除得分也会相应变差,证明了基于精确分割区域构建向量这一设计确实带来了实打实的收益。如果把融合阶段用的LRP换成Grad-CAM或SHAP,插入得分同样会下降约0.5到2个百分点。
写在后面
读这篇论文的时候,最让我意外的一个细节是,ViT模型在概念质量指标上的得分普遍比CNN低一截,VCM差了将近0.15,CCM差了将近10个点。
这不是ConEx这个方法本身的缺陷,而是暴露了一个Transformer架构里更深层的问题:ViT靠patch和全局自注意力处理图像,天生没有CNN那种逐层保持的空间对应关系。论文花了专门一节篇幅老实承认这一点,说生成局部化的ViT概念解释是个开放难题,目前的注意力权重方法不能可靠对应到视觉重要性,这不是ConEx独有的局限,而是整个ViT可解释性研究领域还没解决的坑。
这种诚实挺难得的。很多论文会把自己做不到的事情轻轻带过,但这篇文章专门用了附录里一整节(E节)去讨论"为什么ViT的定位是个根本性挑战",列举了至少三条具体的技术障碍:注意力权重和视觉重要性不对齐、多概念共存时无法解耦、patch量化带来的空间信息碎片化。这种把"我们还做不到什么"说清楚,比一味强调"我们做到了什么"更让人信服。
另一个值得琢磨的地方是CAV构建里那个"负样本"的选择逻辑。论文附录D里提到一个可选的增强方案:在选负样本时,额外要求负样本和目标概念在特征空间里的相似度足够低,避免负样本本身也带有和目标概念相近的视觉特征。这其实揭示了一个容易被忽视的陷阱,如果你拿来对比的"反例"本身就和目标很像,算出来的方向向量其实区分度有限。这个思路放到人类学习上也成立,想要真正理解什么是"甜",光靠吃糖是不够的,还得吃点真正不甜的东西作对照,如果对照组选的是"微甜的蜂蜜水",那你学到的"甜"的边界就会模糊。
Q&A
Q1:ConEx是什么?
A:ConEx是特拉维夫大学团队提出的一个图像解释框架,它能自动发现模型判断依据的语义概念(比如"黄色鸟嘴"),并同时生成这些概念在图片上的精确位置标注,解决了传统方法要么有位置没语义、要么有语义没位置的问题。
Q2:ConEx和传统的显著性图方法有什么区别?
A:传统显著性图(如Grad-CAM)只能告诉你模型关注了图片的哪个区域,但说不清关注的是什么具体特征;ConEx能同时给出"关注了什么概念"和"这个概念在哪里",并且实验显示它在忠实度指标上还反超了多种像素级显著性方法。
Q3:ConEx需要人工标注概念吗?
A:不需要。ConEx通过大语言模型自动生成候选概念文字描述,再用零样本分割模型GroundedSAM在图片中验证这些概念是否真实存在,全程不需要人工挑选或标注任何概念样本,因此可以扩展到ImageNet这种超大规模数据集。







