AI凭什么说这是猫?一文看懂模型可解释性

上一篇我们聊了《AI自己出题考自己,成绩能信吗?搞懂训练集、验证集、测试集》,解决的是"怎么诚实地给模型打分"——数据要分三份,测试集不能反复用来调参,否则分数就是自欺欺人。
但评估只回答了一个问题:它准不准。
它没回答另一个更要命的问题:它凭什么。
想象一下,你把一张自家橘猫的照片丢给一个图像识别模型,它回答"猫,置信度 96%"。你很高兴。可如果有人把模型"看的地方"画出来给你看,你发现它盯着的根本不是猫,而是照片角落里那块带花纹的沙发垫——因为训练集里所有猫的照片,都躺在同一张沙发上。
模型答对了,理由却是错的。这种"蒙对",在真实世界里随时会翻车:换个客厅、换条沙发,它立刻就不认识了。
这就是模型可解释性(Explainable AI,简称 XAI)要解决的问题。这一篇,我们就把这个"黑箱"撬开一条缝,看看里面到底有什么。
一、"黑箱"不是有人故意藏起来
很多人以为黑箱是厂商的保密手段,其实不是。
一个能识别一千类物体的卷积神经网络,参数量动辄几千万。这些参数就是几千万个数字,全都明明白白写在文件里,你随时可以打开看。
问题是:看得到,不等于看得懂。
就像给你一张心电图,上面每一根线的电压值都精确到小数点后几位,全都给你看——你还是不知道病人哪里不舒服。信息完全公开,理解依然为零。
所以"黑箱"的准确说法是:计算过程透明,语义不透明。模型每一步都在做加减乘除,没有任何一步是神秘的;但这些加减乘除叠加几百万次之后,产生了一个人类无法用一句话概括的判断。

对比一下就清楚了:医生看一张 CT,说"右肺下叶有个 8 毫米结节,边缘有毛刺,建议三个月后复查"。他给了结论,也给了依据,依据还能被另一位医生复核。
而 AI 说"恶性,概率 0.91"。完事。你没法复核,也没法反驳。
二、为什么非得要一个理由
"准就行了,要什么理由?"这话在实验室里成立,在现实里经常不成立。至少四种场合,理由是刚需。
第一种,出事了要查。 自动驾驶撞了人,调查组必须知道模型当时"看到"了什么、"以为"会发生什么。如果只能回答"它判断应该直行",那这起事故永远无法定性,也没法防止下一次。
第二种,涉及公平。 银行拒贷、招聘筛选、保险定价,这些模型一旦只给结果,歧视就藏在水面下。美国曾有医疗算法被曝出:它用"历史医疗花费"作为健康风险的代理指标,而黑人患者由于长期就医机会更少、花费更低,被系统判定为"更健康",从而错失了本该获得的慢病管理资源。模型的准确率并不低,但它学到的是一条捷径,一条带着历史偏见的捷径。不看理由,你永远发现不了这件事。
第三种,要调试。 模型在测试集上 95%,上线后掉到 70%,你得知道它到底依赖了什么特征,才能修。上面那只"盯着沙发垫"的猫,就是靠可视化才被抓出来的。经典案例是那个"狼还是哈士奇"的分类器:它其实是在看背景里有没有雪——狼的照片多在雪地里拍。模型没学会认动物,学会了认天气。
第四种,法规要求。 欧盟的《通用数据保护条例》里写有"获得有意义解释"的权利,欧盟《人工智能法案》把医疗、招聘、信贷等列为高风险系统,明确要求可追溯、可解释。这不是技术圈的自我要求,是法律义务。
三、AI 的"理由"长什么样
关键在于:模型不会说话,它只会输出数字。所以我们要找的不是一段文字,而是数字层面的证据。目前主流有三条路。
第一条:看它盯着哪。
这就是大名鼎鼎的热力图(显著性图 / Grad-CAM)。做法很朴素:把图片送进模型,得到"猫"的分数,然后反过来算——输入图片里哪一块像素稍微动一动,这个分数就会明显变化。变化越剧烈的地方,说明模型越依赖它。把这些敏感度画成颜色,就得到一张红黄蓝相间的热力图。
红色区域是模型眼里的"重点"。如果红色落在猫的耳朵、眼睛、脸部轮廓上,说明它真的在看猫;如果红色落在沙发垫、水印、图片边框上,你就知道它在作弊。
原理不复杂:神经网络里每个输入像素对最终分数的影响,可以用梯度衡量——也就是上一篇之后我们反复见到的那个东西,只不过这次不是拿去更新权重,而是拿去"追问"。
第二条:给它分账。
热力图回答"哪些像素重要",但回答不了"每个因素各占多少功劳"。SHAP 和 LIME 这类方法就是来分账的:把"这是一只猫"拆成"耳朵像猫 +0.31、毛色像猫 +0.18、背景是沙发 +0.22、有个逗猫棒 +0.05……",加起来正好等于最终得分。
很像公司年底算奖金:总包是固定的,但每个人贡献多少,得一笔一笔说清楚。SHAP 的严谨之处在于它来自博弈论里的沙普利值——在一场合作博弈里,每个参与者的边际贡献怎么公平计算,数学上早有答案。
第三条:看注意力。
Transformer 类模型自带"注意力权重",很多人直接把它当解释:模型注意哪儿,就是看重哪儿。这个用法要非常小心。注意力权重只说明信息怎么流动,不说明因果。有研究专门验证过:同一批注意力权重,换一种解读方式,可以讲出完全相反的故事。注意力是"路线图",不是"判决书"。
四、第一个反直觉的事实:解释会说谎
说到这儿,很多人会想:那就看热力图呗,红色落在猫身上就是可信的。
问题是,热力图本身也可以被骗。

