卷积神经网络 VGGNet,由牛津大学著名研究所VGG提出,斩获该年ImageNet竞赛中Localization Task(定位任务)第一名和Classification Task(分类任务)第二名。
我们先来看下VGGNet的网络结构,如图1所示。

图1AlexNet和VGGNet网络结构图
上图是AlexNet和VGGNet网络结构对比[5]
VGGNet包含两种结构,分别为16层和19层。从图中可以看出,VGGNet结构中,所有卷积层的kernel都只有3*3。
VGGNet中连续使用3组3*3kernel(stride为1)的原因是它与使用1个7*7kernel产生的效果相同,然而更深的网络结构还会学习到更复杂的非线性关系,从而使得模型的效果更好。该操作带来的另一个好处是参数数量的减少,因为对于一个包含了C个kernel的卷积层来说,原来的参数个数为7*7*C,而新的参数个数为3*(3*3*C)。
VGG网络的设计严格使用3×3的卷积层和池化层来提取特征,并在网络的最后面使用三层全连接层,将最后一层全连接层的输出作为分类的预测。 在VGG中每层卷积将使用ReLU作为激活函数,在全连接层之后添加dropout来抑制过拟合。
使用小的卷积核能够有效地减少参数的个数,使得训练和测试变得更加有效。比如使用两层3×3卷积层,可以得到感受野为5的特征图,而比使用5×5的卷积层需要更少的参数。由于卷积核比较小,可以堆叠更多的卷积层,加深网络的深度,这对于图像分类任务来说是有利的。VGG模型的成功证明了增加网络的深度,可以更好的学习图像中的特征模式。
图2给出了VGG16Net的网络结构以及每一层计算所对应的需要消耗的内存和计算量。从表中我们可以看出,内存消耗主要来自于早期的卷积,而参数量的激增则发生在后期的全连接层。

图2 VGG16Net网络结构
网友评论