卷积神经网络框架之VGG网络
Very Deep Comvolutional Networks for Large-Scale Image Recognition
简述:
本文研究了卷积网络的深度对其在大规模图像识别设置中的精度的影响,并证明使用很小的卷积(3×3),增加网络深度可以有效提升模型的效果,而且VGGNet对其他数据集具有很好的泛化能力,到今天VGG网络模型依然是提取网络特征的首要选择,其突出贡献是卷积层反复堆叠3×3×3filter,并采用2×2的最大池化层,成功构筑了16层和19层的深层卷积神经网络。
问题or相关工作:
当时,对ALXE的两种改进,一种是更小的receptive window或者第一个卷积层更小的步长,另一种是在整个图像和多个尺度上密集地训练和测试网络。
VGG的基本框架是VGG的输入为224×224×3大小的图像,先对图像进行预处理:从每个像素中减去训练集上计算的RGB平均值,卷积层为3×3大小步长为1,且包涵5个最大池化层数,大小为2×2,步长为2,VGG包涵3个全连接层(FC layers),前两个都是4096个通道数,最后一个经softmax分类为1000通道数。VGG的隐藏层中没有采用局部响应归一化(LRN),在测试中发现,LRN不会影响最终结果,但会大大影响计算时间和复杂度,为扩大训练集,对数据集进行了随机水平翻转和随机RGB颜色偏移。
模型:
VGGNet有A-E七种结构,从A-E网络逐步变深,但是参数量并没有增长很,原因为:参数量主要消耗在最后3个全连接层,而前面的卷积层虽然层数多,但消耗的参数量不大。不过,卷积层的训练比较耗时,因为其计算量大。
图中,A-LRN较A来说,多了 局部响应归一化,在测试中发现,LRN不会影响最终结果,但会大大影响计算时间和复杂度。
C较B来说多了几个1×1的卷积层,1×1卷积的意义在于线性变换,而输入的通道数和输出的通道数不变,没有发生降维。
D、E为目前常用的VGG16、VGG19
成果:
- VGGNet拥有5段卷积,每段卷积内有2-3个卷积层,同时每段尾部都会连接一个最大池化层(用来缩小图片)。
- 每段内的卷积核数量一样,越后边的段内卷积核数量越多,依次为:64-128-256-512-512
- 越深的网络效果越好。
- LRN层作用不大
- 1×1的卷积也是很有效的,但是没有3×3的卷积好,大一些的卷积核可以学习更大的空间特征。
疑问:
为什么文中说每层都包涵7×7个感受野,但是过滤为什么采用的3×3大小的过滤器?
用3次连续的3×3滤波器进行依次过滤,相当于1个7×7的滤波器,感受野(receptive field)相同。但是要保证步长为1。
所以3×3的卷积层堆叠的优点为:
(1)参数量更小
(2)小的卷积层比大的有更多的非线性变换,使得CNN对特征的学习能力更强。