VGGNet总结
关于VGGNet(VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)
VGGNet简介
VGG是Oxford的Visual Geometry Group的组提出的(大家应该能看出VGG名字的由来了)。该网络是在ILSVRC 2014上的相关工作,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两者并没有本质上的区别,只是网络深度不一样。
VGGNet结构
- VGG16包含了16个隐藏层(13个卷积层和3个全连接层),如上图中的D列所示
- VGG19包含了19个隐藏层(16个卷积层和3个全连接层),如上图中的E列所示
- VGG网络的结构非常一致,从头到尾全部使用的是3x3的卷积和2x2的max pooling。 这里可以看到形象化的VGG16
VGGNet相比AlexNet
1. VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)
例如两个3x3代替5x5:
原因:
- 在不改变网络功能的前提下极大地减少了参数个数。对于一层7X7的深度为1的卷积层变量总数为7X7=49,而对于三层3X3D的深度为1的卷积层变量总数仅仅为3X(3X3)=27,减少了近一半的参数量。
- 采用更深的小卷积层将会在网络中加入更多的非线性激活函数ReLU,使模型的表示能力更强。
2. VGGNet放弃了LRN层
VGGNet的优缺点
优点:
- VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)
- 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好
- 验证了通过不断加深网络结构可以提升性能
缺点:
- VGG耗费更多计算资源,并且使用了更多的参数(这里不是3x3卷积的锅),导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。VGG可是有3个全连接层啊!
VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 一文读懂VGG网络