反向传播(back propagation)是深度神经网络的一个必要环节,令人好奇的是:反向传播的张量到底是什么样子呢?我们能从中获得哪些信息,从而更好的理解神经网络?
今天介绍的论文是《A Theoretical Explanation for Perplexing Behaviors of Backpropagation-based Visualizations》,可以让我们对此有初步的了解。
摘 要

反向传播的可视化技术被用来理解和可视化卷积神经网络(CNN)的学习范式,但对于引导反向传播(GBP)和反卷积网络(DeconvNet)过程,现阶段缺少相应的理论来进行解释。
因此,作者从理论层面探讨了GBP和DeconvNet在神经网络中的作用。研究表明:GBP和DeconvNet在训练过程中的作用是不断的进行部分图像重建,而与网络决策过程无关。
前 言

随着深度学习的兴起,该技术被越来越多的应用于一些危险场景中(如自动驾驶)。但现阶段,深度学习技术依然是个“黑匣子”,存在着某种程度的不确定性,因此,理解神经网络模型如何工作,使其具有“可解释性”,变得越来越重要。前文提到,一些可视化的反向传播方法已经研究者采用,但是这些方法真的能回答神经网络在内部是如何学习的吗?
研究表明,GBP和DeconvNet方法给出的图像分辨率优于显著性映射技术,但该方法所产生的可视化效果通常在不同的类别(class)中保持不变。因此,需要在分辨率和图像显著特征之间做出某些权衡。
反向传播的可视化

本文探讨了可用于反向传播梯度可视化的不同方法(saliency map,DeconvNet,GBP)之间的差异,并将其归纳为一幅图像。
我理解为:saliency map→正交方向传播,Deconv→反向激活,GBP→两者的结合。

作者还为每种方法提供了良好的可视化结果。
可以看到,比较而言GBP的结果是最清晰的。

要想建立好的可视化效果,人类解释(human interpretability)是非常重要的。但作者也指出,GBP和DeconvNet之所以产生如此清晰的图像是因为他们修改了真正的梯度,从而在模型进行分类时,屏蔽了“哪些像素是重要的”这样的信息。
理论解释

该部分论文都是一些纯数学理论,它将向前传播和反向传播融合到了一个公式之中。因此,我们不做过多的介绍,仅探讨一些有用的结论:

在这里,作者引入了最大池化(max-pooling)操作,并修改了原有的等式,以适应更实际的CNN架构和预训练模型,并发现了三个重要特性。


(1)增加最大池化后,DeconvNet在重建图像时,表现与GBP类似
(2)增加网络深度,不会改变GBP和DeconvNet的效果
(3)即使在预训练模型中,GBP和DeconvNet也对分类操作不敏感
试 验

作者提供了三种不同神经网络的试验结果:a) 3层CNN网络,b) 3层全连接层(FCN)网络,c) VGG-16。

从上图可以看到,由GBP所产生的图像是非常清晰和锐化的,任何一个人都有可以分辨出这是猫(对于CNN和FCN)。

在CNN网络和VGG-16网络中添加了最大池化层(max-pooling)之后,我们可以观察到DeonveNet开始生成更多的图像,使得产生的图像对人类更具可解释性。
另外,作者对网络深度的变化进行了不同的实验,发现基于反向传播的方法的效果没有改变。

最后,作者给了网络一个错误的输入,看看它如何影响可视化。从理论上讲,它应该显著地影响显saliency map,因为预测的类标签和中间层的激发态都发生了变化。然而,在图像重建时,其并没有表现出特别显著的影响。上图第一行是原始输入,下面一行是错误输入,我们可以观察到,结果可视化只会改变saliency map。因此,作者得出了以下结论。

请注意作者在“部分训练权重的VGG”和“平均L2范数统计”的实验中,得出了相似的结论。
结 论

本文研究表明,GBP和DeconvNet实际上是通过向后的Relu()、局部连接和最大池化的组合,在执行图像恢复任务。因此,有必要开发更好的方法来可视化CNN的内部运行机制。
关注公众号,回复20180605,可获得论文