神经网络论文研究-图像处理方向2-VGG

前置知识补充:
感受野(Receptive field)
在这里插入图片描述
在这里插入图片描述
定义:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小
原理:通过构建多个小卷积核来使之达到大卷积核的效果,降低计算负担,提高计算效率,增加非线性与神经网络深度
比如上图,堆叠了3个3 * 3的卷积层,保持滑动窗口步长为1,那么其感受野就是77效果与使用一个77的卷积核结果一样

假设一个模型的输入大小是hwc,并且使用c个卷积核,现在我们计算一下它们所需的参数
一个77的卷积核::
c
(77c) = 49c^2

3个33卷积核:
3
c*(33c) = 27c^2

本篇论文的特点:
1,小卷积核的运用(该方法首见于Zeiler & Fergus, 2013; Sermanet et al., 2014)→有利于捕捉图像更加细节的信息
2,多尺度(训练和测试使用整张图的不同尺度)(该方法首见于(Sermanet et al.2014;Howard, 2014))
3,在应用上面两种方法的同时该论文还考虑到了网络深度对结果的影响

模型的特点:
小卷积核的运用
使用了多个小卷积核构成的卷积层代替大卷积核,有利于参数的减少,增加了网络的非线性映射,提高
网络的泛化能力

小池化核的运用
相比VGG全部采用22的池化核而alexnet使用的是33的池化核,

层数更多,网络更深
vgg常用结构为16层,19层(只统计和全连接层),而alexnet有8层(5个卷积,三个全连接)

全连接转卷积
网络的测试阶段将训练阶段的三个全连接替换为三个卷积,测试的时候使用训练时的参数,这样做的好处在于,在测试的时候因为神经网络没有全连接层的限制,可以接受任意宽与高的图像为输入

小结一波就是,结构简单,特征提取能力优秀,模型泛用性广,计算负担小

论文的主要内容

论文摘要翻译
本文研究了在大规模的图像识别中,卷积神经网络深度(层数)对准确率(accuracy)的影响。主要贡献是通过小型的3x3卷积核的神经网络架构全面地评估了深度的增加对网络的影响,结果表明16-19层的网络能使现有设置的网络性能得到明显提升。这个发现是我们在2014年的ImageNet比赛中提交方案的基础,我们的团队分别在定位和分类项目中获得了第一和第二的成绩。我们还证明了此模型可以泛化到其他数据集上,并达到当前最佳水平。我们已经公布了两个性能最佳的卷积神经网络模型,以便深度学习在计算机视觉中的进一步研究。

论文背景翻译(当时为2015年)
卷积神经网络最近在大量的图片和视频数据识别中取得重大成功,这或许是得益于大型开源图片库,比如ImageNet,以及高性能计算系统,如GPU或大规模分布式集群。特别是ImageNet大规模视觉识别挑战(ILSVRC),对深度学习图像处理的发展起到了重要作用,它为几代大规模图片识别系统——从高维浅层特征编码(ILSVRC-2011的获胜者)到深层卷积神经网络(ILSVRC-2012的获胜者)——提供了测试平台。

随着卷积神经网络在计算机视觉领域的应用越来越广,越来越多的人尝试改进Krizhevsky等人在2012年提出的原始架构,以得到更好的准确率。例如,在2013年ImageNet大赛中性能最好的改进方案——在第一个卷积层中使用较小的感受野窗口以及较小的步长(即间距),另一种改进方案是在整幅图片及多个尺寸上多次训练和测试网络(Sermanet et al.2014;Howard, 2014)。在本文中,我们着眼于卷积神经网络中的另一个方面——深度。为此,我们固定了架构中的其他参数,并通过添加卷积层稳定地增加网络深度。这是可行的,因为我们在每层都使用非常小的3x3卷积核。

因此,我们提出了更精确的卷积神经网络架构,不仅在ILSVRC分类和定位中取得最好成绩,还在其他图片识别数据集中展现卓越性能,即便只作为简单框架的一部分(如不需要微调的线性SVM深度特征分类器)。我们公布了两个最佳性能模型,以便进一步研究。

本文组织结构如下。在第二部分,描述了卷积神经网络的设置。图片分类的训练及评估细节在第三部分中阐述。在ILSVRC分类任务中不同设置的比较在第四部分中阐述。在第五部分,总结本文内容。为了完整性,我们还在附录A中描述评估了我们在ILSVRC-2014中的物体定位系统,并在附录B讨论了深度特征在其他数据集上的泛化。最后,在附录C中列出了本文的主要修订记录。

网络结构翻译
在整个训练中,卷积神经网络的输入为固定尺寸为224x224的RGB图片。唯一的预处理是对每个像素减去ImageNet训练集中RGB的平均值。图片通过一系列3x3卷积核的卷积层。在一种配置中,也使用1x1的卷积核,这可以看做是输入通道的线性变换(后面接一个非线性变换)。卷积滑动步长固定为1;卷积层的空间填充(padding)模式为保留原空间分辨率,例如3x3的卷积层,padding为1。空间池化(pooling)包含5个最大池化层,接在部分卷积层后面(不是所有卷积层)。最大池化层使用2x2的窗口,滑动步长为2。

在一系列卷积层(不同架构有不同深度)后为3个全连接层:前两个每个含有4096个通道,第三个用来给ILSVRC进行分类,因此有1000个通道。最后一层使用softmax。全连接层的设置与所有网络一致。
所有隐藏层都使用ReLU非线性激活函数。注意到我们的网络(除了一个)都不包含局部响应标准化(LRN):在第四部分 中会展示,这个标准化并不会提高网络在ILSVRC数据集上的性能,反而会增加内存消耗和计算时间。在使用的情况下,LRN层的参数是(Krizhevsky et al. 2012)的参数。(就是在这里基本证明了LRN层是没什么用的)

注意,VGG有好几个版本,下图中的D版是比较主流的版本(竖着看)

本文所评估的卷积神经网络的设置在表1列出,每列一个。接下来我们称他们为(A-E)。所有配置都遵循2.1所述的通用设计,只有深度不同:从网络A的11层(8个卷积层3个全连接层)到网络E的19层(16个卷积层3个全连接层)卷积层的宽度(通道数)非常小,从第一层的64开始,每个最大池化层后增加1倍,直到512。

在这里插入图片描述

单尺度测试结果对比:
在这里插入图片描述

由此得到的结论:
1,LRN对网络性能的提升并没有帮助
2,单独提高数据尺度对网络性能的提升没有什么效果,使用多尺度的训练方法能让网络的精度进一步提高
3,E方案的效果最好,说明一定程度地加深网络的深度(增加网络的层数)有助于网络性能的提升

多尺度结果预测对比
在这里插入图片描述

结论:
1,对比单尺度预测,多尺度综合预测能提升模型的预测精度,同时验证了尺度抖动(Scale jitter)的作用
2,VGG16(即D方案)是性能最好的模型(D方案比E方案结构更加简单,效果却在图中表现一致)

但在现实的实验中,D和E方案的使用频率都很高

只对D与E方案做对比
在这里插入图片描述

结论:dense evluation 和 mulit-crop两种联合测试的效果最好

进一步,融合D与E模型
在这里插入图片描述
效果:
模型的错误率进一步下降

与当时业界最好的结果进行对比-该部分来自对论文的翻译
在这里插入图片描述
最后,我们在表7与业界最好结果进行了比较。在2014年的ILSVRC比赛的分类任务中,我们的VGG团队取得了第二名的成绩,使用了7个模型组合的测试错误率,为7.3%,提交后,使用2个模型的组合,将错误率降低到了6.8%。
从表7可以看出,我们的深度卷积神经网络比在ILSVRC-2012和ILSVRC-2013中成绩最好的模型效果明显要好。我们的结果与分类任务的冠军旗鼓相当(GoogLeNet为6.7%的错误率),并且明显比ILSVRC-2013的冠军Clarifai的表现好得多,它使用外部训练数据时的错误率为11.2%,而不使用外部数据时为11.7%。更标志性的是,我们最佳的结果是通过对两个模型的组合——这明显比大多数ILSVRC参赛模型要少。在单一网络性能上,我们的模型取得了最好的结果(7.0%的测试错误率),比单一的GoogLeNet低0.9%。值得注意的是,我们并没有摒弃经典的卷积网络框架,并通过显著增加深度对它的性能进行了提升。

由该论文得出的结论:
1在一定的范围内,神经网络深度(层数)的增加能有效提升网络的性能,
2对比alexnet,多个小卷积核的效果比单个大卷积核的效果好
3LRN层对神经网络性能的提升并没有多大的作用
4尺度抖动(多尺度的训练与测试)有利于网络性能的提升

网络结构
在这里插入图片描述

tips:
1*1的卷积核的作用在于调整网络维度,扩大或者缩小

训练数据的预处理-翻译
卷积神经网络的训练过程与Krizhevsky等人(2012)(除了多尺寸训练数据样本的裁剪,后面会介绍)的一样。就是说,通过用包含动量的小批量梯度下降(基于反向传播)做多项式逻辑回归的优化器来对模型进行训练。批次大小为256,动量为0.9,通过权值衰减(L2惩罚因子设置为5*10-4)和对前两个全连接层进行dropout(比率0.5)实现正则化。学习率初始化为0.01,当验证集准确率不提升时以10倍速率衰减(除以10)。总的来说,学习率会衰减3次,然后训练次数为370K(74代)。我们猜想,尽管与Krizhevsky(2012)等人的网络相比,我们的网络参数更多,深度更深,却需要更少的epoch次数来收敛,因为(1)深度及更小的滤波器数量隐式增强了正则化;(2)某些层执行了预初始化。
网络权重的初始化很重要,由于深度网络梯度下降的不稳定性,不好的初始化会阻碍学习。为了规避这个问题,我们从训练网络A(表1)开始,它足够浅,能用随机初始化。然后,当训练更深网络结构时,我们用网络A的权重初始化前四个卷积层和后三个全连接层(中间层随机)。对预初始化层,不降低学习率,允许他们在学习过程中改变。对于随机初始化,我们从0均值和0.01方差的正态分布中取值。偏差初始化为0。值得注意的是,我们发现可以用Glorot&Bengio(2010)中的随机初始化程序来对权重进行初始化,而不需要进行预训练。
为了得到固定的224x224的RGB输入图片,我们随机从经过尺寸缩放的训练集图片中进行裁剪(每张图的每次SGD迭代时裁剪一次)。为了进一步对训练集数据进行增强,被裁剪图片将进行随机水平翻转及RGB颜色转换。训练图片的尺寸缩放将在后面阐释。
训练集图片尺寸 令S为各向同性缩放的训练图像最小边, 卷积神经网络的输入就是从中裁剪的(S也称为训练尺寸)。裁剪尺寸固定为224x224,原则上S可以取任何大于等于224的值:若S=224,裁剪图像将使用整个图像的统计信息,完全涵盖训练图像的最小边;若S>>224,裁剪图像就会取图像的一小部分,包含一个很小的对象或对象的一部分。
我们考虑使用两种方式来设置训练尺寸S。第一种是固定S,针对单尺寸图片的训练。(注意,裁剪的样本图像内容仍然能够代表多尺寸图片的统计信息)在实验中,评估了两种固定尺寸的训练模型:S=256(在之前研究中广泛使用)和S=384。给一个卷积神经网络,首先用S=256训练。为了加速S=384的训练,使用在S=256上的预训练权重来初始化权重,并且使用较小的初始学习率0.001。
第二种设置S的方式是使用多尺寸图像训练,即每个训练图片的尺寸是[Smin,Smax]之间的随机数(这里使用Smin=256,Smax=512)。由于图像中的对象可能大小不一,所以训练中采用这种方式是有利的。这可以看作是一种尺寸不定(scale jittering)的训练集数据增强,使得一个单一模型能够识别各种尺寸的对象。考虑到速度,我们使用与微调后的S=384的单一尺寸预训练模型相同设置的模型,来训练多尺寸模型。

小结
S=256为例
将图片进行等比变化(而不是破坏原图的比例),最小边度长度为256
对等比变化后的图像随机截取224*224的图像块
对裁剪的图像块进行随机水平翻转与RGB颜色转换

该网络超参数的设置
batch_size = 256
weight_deacy = 5*10-4
learning_rate = 0.01
momentum = 0.9(优化方式为SGD)
迭代步数为370k
epoches = 75

卷积核的初始化方式:使用标准正态分布
bias:初始化为0

全连接层的初始化方式:
正态分布(std = 0.005)
bias常数初始化(0.1)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值