论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition

自从2012的AlexNet横空出世后,卷积神经网络算是在CV领域越来越火热了。对AlexNet的改进有很多,作者着眼于改进网络的深度,并且网络全部层都使用3*3卷积过滤器。
作者公布了两个表现最好的模型 http://www.robots.ox.ac.uk/~vgg/research/very_deep/

网络结构

1、图像输入:图像调整为224*224,统一减去训练集像素均值
2、统一使用3x3卷积核(部分使用1x1《–》线性变换 非线性变化 )
3、卷积核移动步长为1像素

4、最大池化,2x2,步长2
5、3个全连接层,前2层每层有4096个通道,第三层有1000个通道,最后一层是softmax层
6、隐藏层激活都用ReLU
plus:否定LRN(由2012的AlexNet作者所鼓励使用)
论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第1张图片

讨论

一、作者觉得5x5卷积核可以被2个3x3卷积核代替,7x7卷积核可以被3个3x3卷积核代替。两个原因
1、3个3x3卷积核代表3层非线性层,能提取的内容应该是比1层7x7要多吧
2、减少参数量
二、作者还试着在C类模型中加了1x1卷积核,因为输入通道数和输出通道数都一样,那本质上算线性投影?(这个方法也被用到了NIN中)
三、强调了下将3x3卷积核大规模运用到很深的卷积网络这个创新点

模型细节

训练

1、multinomial logistic regression objective + mini-batch gradient descent + momentum
2、batch size=256
3、momentum=0.9
4、weight decay( L2 penalty multiplier = 5x10e-4
5、dropout(只在用全连接的前两层)=0.5
6、learning rate 初始为10e-2,当验证集准确度停止上升后,乘10e-1进行训练
——》作者训练74轮
训练轮数没那么多居然就收敛,推测两个原因:
1、深度和小卷积核算是某种意义上的正则化?
2、某些层进行预初始化

关于训练参数预设

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第2张图片
总结:先训练A模型,然后训练更深的模型时,把A模型训练好的参数用到复杂模型的前4个卷积层和全连接层,它们之间的层的初始化参数还是随机的,使用正态分布N(0, 0.01),bias设为0。(。。结果作者发现其实也不一定需要把A模型训练的参数带进去初始化。。)

关于训练图像大小

设置S为各向同性调整的训练图像(isotropically-rescaled training image)【各向同性调整:对图像进行成比例处理,即图片不会变形】,调整后对图像进行裁剪,裁剪大小固定为224x224,S可以取任意大于等于224的值,如果S=224那就是取整张图片了,否则就是截取图片的一部分内容。
那设置S有两个方法:
1、单尺度训练(single-scale training)
先固定S=256,然后固定S=384,把S=256时训练好的参数带到S=384中以加快训练速度。初始学习率为10e-3。
2、多尺度训练(multi-scale training) 又名 training set augmentation by scale jittering(抖动)
设置S的范围为【Smin, Smax】,Smin=256, Smin=512。
因为图片的尺寸是不一样的,这个方法可以帮助模型识别到多种尺寸的图片,所以也是有好处的。出于速度原因,我们通过对具有相同配置的单尺度模型的所有层进行微调来训练多尺度模型,使用固定的S = 384进行预训练。

测试

1、将测试图像进行各向同性重新调整到预定义好的最小图像边,设为Q(==test scale)。注意Q不一定等于S,对于每个S使用几个不同的Q效果还不错。
2、3层全连接层,把第1层改为7x7卷积层,后2层改为1x1卷积层。
结果就是类别分数图的通道数与类别数一致,其变量空间分辨率(variable spatial resolutions)依赖于输入图像大小。
3、获得每张图片类别分数的向量,其分数类地图是平均分布于空间的(sum-pooled)。
也可以通过水平翻转(horizontal flipping)图片来增强测试集;将原始图像和翻转图像的soft-max class posteriors(类后验)进行平均以得到图片的最终评分。

网络是全卷积了,所以测试时不需要对多个裁剪图片进行采样。

该段翻译 参考文献:https://cloud.tencent.com/developer/article/1435800论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第3张图片
作者介绍了训练设备和训练大概情况。

结果说明

单尺度测试集

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第4张图片
总体来说还是深度+小卷积效果还是不错的。

多尺度测试集

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第5张图片
每次测试集都有3个。效果比单尺度测试集好点。

多裁剪评估

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第6张图片
multi-crop evaluation比dense evalution好一点吧,两个结合起来效果更好。

比赛结果

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第7张图片
7个模型组合起来效果是没有DE组合好的。

跟当时的先进模型比一下

论文阅读003-VGGNet-Very Deep Convolutional Networks for Large-Scale Image Recognition_第8张图片

摘要(中文渣翻)
在这次的工作中,我们研究了卷积神经网络深度对其在大规模图像识别设置中准确度的影响。我们的主要贡献是使用一个非常小的3*3卷积过滤器架构对增加深度的网络进行全面评估,这表明通过将深度增加到16-19个权重层,可以对先前技术配置进行巨大改进。这些发现是基于我们在Imagenet2014挑战赛的提交作品,我们队分别在本地化和分类轨道中分别获得第一名和第二名。我们的表示还可以很好地推广到其他数据集,并且他们实现了最好的结果。我们还公布了两个表现最好的ConvNet模型,以进一步在研究深度视觉在计算机视觉方面的运用。

你可能感兴趣的:(计算机视觉)