Vgg网络解读

论文题目:Very Deep Convolutional Networks for Large-Scale Image Recognition

论文地址:https://arxiv.xilesou.top/pdf/1409.1556.pdf

摘要

“在这项工作中,我们研究了卷积网络深度在大规模的图像识别环境下对准确性的影响。我们的主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估,这表明通过将深度推到16-19加权层可以实现对现有技术配置的显著改进。这些发现是我们的ImageNet Challenge 2014提交论文的基础,我们的团队在定位和分类过程中分别获得了第一名和第二名。我们还表明,我们的表示对于其他数据集泛化的很好,在其它数据集上取得了最好的结果。我们使我们的两个性能最好的ConvNet模型可公开获得,以便进一步研究计算机视觉中深度视觉表示的使用”。


解读

vgg(金字塔结构)网络非常适用于中小型网络(网络深度在几十层),分类性能非常好,即使是在当下同样也很受欢迎,使用它作为基础网络(backbone)。

创新点

使用小卷积3*3代替7*7卷积,降低计算量。

卷积层与层之间使用relu激活函数,max-pool无激活。

预处理:每个像素减去训练RGB均值。


网络架构

Vgg网络解读

图为vgg16

这里以vgg16来讲解。白色是卷积层+激活,红色是池化,蓝色是全连接层+池化,棕色框是预测层(softmax),16层对应的是卷积层与全连接层数量和。

图像以固定尺寸(224×224×3)输入网络,网络的第一、二层为224×224图像尺寸,64是通道数也是卷积核数量,大小3×3,步长为1,填充p为0。每次卷积紧接一次relu。两层卷积后最大池化(池化的本质是降维,减少信息冗余,有最大池化和平均池化两种),使用128个核大小2×2,步长为2,填充p为0,使图像缩小为112*112。之后在进行卷积操作,方法类似,只是把通道数成倍增加。

最后接全连接层,也正因为是全连接层导致图像的输入是固定尺寸(现在用1*1卷积代替全连接层,目的降低参数量),全连接层的最后一层1000表示分类种类为1000种(有多少种类就是多少)。

网络结构图

Vgg网络解读

vgg 11-19层,对应架构图

这里主要说一点16层结构用了1*1的卷积,

1*1卷积最早出现在NIN中(network in network),1*1卷积好处是减少很大参数量和降低维度,可以使模型训练速度加快(其实这点知道会用就可以了,参数量计算原理可以看我另一篇文章Googlenet)。


训练与测试

前4个卷积和最后三个全连接要初始化,其他权重weights随机0--10^-2 正态分布 ,bias=0。批处理大小设为256,动量为0.9。训练通过权重衰减(L2惩罚乘子设定为5⋅10^−4)进行正则化,前两个全连接层采取dropout正则化(dropout比率设定为0.5)。学习率初始设定为10^−2,然后当验证集准确率停止改善时,学习率以10倍的比率进行减小。学习率总共降低3次,学习在37万次迭代后停止(74个epochs)

评价指标 top-1,top-5。

测试阶段可以把全连接改为卷积(不在限定输入图片大小)

实验结果对比不放了,没什么好说的,就是在说自己模型怎么怎么好。


模型局限

参数量大,第一个全连接计算量大,影响训练时间。

某些参数要人为设定初始化。

可能出现梯度爆炸/消散,overfit(resnet残差连接解决网络深度过大时导致的梯度消失问题,resnet解读在另外一篇)。

图片大小固定(全连接导致)。


我是休柏,向阳而来。


分享到:


相關文章: