Striving for simplicity: the all convolutional net 论文阅读笔记

Striving for simplicity: the all convolutional net

会议:ICLR

时间:2015年

本文首先对当年网络的构成进行讨论(基本都是由修改后的卷积层、max-pooling层和少量全连接层构成),并通过在多个识别benchmarks上发现池化层可以简单地用一个增加步长(stride)的卷积层代替,而不会损失准确性,因此本文构建了一个仅由卷积层组成的网络,并在多个识别benchmark(CIFAR-10,CIFAR-100,ImageNet)上取得了sota结果,此外本文提出一个“Deconvolution”方法对CNN学习后的特征进行可视化,这也是这篇笔记关注的重点。

1.Introduction

本节主要讨论现有网络的构成,并引出一个问题:由于现有模型的扩展和不同的架构都有自己的参数和训练过程,那么如何判断CNN的哪些组件对于在当前目标识别数据集上实现最先进的性能实际上是必要的?为此本文提出使用一个全部由CNN构成,偶尔使用长度为2的步长的CNN降低维数的网络进行实验。经过实验发现,该网络在不需要复杂的激活功能和任何响应归一化层或最大池化层的情况下能够达到sota的结果。由于此架构中降维是通过跨行卷积而不是最大池化来执行的,因此它自然也适合于研究有关神经网络可逆性(invertibility)的问题。

2.Model description - the all convolution network

本章将介绍如何构建一个全CNN的神经网络。与传统网络相比,模型共有两处不同。

第一处不同

首先,本文将pooling层替换为一个标准的步长为2的卷积层(将p-norm看作激活函数,当p趋近无穷时,可等价为max)。下面将对为什么这么替换可以等价进行讨论。首先定义 f f f为某CNN层输出获得的特征图,其维度为 W × H × N W \times H \times N W×H×N,其中 W W W H H H分别表示特征图的宽和高, N N N表示通道的数量(本例中 f f f为卷积层的输出, N N N为本层卷积核的数量)。

下面提出一个p-norm下采样(或称为pooling),其中池化的大小为 k k k(或一半长度 k / 2 k/2 k/2),步长为2,池化后的特征图用一个三维矩阵 s ( f ) s(f) s(f)表示,公式如下:

