一、介绍
VGGNet是于2014年由牛津大学计算机视觉组和DeepMind公司共同研究的。在2014年的ILSVRC比赛上获得了分类项目的第二名和定位项目的第一名。这个网络据说是基于NIN网络的思想。与比赛中的第一名GooLeNet从NIN开始向两个方向发展。VGGNet的理念是更深的网络性能更好。因此,VGGNet的主要理念有:
- 网络层数越多,也就是网络越深,网络的性能越好。
- 网络越深越不好训练,容易过拟合。因此,采用小卷积核。
二、模型结构
如图中所示,论文中一共提供了六种结构,可以分为VGG11、VGG13、VGG16和VGG19。其中VGG16和VGG19是我们常用的网络。它们的结构可分为两部分,第一部分为卷积层,主要目的是提取特征。第二部分为全连接层,主要目的是进行分类。在网络中主要的操作有
- 输入图像预处理只做了减均值操作,可以减去128或者减去所有像素的均值,收敛会快一些,性能不会差太多。
- 隐藏层使用ReLU,效率更高。不使用LRN。LRN也被证实没多大用处。在之后的模型也不被使用。
- 使用$3\times 3$和$1\times 1$的卷积核,非常小的感受野,这样就可以把网络加深,使用多个卷积核的总参数变少。
- $1\times 1$的卷积增加了决策函数的非线性,相当于全连接。可进行通道的降维或者升维。
- 两个连续的$3\times 3$卷积核相当于一个$5\times 5$,三个相当于$7\times 7$。好处是网络结构更深,增加了非线性能力,参数更少了。
在模型中,优化方法使用含有动量的随机梯度下降,损失函数中加入了L2正则化,全连接层的前两层加入了Dropout防止过拟合。网络的测试结果为
三、总结
VGGNet虽然是2014年分类任务的第二名,但是与第一名相差并不多,并且对之后的模型发展影响巨大。VGGNet网络得出的结论有
- LRN,局部归一化并不能改善网络的性能
- 随着网络的加深,分类误差降低,特征收敛越快,受样本变化的影响越小。
- 数据增加等操作可以增强模型的鲁棒性。
- 多裁剪评估比密集评估,效果更好。
VGGNet网络是一个非常好的网络,在很多任务中,都以它为基础模型,在此基础上进行更改。学习VGGNet模型,要知道它的网络结构,以及设计思想和最终的实验结论。