VGG

BEGIN:

 

 

 

简介:

  VGG是由Alex-net发展而来的网络(主要改进为:在第一个卷积层使用更小的filter尺寸和间隔(3*3);在整个图片和multi-scale上训练和测试图片),VGG证明了网络的深度是算法优良性能的关键部分。VGG有两种结构,分别是VGG16和VGG19,两者本质上没有什么区别,只是网络深度不一样。

VGG原理:

  VGG16是采用连续的几个3*3的卷积核代替AlexNet中的较大卷积核(11*11,7*7,5*5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可增加网络深度来保证学习更复杂的模式,且代价也较小(参数更少:如3个步长为1的3*3卷积核的一层层叠加作用可看作一个大小为7的感受野,即3个连续3*3卷积相当于一个7*7的卷积,其参数总量为3*(9*C^2),若采用7*7卷积核,参数总量为49*C^2,C指输入和输出的通道数(灰度图通道数为1,彩图通道为3)。显然,27*C^2<49*C^2,即减少了通道数,且3*3卷积核能更好地保持图像性质)。

  VGG使用3个3*3卷积核代替7*7卷积核,使用2个3*3卷积核代替5*5卷积核,其主要目的是在保证具有相同感知野的条件下,提升网络的深度,故在一定程度上提升神经网络的效果。

为何能使用2个3*3卷积核代替5*5卷积核

  5*5卷积看作一个小的全连接网络在5*5区域滑动,先用一个3*3的卷积滤波器卷积,然后再用一个全连接层连接这个3*3卷积输出,这个全连接层也可看做一个3*3卷积层,这样就可用两个卷积级联(叠加)起来代替一个5*5卷积,如下图:

 

 

 3*3卷积的作用(为什么要用3*3卷积核代替):

1)减少了参数数量(上文已分析,此处不做累述)

2)增加决策函数(dicesion function)的非线性(引入了非线性激活函数)

VGG网络结构:

  下图为VGG网络的结构(包含VGG16和VGG19)

  • VGG16包含了16个隐藏层(13个卷积层和3个全连接层),如图中D列所示
  • VGG19包含了19个隐藏层(16个卷积层和3个全连接层),如图中E列所示

 VGG的结构非常一致,全部使用3*3卷积核2*2的maxpooling.

ps:如果你想看到更加形象化的VGG网络,可以使用经典卷积神经网络(CNN)结构可视化工具(https://mp.weixin.qq.com/s/gktWxh1p2rR2Jz-A7rs_UQ )来查看高清无码的VGG网络 (https://dgschwend.github.io/netscope/#/preset/vgg-16)。

VGG优缺点:

1、VGG优点

  • VGGNet的结构非常简洁,整个网络都使用了相同大小的卷积核尺寸(3*3)和最大池化尺寸(2*2)
  • 几个小滤波器(3*3)卷积层的组合比一个大滤波器(5*5或7*7)卷积层好
  • 验证了可以通过不断加深网络结构提升性能

2、VGG缺点

  • VGG耗费更多计算资源,并且使用了更多参数(3*3卷积不背锅),导致更多的内存占用(140M)。其中绝大多数来自第一个全连接层,但后来有人发现即使去除全连接层对性能也没什么影响,这样就显著降低了参数数量。

 参考:

https://www.jianshu.com/p/e0845ecaf7f7

END.

posted @ 2020-11-12 15:09  Gangpei  阅读(1633)  评论(0编辑  收藏  举报