ECCV2014
本文针对 AlexNet 网络非凡效果,主要分析它为什么好,怎么改进。为此引入了一个 CNN网络的可视化技术,借此技术分析CNN网络中间各层都学习到什么样的特征,并提出怎么改进 AlexNet 网络。
1 Introduction 首先分析了一下AlexNet 网络成功的几个因素:i) 大量标定的训练数据,ii)GPU的计算能力使一些大模型具有训练的可行性,iii)更好的模型镇定策略,例如 AlexNet 中使用的 dropout。
虽然 AlexNet 效果很好,但是我们对于CNN网络的内部结构没有很清晰的认识,不知道它为什么有如此好的效果。为此我们借用了deconvnet 提出了一个针对CNN网络的可视化技术。
这里我们主要采用 AlexNet 网络结构,如下图所示:
将一幅图像裁出一个 224*224大小的 RGB图像作为CNN网络的输入。在第一层进行 96个不同滤波器进行卷积,每个滤波器大小为7*7,步长在 x 和 y 方向都是2 (a stride of 2 in both x and y)。接着做 ReLU ,ReLU 之后是 最大池化(max within 3x3 regions, using stride 2),最后是归一化 contrast normalized,得到96个 55*55大小的 feature maps。第 2,3,4,5层类似第一层,第5层的输出是 256个 6*6*大小的 feature maps,第6,7层是4096个神经单元的全链接层,最后一层是 C-way softmax function,对应 C个类别。
2.1. Visualization with a Deconvnet 为了将CNN网络中间层的特征可视化,我们将中间层的feature maps 通过 (Zeiler et al., 2011)提出的 deconvnet 映射到 the input pixel space。
为了观察一个网络,每个网络层都需要单独有一个 deconvnet,它将该层的信息可以重构到输入图像像素层面。开始首先是输入图像进过网络每一层计算,我们得到每一层对应的 feature maps。为了观测特定的网络响应,我们将该层其他网络响应置零,将 featur maps作为该层对应的 deconvnet 的输入。然后我们经过连续的 (i) unpool, (ii) rectify and (iii) filter 重构,最后我们得到该响应在图像像素层面的输出。如下图所示,右边对应正常的网络层,左边是对应的 deconvnet 层。
3 Training Details 这里主要是一些训练的参数设置
4 Convnet Visualization Feature Visualization: 下图显示了 CNN网络模型训练完毕之后各层学习到的特征。对于每一层,我们显示了前9个响应最大的特征,在显示学习到的特征同时,我们还显示了特征对应位置的图像。
从上图可以看出网络提取出来的特征是越来越抽象。第一层对应方向,第二层是 corners and other edge/color conjunctions,第三层 则有更多的不变性, textures text,第四层则有了一些类别信息,第五层有完整的类别信息,还有姿态信息。
随着学习的深入,各层学习到的特征也在不断变化,如下图所示:
对于图像的平移 尺度 旋转 ,特征的变化如下图所示: