SmoothGrad: removing noise by adding noise

文章目录

  • **SmoothGrad: removing noise by adding noise**
    • 背景知识
    • Saliency map
    • Gradients as sensitivity maps
    • Smoothing noisy gradients
    • 实验结果
    • Multiplying maps with the input images

背景知识

众所周知,许多机器学习算法是一个“黑盒”模型,通过” end-end”的方式去工作,输入数据例如RGB图像,输出目标类似于标签,但是中间的过程我们不得而知。然而理解机器模型到底如何工作对模型本身和针对问题如何搭建模型是十分关键的,况且在医药健康、金融以及教育等领域,对于机器模型的解释更是重中之重,好的解释可以让我们发现一些数据潜在的重要性。

Saliency map

理解图像分类系统决策的一种常见方法是找到对最终分类特别有影响的图像区域。这些方法(被称为敏感性映射、显著性映射或像素属性映射;使用遮挡技术或梯度计算为单个像素分配一个“重要”值,这意味着它们对最终分类的影响。本文描述了一种非常简单的技术,SMOOTHGRAD,它在实践中倾向于减少视觉噪声,也可以与其他灵敏度地图算法相结合。其核心思想是取一幅感兴趣的图像,通过对图像添加噪声对类似图像进行采样,然后对每个采样图像的结果灵敏度图取平均值。

Gradients as sensitivity maps

以图像分类系统为例,一个分类器会有多个类激活函数 ScScSc 将输入 x 映射到类别空间,对其求分类得分,分类结果取决于其映射值得大小,公式如下:class(x)=argmaxcϵCSc(x)class(x) = argmax_{c\epsilon C}S_c(x)class(x)=argmaxcϵC​Sc​(x)如果函数 ScScSc 是分段可微的,对于任何图像 xxx 都可以构造灵敏度映射(即重要性值)Mc(x)M_c(x)Mc​(x) ,定义如下:
Mc(x)=∂Sc(x)/∂xM_c(x) = \partial S_c(x) /\partial xMc​(x)=∂Sc​(x)/∂x这里 Mc(x)Mc(x)Mc(x) 表示 x 上的每一个像素上的微小扰动对于 class(x)class(x)class(x) 得分的影响。

这种方法在实际操作中确实能显示出与分类结果相关的区域,但求得的saliency maps通常在视觉上有很多的噪点(对这些噪点作用目前还不清楚,有可能这些噪点看似随机,实际上对网络的运作有很大的影响,也有可能这些噪点本身就不重要),但正是因为这些噪点的存在,导致只能大致确定相关区域的位置,而不能给出符合人类理解的结果,如下图。

Smoothing noisy gradients

灵敏度图中的噪声有一种可能的解释,据我们所知,在文献中没有直接提到:函数Sc的导数可能在小尺度上波动剧烈。换句话说,人们在灵敏度图上看到的表观噪声可能是由于本质上毫无意义的局部偏导数变化造成的。毕竟,给定典型的训练技巧,没有理由指望衍生品会平稳变化。事实上,所讨论的网络通常基于ReLU激活功能,所以Sc通常甚至不会连续可导的。
下图给出了强波动偏导数的例子。

考虑到这些快速的波动,可得梯度值的局部平均值比其在任何给定点上的 ScScSc 的直接梯度更有意义。这提出了一种创建改进的灵敏度图的新方法:我们可以基于带有高斯核的 ScScSc 的平滑,而不是直接基于梯度 ScScSc 的可视化。
在高维输入空间中直接计算这样的局部平均是困难的,但我们可以计算一个简单的随机近似。特别是,我们可以在一个输入 xxx 的邻域内随机取样,并对产生的灵敏度映射进行平均。其数学定义如下:M^c(x)=1nΣ1nMc(x+N(0,σ2))\widehat{M}_c(x) = \frac 1n \Sigma_1^nM_c(x + N(0, \sigma^2))Mc​(x)=n1​Σ1n​Mc​(x+N(0,σ2))式中,nnn 为样本个数,N(0,σ2)N(0, \sigma^2)N(0,σ2) 代表标准差为 σ\sigmaσ 的高斯噪声。在本文中,我们将这种方法称为SMOOTHGRAD。

实验结果

通过在输入图片多次加入随机噪声,对变换后图像求并求均值,达到“引入噪声”来“消除噪声”的效果。由下图可得,噪声系数在百分20左右时候的效果是最好的

由于没有基本事实标准来对灵敏度图进行定量衡量,所以我们考察了视觉的一致性,例:高光只出现在感兴趣的对象上,而不是在背景上。这个实验是有两个识别物,分别对这个进行解释在两减,并于其他方法进行比较,结果如下:

Multiplying maps with the input images

一些技术通过将基于梯度的值和实际像素值相乘来创建最终的灵敏度图(Shrikumar等人,2017;Sundararajan等人,2017)。这种相乘确实倾向于产生视觉上更简单和更清晰的图像,尽管不清楚这在多大程度上归因于原始图像本身的清晰度。例如,输入中的黑/白边可以导致最终可视化上的类边结构,即使底层的灵敏度图没有边。

然而,这可能会导致不希望的副作用。值为0的像素永远不会出现在灵敏度图上。例如,如果我们将黑色编码为0,那么正确预测白色背景上的黑球的分类器的图像将永远不会突出显示图像中的黑球。

另一方面,乘以梯度与输入图像有意义,当我们查看功能的重要性作为他们的贡献总分 yyy。例如,在一个线性系统 y=Wxy=Wxy=Wx ,它是有意义的考虑 xiwix_iw_ixi​wi​ 的贡献的最后得分。

由于这些原因,我们在下图中显示了有和没有图像乘法的结果。

SMILKOV D, THORAT N, KIM B, et al. 2017. SmoothGrad: removing noise by adding noise. ArXiv [J], abs/1706.03825.

SmoothGrad: removing noise by adding noise相关推荐

  1. SmoothGrad: removing noise by adding noise论文解读

    Abstract 解释神经网络的输出一直是一个非常困难的任务.对于一个图片分类器而言,一种类型的解释是分别那些对最终结果有很大影响的像素.这种策略的一个starting point is the gr ...

  2. 使用Transient noise和ac noise仿真晶体管噪声

    目录 前言 热噪声(thermal noise) 闪烁噪声(flick noise) 栅感应噪声(induced gate noise) 参考文献 前言 For the two types of no ...

  3. 收藏 | 图像识别的可视化解释神经网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 使 ...

  4. 收藏 | 图神经网络的解释性综述

    来源:图与推荐本文约1.5w字,干货满满,建议收藏本文对近期提出的 GNN 解释技术进行了系统的总结和分析,归纳对比了该问题的解决思路. 图神经网络的可解释性是目前比较值得探索的方向,今天解读的202 ...

  5. 首次摆脱对梯度的依赖,CMU等开源Score-CAM:基于置信分数的视觉可解释性

    本文介绍一篇被CVPRW2020接受的论文,主要关于一种基于置信分数的视觉可解释性方法.本文的亮点在于:在CAM系列方法的基础上,首次提出了一种新的gradient-free的权重表达方式. 本文首发 ...

  6. 收藏 | 图像识别的可视化解释史

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习> ...

  7. pytorch 模型同一轮两次预测结果不一样_2020年的最新深度学习模型可解释性综述[附带代码]...

    最近low-level vision的炼丹经常出现各种主观评测上的效果问题,无法定位出其对于输入数据的对应关系,出现了问题之后很难进行针对性解决. 这个时候一个很自然的问题就是,都2020年了,深度学 ...

  8. [万字长文] 图神经网络的解释性综述

    图神经网络的可解释性是目前比较值得探索的方向,今天解读的2021最新综述,其针对近期提出的 GNN 解释技术进行了系统的总结和分析,归纳对比了该问题的解决思路.作者还为GNN解释性问题提供了标准的图数 ...

  9. 图像识别解释方法的视觉演变

    正文字数:4270  阅读时长:7分钟 图像识别(即 对图像中所显示的对象进行分类)是计算机视觉中的一项核心任务,因为它可以支持各种下游的应用程序(自动为照片加标签,为视障人士提供帮助等),并已成为机 ...

最新文章

  1. 利用Spring AOP与JAVA注解为系统增加日志功能
  2. 为了不让GPU等CPU,谷歌提出“数据回波”榨干GPU空闲时间,训练速度提升3倍多...
  3. Review: Maximum Energy Efficiency Tracking for Wireless Power Transfer Systems
  4. git cherry-pick改写提交
  5. 2017年11月01日普及组 I Got a Matrix!
  6. 计算机科学与技术创新实验班是什么意思,计算机科学与技术系成立2010级创新实验班(图)...
  7. php随机产生4位的验证码
  8. Concurrent——Atomic原子操作类
  9. 适合初学者的struts简单案例
  10. 最大独立匹配_新车|升级柴油国六动力,配后排独立座椅,瑞风M5新车型上市...
  11. SQL Server 2005中设置Reporting Services发布web报表的匿名访问
  12. php 在模板中赋值数组变量,PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例...
  13. 论文翻译:MichiGAN: Multi-Input-Conditioned Hair Image Generation for Portrait Editing
  14. Android签名机制学习笔记
  15. parse Json
  16. xp3系统登录服务器错误,WindowsXP系统LOL服务器连接异常即将退出怎么解决?
  17. 通过玩游戏从计算机小白到黑客的进阶之路!
  18. ModuleNotFoundError: No module named ‘项目同名.settings’
  19. 用RouterPassView通过路由配置文件找回宽带密码
  20. 【xinput1_3.dll下载】xinput1_3.dll丢失怎么修复win10

热门文章

  1. 三种方法实现移动端HTTPS加速和省电
  2. Kubernetes中自定义Controller
  3. 体素二值膨胀求解采样空间 binary voxel dilation in 3D space
  4. BC26 NB-IoT模组MQTT通信测试(通信猫)
  5. 《THE ENERGY MACHINE OF JOSEPH NEWMAN》翻译
  6. tcpreplay 发包速率控制算法研究
  7. 2022第十届上海生物发酵展看尽智能装备,12月重逢发酵盛宴
  8. LPR和固定利率房贷的动态差值计算
  9. 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)
  10. 半路出家自学当程序员这一年的经历,大家一起共勉