PaperWeekly|积分梯度:一种新颖的神经网络可视化方法( 二 )
如果还是用近似展开(1) , 那么我们将得到:
本文插图
对于上式 , 我们就可以有一种新的理解:
从 x 移动到 的总成本为, 它是每个分量的成本之和 , 而每个分量的成本近似为, 所以我们可以用 作为第i个分量的重要性指标 。
当然 , 不管是 还是,它们的缺陷在数学上都是一样的(梯度消失) , 但是对应的解释却并不一样 。 前面说了 ,的缺陷源于“敏感程度不足以作为重要性的良好度量” , 而纵观这一小节的推理过程 ,的缺陷则只是因为“等式(2)仅仅是近似成立的” , 但整个逻辑推理是没毛病的 。
2.2 积分恒等
很多时候一种新的解释能带给我们新的视角 , 继而启发我们做出新的改进 。 比如前面对缺陷的分析 , 说白了就是说“ 不够好是因为式(2)不够精确” , 那如果我们直接能找到一个精确相等的类似表达式 , 那么就可以解决这个问题了 。
积分梯度正是找到了这样的一个表达式:设 代表连接 x 和 的一条参数曲线 , 其中, 那么我们有:
本文插图
可以看到 , 式(3)具有跟(2) 一样的形式 , 只不过将 换成了。 但式(3) 是精确的积分恒等式 , 所以积分梯度就提出使用:
本文插图
作为第i个分量的重要性度量 。 作为最简单的方案 , 自然就是将 取为两点间的直线 , 即:
本文插图
这时候积分梯度具体化为:
本文插图
所以相比 的话 , 就是用梯度的积分
本文插图
替换, 也就是从 x 到 的直线上每一点的梯度的平均结果 。 直观来看 , 由于考虑了整条路径上的所有点的梯度 , 因此就不再受某一点梯度为 0 的限制了 。
如果读者看了积分梯度的两篇原始论文 , 就会发现原论文的介绍是反过来的:先莫名其妙地给出式(6) , 然后再证明它满足两点莫名其妙的性质(敏感性和不变性) , 接着证明它满足式(3) 。
总之就是带着读者做了一大圈 , 就是没说清楚它是一个更好的重要性度量的本质原因——大家都是基于对 的分解 , 而式(3)比式(2)更为精确 。
2.3 离散近似
最后就是这个积分形式的量怎么算呢?深度学习框架没有算积分的功能呀 。 其实也简单 , 根据积分的“近似-取极限”定义 , 我们直接用离散近似就好 , 以式(6)为例 , 它近似于:
本文插图
所以还是那句话 , 本质上就是“从 x 到 的直线上每一点的梯度的平均” , 比单点处的梯度效果更好 。
实验效果
看完了理论 , 我们再来看看实验效果 。
3.1 原始效果
原始论文实现:
https://github.com/ankurtaly/Integrated-Gradients
下面是原论文的一些效果图:
本文插图
▲ 原论文中对梯度和积分梯度的比较(CV任务 , 可以看到积分梯度能更精细地突出重点特征)
