当前位置: 代码迷 >> 综合 >> 【Paper Note】Very Deep Convolutional Networks for Large-Scale Image Recognition——VGG(论文理解)
  详细解决方案

【Paper Note】Very Deep Convolutional Networks for Large-Scale Image Recognition——VGG(论文理解)

热度:83   发布时间:2023-12-16 22:53:46.0

前言

VGG网络于2014年被提出,在ImageNet数据集上面获得了定位项目的第一名和分类项目的第二名,虽然在2014年被提出的GoogLeNet网络在定位项目之外的其他项目中都取得了第一名,风头盖过了VGG,但VGG以其简约的网络结构被人使用,VGG网络参数量巨大,但提出者公开了训练好的模型,后续使用仅需在此基础上做微调,比较方便。之前做了VGG网络Paper的翻译,这篇文章介绍VGG论文理解,以及对比VGG与其他网络结构的异同。

VGG网络结构

Paper中介绍了六种结构,网络层数逐层加深,其网络效果也越来越好,先看一下结构配置:


从上图可以看到,除了结构C中用到了1x1的卷积核之外,其他均使用3x3的卷积核,3x3的卷积核既可以减少参数量,又可以增加非线性:Paper中给出7x7的卷积核与3x3的卷积核实现同样效果所需要的参数量的对比,假设在stride为1的情况下,一个7x7的卷积核扫过特征图(假设特征图的channel数为C),需要7Cx7C=49C^2个参数,而想要实现与之相同的效果,只需要三个3x3的卷积核堆叠,此时需要的参数量为3x3Cx3C=27C^2,相比可知,用小尺寸的卷积层叠加需要的参数量要少很多;与此同时,每个卷积层后面都接着ReLU激活层,这样增加了非线性,有利于提高网络对高维特征的判别能力。至于为什么选择3x3的卷积核,作者在Paper中介绍说3x3的卷积核是能够捕获图片上下左右中心概念的最小尺寸。


由上图可知,VGG网络相当巨大,远比AlexNet大得多,大部分参数集中在最后三层的全连接层,可以看到FC-1就包含102760448个参数。

模型训练

训练设置如下:
batch size: 256
momentum:0.9
regularization: L2罚项,大小为:5*10^-4
learning rate:初始学习率为0.01,当训练阶段准确率不再提升时学习率缩小10倍
尽管模型参数很多,但只需要很少的epoch就可以收敛,原因如下:
(a) implicit regularisation imposed by greater depth and smaller conv. filter sizes;
(b) pre-initialisation of certain layers.
输入图片尺寸:假设最小边为S,当S=224时

模型测试

测试时候改变了模型结构,原来的全连接结构改变为全卷积结构,主要是因为在测试过程会有不同尺寸的输入,用全卷积则不会影响,最后一层卷积层的输出为7x7x512,则使用4096个7x7的卷积核,设置步长为1,则可实现同样的效果。

模型评估

单尺度评估


可以得出以下几个结论:
1)A vs A-LRN:LRN对模型精度并没有多少提升
2)A——E:网络层数越深,性能越好
3)B vs C:增加1x1的卷积从而增加非线性,网络性能提升
4)C vs D:非平凡卷积核(3x3)增加非线性的同时,能够捕捉到图片信息,网络性能更好

多尺度评估


其他评估







  相关解决方案