VGGNet
Reference
[1409.1556]Very Deep Convolutional Networks for Large-Scale Image Recognition
前言
VGGNet由Oxford的Visual Geometry Group组提出,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能,该网络结构在2014年ImageNet竞赛中获得季军。VGG有两种结构,分别是VGG16和VGG19,两者并没有本质上的区别,只是网络深度不一样。
1. VGGNet的原理
VGG16相比AlexNet有三个改进点:
- 去掉了LRN层,作者发现深度网络中LRN的作用并不明显,干脆取消了
- 采用更小的卷积核-3x3,Alexnet中使用了更大的卷积核,比如有7x7的,因此VGG相对于 Alexnet而言,参数量更少
- 池化核变小,VGG中的池化核是2x2,stride为2,Alexnet池化核是3x3,步长为2
最主要的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。
比如,2个步长为1的3x3卷积核的一层层叠加作用可看成一个大小为5的感受野(其实就表示2个3x3连续卷积相当于一个5x5卷积),其参数总量为 2x(9xCxN) ,如果直接使用5x5卷积核,其参数总量为 25xCxN ,这里 C 指的是输入和输出的通道数。很明显,18xCxN小于25xCxN,即减少了参数;而且3x3卷积核有利于更好地保持图像性质。
这里解释一下为什么使用2个3x3卷积核可以来代替5x5卷积核:
5x5卷积看做一个小的全连接网络在5x5区域滑动,我们可以先用一个3x3的卷积滤波器卷积,然后再用一个全连接层连接这个3x3卷积输出,这个全连接层我们也可以看做一个3x3卷积层。这样我们就可以用2个3x3卷积级联(叠加)起来代替一个 5x5卷积,如图所示:
image.png
2. VGGNet的网络结构
image.pngVGG16包含了16个隐藏层(13个卷积层和3个全连接层),VGG19包含了19个隐藏层(16个卷积层和3个全连接层)。VGG网络的结构非常一致,从头到尾全部使用的是3x3的卷积和2x2的max pooling。
3. VGGNet的优缺点
VGG优点
- VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。
- 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或11x11)卷积层效果要好。
- 验证了通过不断加深网络结构可以提升性能。
VGG缺点
- VGG耗费更多计算资源,并且使用了更多的参数(这里不是3x3卷积的锅),导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。
网友评论