作者|hahakity,https://zhuanlan.zhihu.com/p/148105536

本文已获作者授权,不得二次转载

今天介绍一种特定的神经网络可解释性方法 -- 积分梯度法 (Integrated Gradient)。几天前 Keras网站刚刚添加了这种方法的示例代码(2020/06/02),Distill 网站也增加了积分梯度的科普文章(2020/06/10)。本人非常好奇这种可解释性方法为何突然蹿红,故进行调查。

这种方法的提出是为了解决传统基于梯度的可解释性方法的一个缺陷 -- 梯度饱和。在最原始的 Saliency map方法中,假设神经网络的分类结果线性依赖于输入图片中的每个像素或特征, 表示为 , 则输出 y 对输入 x 的梯度 能够直接用来量化每个像素对分类决策的重要程度。

然而,真正的神经网络高度非线性。某个像素或特征增强到一定程度后可能对网络决策的贡献达到饱和。李宏毅老师举过一个例子,大象的鼻子对神经网络将一个物体识别为大象的决策很重要,但当大象的鼻子长度增加到一定程度后(比如1米),继续增加不会带来决策分数的增加,导致输出对输入特征的梯度为0。

鼻子的长度对大象很重要,但原始的 Saliency map 方法在饱和区将其重要性设为0,明显违反常识。在鼻子长度大于0.5米小于1米的样本中,鼻子长度的重要性又能表现出来,

大象鼻子长度米鼻子长度米

画在图上,

对于鼻子长度大于等于 1 米的大象,为了正确捕捉鼻子长度的重要性,积分梯度法不是使用上面这张图中粉红色部分的梯度(基本为0),而是使用沿整条梯度线的积分值,作为鼻子长度对决策分类的重要程度。写成公式就是,

特征重要性米米大象鼻子长度鼻子长度

这是一个挺好玩的想法。唯一困难的地方在于对于一张给定的图片,大象鼻子长度已定(比如=2 米), 如何得到鼻子长度小于 2 米时输出对输入的梯度呢?

假设当前图像为x,如果知道鼻子长度 = 0 米时的基线图像 x',那倒可以做一个线性插值,

当常数 时,输入图像为基线图像 x', 当 时, 就是当前图像,在中间即为其他图像。这种方法不能说得到了鼻子长度改变的梯度积分,只能说得到了图像所有像素变化时的梯度积分。

假设神经网络的输出为函数 f, 则积分梯度法的最终公式为,

注意第一项 来自于后面积分变量 。分母上的 表示变分。这里整个偏导被换成了变分的形式,变分边界是基线图像和当前图像,变分路径可以任意选择。

积分梯度法使用线性插值作为变分路径。

