集成梯度:从全黑走到原图
从一张全黑的图出发,一点点变成原图,沿路记下每个像素的作用。
先铺一条路:画面从全黑一点点亮起来
关键术语
重 点为什么不只在原图上看一眼
模型看到原图时往往已经非常确定,这时再把某个像素调亮,分数几乎不动,梯度接近 0。只看这一点,会误以为很多重要的像素没有用。下一页用一个小例子说明。
从一张全黑的图出发,一点点变成原图,沿路记下每个像素的作用。
模型看到原图时往往已经非常确定,这时再把某个像素调亮,分数几乎不动,梯度接近 0。只看这一点,会误以为很多重要的像素没有用。下一页用一个小例子说明。
终点的坡度可能是 0,一路攒起来的功劳却不是 0。
分数 = x − x² ÷ 4,x 是这个特征的值。基线取 0,输入取 2。分数先涨得快,到 x = 2 时正好涨到 1,曲线变平。曲线的坡度就是上一页说的梯度。
| 算法 | 怎么算 | 结果 |
|---|---|---|
| 只看终点的梯度 | 终点的坡度 0 × 特征的值 2 | 0 |
| 集成梯度 | 一路上的平均坡度 0.5 × 走过的距离 2 | 1 |
| 实际涨了多少 | 终点的分数 1 − 起点的分数 0 | 1 |
一个特征的功劳 = 它从基线到输入一共变了多少 × 沿路坡度的平均值。在面板里的例子中,特征变了 2,沿路坡度从 1 均匀地降到 0,平均是 0.5,功劳就是 1。
评价一名队员对球队的贡献,不能只看比赛最后一分钟他有没有得分。最后一分钟比分早已拉开,他投不投都一样。要把整场比赛看下来,把他每个阶段的贡献加起来。
按面板里的小模型,只用“终点的坡度 × 特征的值”来估计功劳,会得到多少?
功劳加起来正好等于总变化,模型换个写法也不影响结果。
所有特征的功劳加起来,严格等于模型对输入的分数减去对基线的分数。功劳不会多算,也不会漏算。
两个模型内部写法不同,只要对任何输入给出的分数都一样,归因结果就一样。
长每增加一点,面积增加的量等于当时的宽。沿着虚线走,宽从 0 均匀涨到 3,平均是 1.5。长一共增加了 2,功劳就是 2 × 1.5 = 3。宽的功劳是 3 × 1 = 3,道理一样。
完整性像公司年底分奖金。今年比去年多赚了 100 万,分到各个部门的钱加起来必须正好是 100 万,不能多也不能少。
模型对全黑基线图的分数是 0.1,对一张船的照片的分数是 0.9。用集成梯度算出所有像素的功劳,加起来是多少?
一路上的坡度没法处处都测,就隔一段测一次,再加起来。
| 分成几段 | 4 | 10 | 50 | 100 |
|---|---|---|---|---|
| 算出的功劳 | 0.75 | 0.90 | 0.98 | 0.99 |
估计一段山路一共爬升了多少米。每走一百米测一次坡有多陡,用这个坡度乘以一百米,估出这一段爬了多高,再把各段加起来。测得越密越准,也越费事。
亮的地方就是对判断出力最多的像素。

左边是海面上的一艘小船。右边是归因结果,亮的是船和船尾翻起的白浪,远处的海面几乎全黑。模型判断“这是船”时,主要看的是船和它激起的浪花。图右侧列出的两步,就是前几页讲的做法。
2016 年有研究者专门挑了一批照片来训练,照片里的狼都站在雪地上,哈士奇没有。模型把两者分得不错,解释工具一看,它盯着的是背景里的雪。只看准确率发现不了这种问题。
本章实验二会动手给一张图做归因,看模型看图时看的是哪儿。
把高维的点摆到纸上,原来挨得近的,在纸上还要挨得近。
| A 的邻居 | 距离 | 相似度 | 邻居分数 |
|---|---|---|---|
| B | 1 | 0.607 | 81.8% |
| C | 2 | 0.135 | 18.2% |
| D | 5 | 0.000004 | 约 0% |
第 3 章的 PCA 是找一个好角度把点投影下来,保留整体上散得最开的方向。t-SNE 直接在纸上重新摆点,专门保住谁和谁是近邻。所以 t-SNE 图上团和团之间离多远,参考价值不大。
纸上的邻居分数和原来差多少,就当作损失,用梯度下降降下来。
凭记忆画一张全班的座位关系图。你记得谁和谁是好朋友,就先在纸上随手画几个点,再反复挪动,直到好朋友都挨在一起,不太熟的离得远一些。
同一类样本聚成一团,说明模型能把这一类和别的类分开。

图里每个点是一张水果图片,位置由模型提取的特征经 t-SNE 摆出来。蓝色是目标类别红色美味苹果,灰色是其他水果。蓝点紧紧聚成一团,离灰点很远,说明模型能把这种苹果和别的水果分清。
训练完一个模型,把中间层的特征拿出来做一次 t-SNE,哪些类分得开、哪些类糊在一起,一眼就能看出来。
看神经元、看输入、看整体,三种办法从不同角度打开黑箱。
| 办法 | 问的问题 | 看的是 | 怎么做 |
|---|---|---|---|
| 激活最大化 | 这个神经元喜欢什么 | 模型内部 | 固定参数,改图片,让它最兴奋 |
| 集成梯度 | 这张图的哪些像素起了作用 | 输入 | 从全黑走到原图,沿路攒梯度 |
| t-SNE | 所有样本在模型眼里怎样分布 | 整体 | 把高维特征摆到纸上,保住近邻 |
第 50 页狼和哈士奇的例子里,模型分得不错,靠的却是背景里的雪。用在看病、开车这些场合之前,要先弄清它依靠什么做判断。
如果模型给出的解释看起来完美无缺,怎样判断它是学到了规律,还是恰好骗过了解释工具?
第 4 章到这里结束。

标注少,就用自监督学习让数据自己出题。任务多,就用模型迁移把学过的本事搬过去。模型大,就用量化、剪枝、蒸馏把它压小。训练资源紧,就用数据增广、分布式训练和混合精度。最后用三种办法看清模型学到了什么。
第 5 章讲人工智能生成内容与大模型,看机器怎样画图、写文章、和人对话。