s i , j , u ( f ) = ( ∑ h = − ⌊ k / 2 ⌋ ⌊ k / 2 ⌋ ∑ w = − ⌊ k / 2 ⌋ ⌊ k / 2 ⌋ ∣ f g ( h , w , i , j , u ) ∣ p ) 1 / p s_{i,j,u}(f)=\left(\sum_{h=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{w=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}|f_{g(h,w,i,j,u)}|^p\right)^{1/p} si,j,u(f)= h=k/2k/2w=k/2k/2fg(h,w,i,j,u)p 1/p

其中 g ( h , w , i , j , u )   =   ( r ⋅ i + h , r ⋅ j + w , u ) g(h,w,i,j,u)~=~(r\cdot i+h,r\cdot j+w,u) g(h,w,i,j,u) = (ri+h,rj+w,u),该函数的物理意义是将 f f f中一个 k × k k \times k k×k大小的区域映射至 s s s对应的位置。上式i,j,u表示池化后特征图 s s s对应位置的像素,i,j表示宽和高,u表示通道数。h和w为表示池化区域内长和宽的索引,范围从 − ⌊ k / 2 ⌋ -\lfloor k/2\rfloor k/2 ⌊ k / 2 ⌋ \lfloor k/2\rfloor k/2,当 p p p趋向无穷时,上述公式就转化为max pooling。

这里我们将上述公式与普通卷积层 c c c的定义进行比较,以讨论下他们之间的关系,卷积层的一般定义如下:

c i , j , o ( f ) = σ ( ∑ h = − ⌊ k / 2 ⌋ ⌊ k / 2 ⌋ ∑ w = − ⌊ k / 2 ⌋ ⌊ k / 2 ⌋ ∑ u = 1 N θ h , w , u , o ⋅ f g ( h , w , i , j , u ) ) c_{i,j,o}(f)=\sigma\left(\sum_{h=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{w=-\lfloor k/2\rfloor}^{\lfloor k/2\rfloor}\sum_{u=1}^N\theta_{h,w,u,o}\cdot f_{g(h,w,i,j,u)}\right) ci,j,o(f)=σ h=k/2k/2w=k/2k/2u=1Nθh,w,u,ofg(h,w,i,j,u)

其中 θ \theta θ表示卷积核(或卷积核权重), σ ( ⋅ ) \sigma(·) σ()为激活函数(这里使用ReLU), o ∈ [ 1 , M ] o \in [1,M] o[1,M]为输出特征图(或输出卷积核)的数量。上述公式的物理意义表示为第 o o o个输出特征图的第i,j位置的像素如何计算,因为每次卷积都需要将不同通道的特征图进行卷积后相加,因此多了一项 ∑ u = 1 N \sum_{u=1}^N u=1N

通过形式化公式可以发现,两种操作均都依赖于前一层特征图的相同元素。Pooling池化层可以看作一种使用p-norm为激活函数的feature-wise convolution(即 u = o u = o u=o时,卷积核的值 θ h , w , u , o = 1 \theta_{h,w,u,o}=1 θh,w,u,o=1,其他卷积核的值为0),也就是这种将池化层转变为卷积层的操作是可行的。

之后,本文又讨论了为什么网络中需要pooling池化层这一操作。这里总结为以下三点:(1)p范数使CNN中的表示更加不变(invariant)。(2)通过池化技术降低空间维度,使得在更高层次上覆盖输入的更大部分成为可能,也就是扩大了感受野。(3)feature-wise的池化更容易优化。

第二处不同

与其他网络等不同,本网络使用 k < 5 k<5 k<5的小卷积核,这可以大大减少网络参数量,可以视为一种正则化的方式。此外为了统一结构,这里使用1x1卷积代替全连接层,该方案首先由Lin等人[1]提出,并认为由于1x1卷积层的参数比全连接层少很多,因此可以进一步正则化网络。

总体而言,本文提出的仅由具有卷积层+ReLU激活函数和averaging + softmax层以对图像进行预测。

3.Experiments

本实验在CIFAR-10,CIFAR-100和ILSVRC-2012 ImageNet上进行训练。

3.1 Experiments setup

本节主要对网络一些相关设置进行介绍,并介绍了作为对比的网络的框架和本网络的框架,分别如表1和2所示:
在这里插入图片描述
在这里插入图片描述

3.2 Classification results

3.3 Classification of imagenet

由于我们的重点是在下面可解释性,这里结果就简单粘贴一下,简而言之全卷积层的网络能达到较好的实验结果。
在这里插入图片描述
在这里插入图片描述

3.4 Deconvolution

以下是本文的重点。

为了对上文提出的网络进行分析,研究模型在没有池化层的情况下,逆向重构图像的表现,(池化层通常用于减少特征图的空间尺寸,提取主要特征,而没有池化层的模型可能会更适合图像逆向重构(即从特征图还原到原始图像))这里使用Deconvolution算法进行可视化。然而经过实验发现,该方法在没有max-pooling的层中并不能取得较好的可视化效果,因此本文提出一个全新且高效的方法对深层网络进行可视化。

然而,“deconvnet”(反卷积网络)的重建过程是通过使用前向传播过程中记录的开关信息(switches)来进行条件化的,而不是直接可视化学到的特征。在反卷积过程中,网络需要根据输入图像的开关信息来生成重建结果,这使得可视化结果与输入图像密切相关。而由于本网络中不包含最大池化(maxpooling)层,因此在理论上,可以在没有开关信息的情况下进行反卷积,即不依赖输入图像作为条件,这样可以了解浅层网络学习到了什么特征。下图中展示了前三层学习到的特征的可视化结果,可以发现,网络的第一层并没有学习到通常的Gabor滤波器,而较高层次的层次则学习到了这样的特征。
在这里插入图片描述
然而在较深的层次上,该方法无法在本网络上很好地可视化网络学习到的特征,可以看下图左侧所示。主要分析原因是由于低层卷积核学习到的是具有有限不变性(invariance)的更通用的特征(这些一般特征是对输入图像的低级表示,如平移、旋转等),很容易通过单一模型使其最大激活。而高层特征具有更高的特征不变性,没有单一的图像能够最大程度地激活这些神经元。这意味着在较深的层次上,特征更加抽象和复杂,不容易通过简单的反卷积方法来重构出清晰的图像。(而Deconvnet的效果之所以那么好是因为在反卷积过程中存在max-pooling,通过switches一定程度上记录了输入图像的位置信息,但在本网络中不存在pooling,所以Deconvnet效果较差)因此,在可视化深层网络特征时,需要根据输入图像的条件进行重构,以获得合理的结果。简单来说就是Deconvnet之所以在深层中效果好是因为switches记录了一部分输入图像的信息,而本网络不存在pooling,所以效果较差。因此在可视化时需要引入输入图像的信息。
在这里插入图片描述
一种最常见的可视化神经网络的方法就是在前向传播后的网络中进行反向出阿伯,计算神经元的激活相对于输入图像的梯度,从而找到图像中激活该神经元的区域。具体来说,这种方法使用反向传播计算特定神经元激活值相对于输入图像的梯度,可以理解为测量了输入图像中每个像素对于激活该神经元的贡献程度。通过分析这些梯度信息,可以找到图像中激活该特定神经元的区域,即图像的响应区域。需要注意的是,反向传播的计算过程是在前向传播后进行的,因此这种方法是在网络训练好之后进行的分析。在计算反向传播时,由于在前向传播过程中使用了激活函数和最大池化(如果有的话),所以反向传播是部分地与输入图像相关联的,因此可以理解为“部分条件化”于输入图像。在文章[3]中,已经对反卷积和反向传播的关系进行了讨论,简而言之二者的这两种方法的主要区别在于它们如何处理ReLU非线性激活函数的反向传播过程。

因此为了从本网络中获取一个与输入图像有条件关联的重构(使得重构结果显著地更准确,精确地从深层网络中还原出与输入图像有关的特征),同时不使用池化层,本文对“Deconvnet”进行了改进。本文从顶部梯度信号(top gradient signal)和底部数据(bottom data)两个方面进行考虑。由于“Deconvnet”等价于通过网络的反向传递,但不同之处在于在通过非线性激活函数ReLU时,其梯度是仅基于顶部梯度信号计算的(top gradient signal),忽略了底部数据(bottom data)。具体如下如b2和b3所示(这里是b因为ReLU的反向传播导致的,可以看下这篇文章https://blog.csdn.net/CltCj/article/details/118003076)。
在这里插入图片描述
这里提出一个想法,将两种方法进行结合,同时mask out顶部梯度和底部数据的信息。这里称该方法为guided backpropagation,其从网络的更高层传递额外的指导信号。这种指导信号有助于防止负梯度反向传播到较低层,从而避免了对可视化特定神经元的激活造成干扰。通过引入这种额外的指导信号,我们可以更好地可视化神经网络的内部特征,从而理解网络的工作原理和学习到的特征。有趣的是,本方法在没有switches的网络中一样能取得较好的结果,在上上图可以看到,同样适用于深层网络。从某种意义上来说,由底层ReLU激活的模式形成的自底向上的信号替代了switches信息。文中原话为:In a sense, the bottom-up signal in form of the pattern of bottom ReLU activations substitutes the switches.

以下是GPT对这句话的理解:

在这个上下文中,"bottom-up signal"指的是自底向上的信号,即来自底层网络的信号。这些信号是由底层ReLU激活的模式构成的,这些模式表示了底层神经元对输入数据中不同特征的响应。
"substitutes the switches"指的是用底层ReLU激活的模式替代了开关信息。在反卷积过程中,原本使用的开关信息指的是在最大池化层的前向传播过程中记录的哪些像素位置被选择,以便在反卷积时将激活传递回原始图像中的正确位置。
然而,作者指出在进行反卷积时,可以使用底层ReLU激活的模式作为自底向上的信号,来取代开关信息的使用。这些底层激活模式可以帮助重构输入图像中特定特征对应的区域。因此,可以通过利用底层ReLU激活的模式来改进反卷积的过程,使得可视化的结果更加准确,并有助于解释神经网络中学到的特征。

相关实验表明在有无pooling和switches的情况下,guided backpropagation都能取得比较好的结果,但deconvnet在没有pooling的情况下效果不佳。
在这里插入图片描述
但Guided-Backpropagation的主要缺点是对目标类并不敏感,也就是无法有效构建专注于某一类别图,这也是后面CAM和Grad-CAM改进的点。

4.补充知识

神经网络的反向传播过程

参考文献

[1]. Lin, Min, Chen, Qiang, and Yan, Shuicheng. Network in network. In ICLR: Conference Track, 2014.

[2]. Zeiler, Matthew D. and Fergus, Rob. Visualizing and understanding convolutional networks. In ECCV, 2014.

[3]. Simonyan, Karen, Vedaldi, Andrea, and Zisserman, Andrew. Deep inside convolutional networks: Visualising image classification models and saliency maps. In 1312.6034, also appeared at ICLR Workshop 2014, 2014. URL http://arxiv.org/abs/1312.6034.

[4]. https://zhuanlan.zhihu.com/p/142654696

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值