如何选择基线图像呢?原始文献考虑了使用纯黑图片和噪声图片作为基线的情形,也讨论了使用这些基线的缺陷。比如纯黑图片,可能不在 valid 区间。Distill 文章对比了几种替代方案,

  1. 最大距离图片。从图片集中选择与当前图片L1距离( L1=|x - x'| )最大的图片,使得每个像素都在 valid 区间。

  2. 光滑模糊图片。最大距离图片的问题是,它可能包含了当前图片的信息,不能表示特征丢失对分类结果的影响。使用模糊的照片,可以捕获特征丢失对梯度的贡献。

  3. 均匀随机图片。每个像素通过 valid 区间内均匀分布抽样得到。

  4. 高斯随机图片。为当前图片的每个像素安排一个高斯分布,从高斯分布中抽样生成基线图片。

至于说究竟哪种基线图片最好,Distill 文章没有下结论,只是声称可解释性本身没有很好的判断标准,即便是人眼,也很难说明孰好孰坏。

除了积分梯度法,DeepLift 方法也使用了基线图片来量化可解释性。DeepLift 使用类似层间相关性传递的算法(LRP),把重要性从输出一层层传递到输入。

总结

直接使用输出对输入的梯度作为特征重要性会遇到梯度饱和问题。积分梯度法从通过对梯度沿不同路径积分,期望得到非饱和区非零梯度对决策重要性的贡献。原始积分梯度法使用纯黑图片,噪声图片作为积分基线。Distill 尝试了4种不同的积分基线。积分路径一般选作线性插值,不知到是否有人考虑过选择不同的插值函数做积分路径。

参考文献:

  1. 原始文章:https://arxiv.org/abs/1611.02639

  2. DeepLift: https://arxiv.org/abs/1704.02685

  3. Distill 科普:https://distill.pub/2020/attribution-baselines/

  4. Keras 代码:https://keras.io/examples/vision/integrated_gradients/

  5. 李宏毅课程:https://www.bilibili.com/video/av77023354/?p=2

觉得有用麻烦给个在看啦~  

神经网络可解释性的另一种方法:积分梯度,解决梯度饱和缺陷相关推荐

  1. 神经网络可解释性、深度学习新方法,2020 年 AI 有哪些势不可挡的研究趋势?...

    来演:雷锋网 2019 年最后一场学术顶会告诉我们 2020 年该研究什么! 文 | MrBear 作为 2019 年最后一场重量级的人工智能国际学术顶会,NeurIPS 2019 所反映出的一些人工 ...

  2. matlab神经网络工具箱关掉ValidationChecks的三种方法

    原文来自  老饼玩转-BP神经网络http://bp.bbbdata.com/teach#107 目录 一.Validation Checks是什么 二.怎么关掉Validation Checks 本 ...

  3. 电视android怎么解决,安卓手机怎么投屏到电视?用这3种方法可完美解决

    安卓手机怎么投屏到电视?用这3种方法可完美解决 2021年04月01日 17:47作者:网络编辑:王动 分享 有些用户觉得智能电视能看的资源太少,想把安卓手机里的资源投屏到电视上看,该怎么办呢?下面简 ...

  4. git stash后怎么恢复_苹果换卡后怎么恢复通讯录?两种方法帮你解决

    苹果换卡后怎么恢复通讯录?今天小编分两种情况给大家介绍恢复苹果手机通讯录的两种方法,根据自己的情况选择适合自己的操作步骤来找回手机里的通讯录即可. 情景一:使用iCloud同步了通讯录 iCloud是 ...

  5. 三d眩晕可以学计算机,如何才能避免3D晕眩?3种方法教你解决!

    原标题:如何才能避免3D晕眩?3种方法教你解决! 每次帅雷雷玩起电脑 都不得不感叹 科技的发展真的是太迅速了 给我们提供了无数的便利和娱乐 但我们的身体似乎还不能很快适应他的发展 于是我们出现了 晕车 ...

  6. 在ML中缺乏数据可是个大问题,亲测有效的5种方法帮您解决

    https://www.toutiao.com/a6701193162699833859/ 在我做过的很多项目中,公司虽然有非常棒的AI商业创意,但当他们意识到自己没有足够的数据时,却会慢慢的变得沮丧 ...

  7. html点击按钮弹出窗口_电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...

    平常我们在使用电脑时,总会出现很多的弹窗广告,点关闭按钮直接就进入了广告,每次都要浪费时间来关闭广告页面,非常的烦人. 不过最近小编发现了关闭电脑广告弹窗的方法,我们一起来看一看吧! 一.启用弹出窗口 ...

  8. 4种方法帮你解决IntelliJ IDEA控制台中文乱码问题

    摘要:在本文中总结了4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题. 前言 IntelliJ IDEA 如果不进行配置的话,运行程序时控制台中文乱码问题会非常严重,严重影响我们对信 ...

  9. win 10找不到恢复环境怎么办?三种方法带你解决!

    当我们重置或恢复Win11.Win10系统时,可能会遇到错误提示:"找不到恢复环境,连接您的Windows安装或恢复介质,然后使用该介质重启您的电脑".出现这种情况时该怎么办?别担 ...

最新文章

  1. hdu 2141 Can you find it?
  2. 性能测试知多少---并发用户
  3. 巴奴与海底捞的战争背后,“单品即品牌”战略到底香不香?
  4. “约见”面试官系列之常见面试题之第五十六篇之typeof返回的数据类型(建议收藏)
  5. Python入门学习-DAY27- isinstance与issubclass、反射、内置方法
  6. concurrenthashmap获取不到_面试必问的ConcurrentHashMap
  7. java zk_zk框架:zul文件,純Java或混合更好的性能
  8. c#明华rf读卡器_明华MW接触式IC卡智能卡读卡器读写器(U/MRD-EB/ET)
  9. 论文笔记1 MOEFL Multi-objective Evolutionary Federated Learning
  10. 百度地图显示多个标注点
  11. 开发者能力大赏,谁是技术知识达人?
  12. 使用@JsonFormat注解 后端往前端页面展示日期为英文问题 (例如:Thu Dec 09 00:00:00 CST 2021)
  13. stm32核心板可以点亮灯吗_二、STM32的GPIO输出操作
  14. 周四见|《SQL开发中容易被忽略的BUG》by郑老师
  15. 为什么操作系统需要虚拟内存
  16. #2021,我们的浮生一日#
  17. 周杰伦:他们只顾嘲讽,却不知眼前是神的降生
  18. Tio消息服务器,tio-websocket-spring-boot-starter 的简单使用 原 荐
  19. 【卢森堡大学】年薪55W+RMB,计算机科学副研究员(博士后),low code 机器学习研究...
  20. 非华为手机Scrcpy无线投屏电脑多屏协同步骤(电脑无线连接投屏手机,设备,tcpip)

热门文章

  1. 【怎样写代码】实现对象的复用 -- 享元模式(二):解决方案
  2. Imagination 推新款GPU IP,首次实现桌面级光线追踪效果
  3. 10月21日!API 大赛决赛暨移动云开发者论坛邀您见证数字创新的力量
  4. 数学,对人工智能开发者意味着什么
  5. Python 玩出花儿,把罗小黑养在自己桌面
  6. 美国 AI 博士:什么都不会怎么学 Python?
  7. 2.2版本发布!TensorFlow推出开发者技能证书
  8. 深入探讨Python的import机制:实现远程导入模块 | CSDN博文精选
  9. 适合小团队作战,奖金+招聘绿色通道,这一届算法大赛关注下?
  10. 物联网成网络安全防护新重点!