VGG网络详解

论文:《Very Deep Convolutional Networks for Large-Scale Image Recognition》

地址:https://arxiv.org/pdf/1409.1556.pdf

VGG网络详解_第1张图片

一、特点

  1. 结构简洁。VGG由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max-pooling分开,所有隐层的激活单元都采用ReLU函数。
  2. 小卷积核和多卷积子层。VGG使用多个较小卷积核(3x3)的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合/表达能力。VGG通过降低卷积核的大小(3x3),增加卷积子层数来达到同样的性能。
  3. 小池化核。相比AlexNet的3x3的池化核,VGG全部采用2x2的池化核。
  4. 通道数多。VGG网络第一层的通道数为64,后面每层都进行了翻倍,最多到512个通道,通道数的增加,使得更多的信息可以被提取出来。
  5. 层数更深、特征图更宽。使用连续的小卷积核代替大的卷积核,网络的深度更深,并且对边缘进行填充,卷积的过程并不会降低图像尺寸。
  6. 全连接转卷积(测试阶段)。在网络测试阶段将训练阶段的三个全连接替换为三个卷积,使得测试得到的全卷积网络因为没有全连接的限制,因而可以接收任意宽或高为的输入。

二、网络结构 

VGG网络详解_第2张图片

VGG网络详解_第3张图片

 

上图是VGG16的网络结构图。

1、输入224x224x3的图片,经64个3x3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224x224x64
2、作max pooling(最大化池化),池化单元尺寸为2x2(效果为图像尺寸减半),池化后的尺寸变为112x112x64
3、经128个3x3的卷积核作两次卷积+ReLU,尺寸变为112x112x128
4、作2x2的max pooling池化,尺寸变为56x56x128
5、经256个3x3的卷积核作三次卷积+ReLU,尺寸变为56x56x256
6、作2x2的max pooling池化,尺寸变为28x28x256
7、经512个3x3的卷积核作三次卷积+ReLU,尺寸变为28x28x512
8、作2x2的max pooling池化,尺寸变为14x14x512
9、经512个3x3的卷积核作三次卷积+ReLU,尺寸变为14x14x512
10、作2x2的max pooling池化,尺寸变为7x7x512
11、与两层1x1x4096,一层1x1x1000进行全连接+ReLU(共三层)
12、通过softmax输出1000个预测结果

三、网络特点

第一个:两个3x3的卷积堆叠获得的感受野大小,相当一个5x5的卷积;而3个3x3卷积的堆叠获取到的感受野相当于一个7x7的卷积。

好处:(1)可以增加非线性映射;(2)很好地减少参数

原理如下:

VGG网络详解_第4张图片

 第二个:在网络测试阶段将训练阶段的三个全连接替换为三个卷积,使得测试得到的全卷积网络因为没有全连接的限制。

原因:输入图像是224x224x3,如果后面三个层都是全连接,那么在测试阶段就只能将测试的图像全部都要缩放大小到224x224x3,才能符合后面全连接层的输入数量要求,这样就不便于测试工作的开展。

如何替换,过程如下

VGG网络详解_第5张图片

例如7x7x512的层要跟4096个神经元的层做全连接,则替换为对7x7x512的层作通道数为4096、卷积核为1x1的卷积。
这个“全连接转卷积”的思路是VGG作者参考了OverFeat的工作思路,例如下图是OverFeat将全连接换成卷积后,则可以来处理任意分辨率(在整张图)上计算卷积,这就是无需对原图做重新缩放处理的优势。

VGG网络详解_第6张图片

 四、总结

  • 通过增加深度能有效地提升性能;
  • 最佳模型:VGG16,从头到尾只有3x3卷积与2x2池化,简洁优美;
  • 卷积可代替全连接,可适应各种尺寸的图片

 

你可能感兴趣的:(深度学习,神经网络,计算机视觉,深度学习)