一、概览
自 2012 年以来,CNN 在 ImageNet 上不断取得出色的成绩。但当时似乎并没有理由能解释 CNN 为何表现良好,为何通过某些调参、改动网络结构等操作,可以明显提升预测精度。文中作者利用反卷积技术重构每层的输入特征并加以可视化,通过可视化的展示来分析如何优化网络。同时还分析了该网络结构中,每层对整体分类性能的贡献。该网络结构证实了在许多数据集分类测试,如 ImageNet 上,成绩要超过当时许多先进模型。
二、相关工作
CNN 得以复兴的原因:
- 数以百万计的带标签训练集的出现;
- 强大的 GPU 计算能力;
- 更好的模型优化算法的提出。
从科研角度来看,人们通常靠运气来构造和调节卷积神经网络。这种方法具有较大的不稳定性。文中利用多层反卷积网络(Multi-layed Deconvnet)重构每层的输入信息,再将重构信息映射到原始输入像素空间中,从而实现特征可视化。
实验模型的选择参考了 Krizhevsky ( Imagenet classification with deep convolutional neural networks. 2012)。通过改变模型的一些参数(如卷积核,步长等),选出在 ImageNet 上分类效果最好的结构。同时,可以仅仅训练最优模型的 softmax 分类器,来挖掘模型在其他数据集上的泛化能力。
三、网络结构
卷积网络
输入一张二维彩色图像,通过一系列隐含层,映射成长度为 C 的一维概率向量,向量中的每个概率分别对应 C 个不同分类。其中,每个卷积层包含以下部分:
- 对前一层输出结果进行卷积;
- 将卷积结果通过 relu 函数运算;
- 通过 max pooling 层(可选);
- 对降采样后的特征进行标准化(可选)。

反卷积网络
反卷积网络可以看作是卷积网络的逆过程,它们拥有相同的卷积核和 pooling 函数,是将输出特征逆映射为输入信号的过程。
文中的模型,在卷积网络的每一层上都附加了一个反卷积网络(下图上半部分)。首先,输入图像经过卷积网络,每一层都会得到相应输出。为了测试某个卷积层的特征,将最大输出特征以外的特征值全部置零,然后输入与之相连的反卷积网络,依次进行如下操作:
-
反池化。max pooling 操作通常是不可逆的。文中使用了一种近似的逆转方法(下图下半部分):通过一个
switch
集合,保存每个最大值在原始图中的位置,unpooling 过程中则将最大值标注回记录所在位置,其余位置补 0。 -
反激活。与卷积网络相同,将重构信号送入 relu 非线性函数,保证输出非负性。
-
反卷积。使用和该层卷积网络相同的但经过转置后的卷积核进行卷积运算,相当于把参数矩阵在水平和垂直方向翻转了一下。

四、卷积网络可视化
特征可视化
下图展示了在给定输出特征的情况下,反卷积网络产生的 Top 9 输入特征,同时将它映射到原始像素空间。可以发现,尽管输入图像差异性比较大,通过卷积网络输出的特征却能保持相似性;比较各层的可视化结果可以发现网络具有层次化的特点(颜色、边缘—纹理—类间差异—类内差异)。

训练过程中特征的演变
下图展示了在训练过程中,由特定输出特征,重构得到所有训练样本内最强输入特征的演变过程。可见,低层特征经过一定次数的迭代,会逐渐趋于稳定;而高层特征则需要相对更多次的迭代才能收敛。

特征不变性
下图展示了 5 种类型图片,经过平移、旋转和缩放操作后,对最终输出特征的影响。可见,对于低层网络,很小的变化都会导致输出特征变化明显,而越往高层,对其输出结果的影响越小。

五、模型改善
结构选取
以 Krizhevsky 网络模型为例,下图展示了通过可视化特征分析、改善网络模型的过程。初始模型层 1(b)混杂了大量高频、低频信息,层 2(d)使用了太大的跨度,产生了许多无用特征;改善后的模型层 1(c),层 2(e)输出的特征图要明显清晰。

遮挡敏感性
实验中,使用一个灰色矩形对输入图像的每个部位进行遮挡,探究对分类性能的影响。可见,当图像关键区域被遮挡时,分类器性能急剧下降。

相关性分析
实验中,通过系统性地遮挡图片内一部分,比较原始图片和被挡图片产生的特征差异性,探究图像内特定物体之间的相关性(如空间位置)。误差变化越接近,代表遮挡物体对分类的影响越一致。可见,遮挡左眼、右眼和鼻子的误差变化比随机遮挡更低,说明三者之间内部存在相关性。

六、实验内容
调整网络结构
去除最后两个全连接层,网络性能下降很少;去掉中间两个隐含层,网络性能下降也很少;但把上述的卷积层和全连接层都去掉之后,网络性能急剧下降。

可见,模型深度与分类效果密切相关;改变全连接层节点个数对分类影响不大;扩大中间卷积层的节点数对训练效果有提高,但也加大了全连接出现过拟合的可能。
特征泛化能力
保留 1~7 层训练结果,在不同数据集上(Caltech,PASCAL)重新训练 softmax 分类器,效果均非常好。
特征分析
保留训练后模型的前 n 层,后接线性 SVM 或 softmax 分类器。可见,模型学到的特征同样适用于 SVM 分类器;随着保留层的增多,分类能力逐渐上升,保留全部 7 层时效果最好。

网友评论