VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
introduction
文章主要研究了卷积神经网络深度对于实际效果的影响,采用了一个3*3小尺寸卷积核,固定了其它参数,逐渐增加网络深度,在ILSVRC数据集上进行实验。读完这篇论文应该明白以下几个问题:
1.为什么卷积网络中有时候会采用1*1的卷积?有什么作用?
2.大尺寸的卷积可以用小尺寸卷积替代吗?或者说大的感受野可以用几个较小感受野替代吗?
3.深度对于卷积神经网络的影响?如何设计卷积核大小?
4.LRN(from ALexNet)有没有起到作用?
一、why?
随着卷积神经网络的兴起,已经有人进行了采用较小感受野(receptive window size)和较小stride的研究,并且取得不错成果。
本文主要研究网络深度的影响,这一论文结果也基本奠定了以后网络的基本结构,给了我们很多设计上的启发,例如卷积核大小选取。
For instance, the best-performing submissions to the ILSVRC-
2013 (Zeiler & Fergus, 2013; Sermanet et al., 2014) utilised smaller receptive window size and smaller stride of the first convolutional layer。
二、overall Architecture
2.1 architecture
整个训练过程中输入大小是224224 RGB image, 唯一做的预处理就是每个像素减去了在训练集上得到RGB均值。经过了一大堆的卷积操作,使用了非常小的感受野33(which is the smallest size to capture the notion of left/right, up/down,center),在某一项配置中使用1*1卷积(可以看为输入通道的线性变换),增加padding保持卷积后空间分辨率不变,例如3x3卷积padding是1,池化使用最大池化(不是所有卷积后边都使用最大池化),最大池化采用2x2,stride为2.
卷积操作后是3个全连接层,前两个都拥有4096个通道,最后一个是1000(分类就是1000,当然包含1000个通道),最后一层是softmax 。
所有隐藏层使用Relu函数,值得注意得是作者提到在结构中只有一个使用了LRN,因为使用LRN在ILSVRC Dataset上表现并没有明显提升,反而增加了内存损耗和计算时间。作者又说在适用的情况下可以参考Alexnet。(踢皮球踢回去了,也没说到底有用没有)
2.2 configuration
如表格1所示,我们的参数配置从11 weight layers to 19 weight layers ,表格2展示了每一种配置对应的参数数目大小。
2.3 Discussion
本文使用的卷积配置不同于以往使用的结构,以前都使用(e.g. 11×11 with stride 4 in (Krizhevsky et al., 2012), or 7×7 with stride 2 in (Zeiler & Fergus,
2013; Sermanet et al., 2014)),整个网络中都用33 的感受野,可以看到两个33 重叠卷积相当于一个55的卷积,3个33conv就相当于一个7*7的卷积(具体见附录),那么这么做有什么好处呢?
1.首先,这样做就可以有3个非线性整流单元(e.g Relu)而不是一个,可以大大增加模型的判别能力。
2. 减少模型参数(decrease the number of parameters):
assuming that both the input and the output of a three-layer 3 × 3 convolution stack has C channels, the stack is parametrised by
3
(
3
2
C
2
)
=
27
C
2
3(3^{2}C^{2})=27C^{2}
3(32C2)=27C2 weights; at the same time, a single 7 × 7 conv. layer would require
7
2
C
2
=
49
C
2
7^{2}C^{2}=49C^{2}
72C2=49C2 parameters.
小尺寸卷积也被其他人使用过,要不就是比本文复杂(GoogLeNet (Szegedy et al., 2014)),要不就是没有本文性能好,深度也不如本文(Ciresan et al. (2011))。
三.总结
相比较而言,VGGNet的参数数量还是太多了,所以比较难以处理。但是,VGGNet提供了简单统一的网络结构标准,即所有的卷积核大小都是3x3的。而且MAxPooling都是每2(也有3次的)次卷积之后进行一次,卷积核的数量在每次maxpooling之后都翻一倍。此外,VGGNet最重要的贡献是证明了分类任务可以通过使用小的卷积核增加CNN的深度来提高精度。同时,作者公开了VGGNet的最好的两种权重配置(即VGG16和VGG19),它的预训练结果被用来处理很多任务。也作为特征抽取的基准被很多研究对比使用。
这篇论文基于大规模图像识别对卷积网络深度进行了多达19层的研究,结果表明深度有利于提高图像分类精度,以及在ImageNet挑战数据集上的性能可以使用传统的ConvNet架构增加深度实现(LeCun等人,1989;Krizhevsky等人,2012)。文章还展示了模型可以很好地推广到广泛的任务和数据集中。
四.Appendix
receptive window
假设输入的size为n,那么kernel size :3x3, stride:1的conv扫描一次的结果是(n-3)/1+1 = n-2,再扫描一次就是(n-2-3)/1+1=n-4。如果卷积核是5x5,那么扫描一次就是(n-5)/1+1 = n-4。其结果是一样的。VGGNet思想就是用更小更深的卷积核代替大的卷积核。
参考1点击获取介绍–感受野与重叠
参考2VGGNet简介