2014 年,Goodfellow 那批人做了一个让整个圈子后背发凉的实验。他们拿一张熊猫照片,模型以 57.7% 的置信度判定为熊猫。然后他们给图片叠加了一层人眼完全看不出来的噪点——像素值只改动一点点,你盯着看半天,还是那只熊猫。
模型的判断变成了:长臂猿,99.3%。
不是你眼花了,是模型的"视觉"和人的视觉,本来就不是一回事。这类样本叫对抗样本,它是深度学习最著名的软肋之一:模型在人类觉得"完全一样"的两个输入上,给出了天差地别的答案。这说明它对世界的理解,和人之间存在一道真实的鸿沟。
更麻烦的是,解释工具本身也可能被利用。因为热力图是通过梯度算出来的,而梯度是可以被优化的——攻击者完全可以构造一张图,让模型给出错误答案,同时让热力图看起来"很合理地落在猫脸上"。这叫解释的欺骗性。
于是可解释性领域出现了一个专门的词:保真度(fidelity)。它问的不是"这个解释好不好看",而是"这个解释是不是真的反映了模型的决策过程"。
一个热力图让你看着舒服,不代表它说的是实话。这是理解可解释性的第一道门槛:解释本身也需要被验证。
五、第二个反直觉的事实:解释可能是"事后编的"
这里要往深里走一步。
模型算出一个结果,只需要一次前向传播,几毫秒。而解释是怎么来的?大部分方法是回过头去,在已经算完的结果上,反推一套理由。
这个顺序,你熟悉吗?
人也是这样。心理学上有个著名的裂脑实验:给裂脑患者的右脑(负责语言的是左脑)呈现一个指令,比如"走过去"。患者起身走动,问他为什么走,左脑立刻给出一个答案:"我想去拿桌上的可乐。"——左脑根本不知道真实原因,但它会当场编一个听起来合理的理由。
我们把这个现象叫事后合理化。
现在把问题摆到台面上:我们想要的,到底是"模型真实的计算原因",还是"一个我们听得懂、能接受的理由"?
这两件事,往往不是一回事。
一个医疗 AI 说"这张片子恶性",真实原因可能是某个我们完全没有词汇描述的高维特征组合。解释器给出的"右肺下叶纹理异常权重最高",可能只是一个近似,甚至是恰好能自圆其说的近似。
这不是说解释没用。它的用处非常实在:帮你发现明显的错误依赖(比如盯沙发垫)、帮你定位偏见、帮你决定要不要信这个模型。但它不等于"读懂了模型的心"。
这一点想清楚了,你对所有"AI 可解释"的宣传,都会多一层免疫力。
六、第三个反直觉的事实:同一个答案,可以有不同解释
学术界还有个更微妙的现象,叫拉肖蒙效应(Rashomon effect,得名于黑泽明的电影《罗生门》):在同一个数据集上,可以训练出很多个准确率几乎一样、但内部逻辑完全不同的模型。它们对同一条数据给出同样的预测,却依赖着不同的特征。
预测一样,理由不同。那到底哪个理由是真的?答案是:都对,也都不完整。
这就解释了为什么局部解释不能直接推广成全局结论。你解释了 100 张猫的图片,每张红色区域都在猫脸上,也不代表这个模型"学会了猫"——它可能只是学会了"毛茸茸的纹理"。真正的全局理解,要靠大量样本上的统计,甚至要靠机制可解释性(mechanistic interpretability)这类更硬核的研究:把神经网络拆成一个个可以命名的"电路"和"特征",看它内部到底在算什么。
这几年在大模型上,这条路已经有了实打实的进展:研究者用稀疏自编码器从模型内部提取出成千上万个"可命名的概念方向",比如"金门大桥""代码里的 bug""谄媚的语气"。这不是给模型写说明书,而是真的在给它做解剖。
七、可解释和性能,是一道必须做的选择题
有个残酷的现实:最好解释的模型,往往能力最弱。
-
线性回归:每个特征的系数摆在那儿,正负、大小一目了然。但拟合不了复杂关系。
-
决策树:一层层 if-else,人能顺着走一遍。稍微深一点就变成一团乱麻。
-
深度神经网络:能力最强,也最不透明。
于是工程上有几种务实做法:
一是分场景选模型。 信贷审批这类必须给理由的场景,很多机构宁可用逻辑回归 + 人工规则,牺牲一两个点的准确率,换取"每笔拒绝都能写清原因"。
二是大模型负责判断,小模型负责解释。 用一个可解释的代理模型去模仿大模型的行为,解释代理模型,间接理解大模型——这是 LIME 的思路,也是一种妥协。
三是把解释当体检,不当诊断书。 上线前跑一遍热力图、跑一遍特征归因,看看有没有明显异常依赖;上线后持续监控,发现分布漂移就报警。解释在这里的价值,不是"证明模型正确",而是"尽早发现它错得离谱"。
八、留三个问题给你想
写到这儿,我想把三个没有标准答案的问题留给你。
第一个:人类自己的解释可靠吗? 你问一个人为什么选了这份工作,他会给你一套理由。但神经科学告诉我们,很多决定在被意识到之前就已经做出了。如果人类的解释也大量是事后合理化,那我们凭什么要求 AI 的解释必须是"真实原因"?或者反过来说——我们真正需要的,也许不是真相,而是"可被问责"。
第二个:解释是给谁看的? 给医生看的解释,需要病灶位置和相似病例;给监管看的解释,需要特征合规、无歧视证据;给用户看的解释,可能只需要一句"因为您近三个月有两次逾期"。同一套系统,三种解释,谁说了算?
第三个:如果一个模型准确率 99% 但完全不可解释,另一个 92% 但每一步都能讲清,医疗场景你选哪个?自动驾驶呢?招聘呢? 我猜你的答案在三个场景里并不一样——那这个差异,恰恰说明"可解释性"从来不只是技术指标,而是责任怎么分配的社会安排。
写在最后
这一篇我们从"AI 凭什么说这是猫"出发,走过了黑箱的由来、三种解释手段(热力图、SHAP/LIME、注意力)、以及三个反直觉的坑:解释可以被骗、解释可能是事后编的、同一个答案可以有不同解释。
一句话总结:可解释性不是把模型变透明,而是让我们知道什么时候该信它、什么时候不该信。
对了,如果你想把这一路的基础打得再扎实一点,从神经网络、梯度下降到评估方法,这套内容我整理在 人工智能学习网站 上,配合前面几篇一起看,脉络会清楚很多。
上一篇《AI自己出题考自己,成绩能信吗?》讲的是怎么诚实地评估,这一篇讲的是怎么追问理由。那如果模型连"理由"都编得特别顺、特别像真的呢?
下一篇我们就聊这个:《AI为什么一本正经地胡说八道?聊聊大模型的"幻觉"》——为什么它能用最自信的语气,说出最离谱的事实;以及这个毛病,到底是 bug,还是它工作原理的必然产物。
更多推荐


所有评论(0)