VGGNet论文笔记翻译+重点

本文探讨了深度卷积网络在大规模图像识别任务中的应用,通过实验表明增加网络深度至16-19层能显著提升分类准确性。研究使用了小尺寸的3x3卷积核,揭示了深层架构的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本文研究了卷积网络深度在大规模的图像识别环境下对准确性的影响,主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估,这表明通过将深度推到16-19加权层可以实现对现有技术配置的显著改进。
随着ConvNets(卷积神经网络)在计算机视觉领域越来越商品化,为了达到更好的准确性,已经进行了许多尝试来改进最初的架构。
  1、提交使用更小的感受窗口尺寸和更小的第一卷积层步长。
  2、改进措施在整个图像和多个尺度上对网络进行密集地训练和测试。
  3、本文,解决了ConvNet架构设计的另一个重要方面——其深度。

2.1 结构

  在训练期间,我们的ConvNet的输入是固定大小的224×224 RGB图像。我们唯一的预处理是从每个像素中减去在训练集上计算的RGB均值【计算每一张图片所有像素对应rgb平均值】。图像通过一堆卷积(conv.)层,我们使用感受野很小的滤波器:3×3。
  我们还使用了1×1卷积滤波器,可以看作输入通道的线性变换(后面是非线性)。
  在2×2像素窗口上进行最大池化,步长为2。
  一堆卷积层(在不同架构中具有不同深度)之后是三个全连接(FC)层:前两个每个都有4096个通道,第三个执行1000维ILSVRC分类,因此包含1000个通道(一个通道对应一个类别)。最后一层是soft-max层。所有网络中全连接层的配置是相同的。
  所有隐藏层都配备了修正(ReLU(Krizhevsky等,2012))非线性。我们注意到,我们的网络(除了一个)都不包含局部响应规范化(LRN)(Krizhevsky等,2012):将在第4节看到,这种规范化并不能提高在ILSVRC数据集上的性能,但增加了内存消耗和计算时间。在应用的地方,LRN层的参数是(Krizhevsky等,2012)的参数。

  对图像进行预处理:计算每一张图片所有像素对应rgb平均值,将原图片,每个像素都减去均值,将图片进入33,步长为1的卷积网络进行计算,用了22窗口的,步长为2 的池化。三个全连接层,前两个4096个神经元,最后一个输出层是1000个神经元,因为imagenet分类为1000个分类,最后一个softmax层,将输出转化为概率。每一层用的都是relu的激活函数,未用到LRU局部响应归一化,使用后发现未增加性能,却增加了内存和计算时间


   尝试了多个深度不同的结构,11表示网络11层 19代表网络19层,一般DE网络应用较多,常见的为VGG-16和VGG-19 ,层数不同表示为卷积层数量不同,11层还尝试了LRN技术。
  卷积层参数表示为“conv⟨感受野大小⟩-通道数⟩ conv3-128 表示使用3*3的卷积窗口,生成128个特征图。

VGG-16的网络结构:
  白色为卷积,红色为池化,蓝色为全连接,最后棕色为softmax函数。池化和softmax虽需计算,但没有需要训练的权值,所以不包含在网络层数中,所以总计16层
需要训练的权值数量:(单位为百万)
  GooLeNet(Szegedy等,2014),ILSVRC-2014分类任务的表现最好的项目【2014比赛冠军,本文VGG是亚军】,是独立于我们工作之外的开发的,但是类似的是它是基于非常深的ConvNets(22个权重层)和小卷积滤波器(除了3×3,它们也使用了1×1和5×5卷积)。

3.1 训练

网络训练的超参数设定:
  通过使用具有动量的小批量梯度下降(基于反向传播(LeCun等人,1989))优化多项式逻辑回归目标函数来进行训练。批量大小设为256,动量为0.9。训练通过权重衰减(L2惩罚乘子设定为5.10−45_.10{−4}5.10−4)进行正则化,前两个全连接层执行随机失活正则化(丢弃率设定为0.5)。学习率初始设定为10−210{−2}10−2,然后当验证集准确率停止改善时,减少10倍。学习率总共降低3次,学习在37万次迭代后停止(74个epochs)。

  批量大小设为256,动量为0.9(动量和权值调整有关)。正则化为L2正则化,系数为5*10-4,在前两个全连接层使用了dropout(参数为0.5),学习率初始值为10-2,之后逐渐减小,然后当验证集准确率停止改善时,减少10倍。学习率总共降低3次,学习在37万次迭代后停止(74个epochs),把所有数据集训练了74次,总计37万次

  网络权重的初始化是重要的,因为由于深度网络中梯度的不稳定,不好的初始化可能会阻碍学习。为了规避这个问题,我们开始训练配置A(表1),足够浅以随机初始化进行训练。然后,当训练更深的架构时,我们用网络A的层初始化前四个卷积层和最后三个全连接层(中间层被随机初始化)。我们没有减少预初始化层的学习率,允许他们在学习过程中改变。对于随机初始化(如果应用),我们从均值为0和方差为10−210^{−2}10−2的正态分布中采样权重。偏置初始化为零。值得注意的是,在提交论文之后,我们发现可以通过使用Glorot&Bengio(2010)的随机初始化程序来初始化权重而不进行预训练。

  ==先训练简单的A列浅层结构,网络参数是随机初始化的。当训练深层次网络时,使用的初始化参数是VGG-11训练出来的卷积层的参数,当做预训练的模型。之中,使用正态分布的随机初始化,均值为0,方差为10^-2,偏置值为0.最后发现其实也可以不进行预训练。 ==

  一篇讨论神经网络训练的论文。使用其初始化方式,即可不用进行预训练。
  设置S的第二种方法是多尺度训练,其中每个训练图像通过从一定范围[Smin,Smax]
  (我们使用Smin=256和Smax=512)随机采样S来单独进行归一化。由于图像中的目标可能具有不同的大小,因此在训练期间考虑到这一点是有益的。这也可以看作是通过尺度抖动进行训练集增强,其中单个模型被训练在一定尺度范围内识别对象。为了速度的原因,我们通过对具有相同配置的单尺度模型的所有层进行微调,训练了多尺度模型,并用固定的S=384进行预训练。

  采用不同分辨率图像,(分辨率区间为256-512)进行一个多尺度训练。目的是使模型能适应不同分辨率输入的图像。可能高低分辨率能学习到的特征有所区别

3.2 测试

  在测试时,给出训练的ConvNet和输入图像,它按以下方式分类。首先,将其等轴地归一化到预定义的最小图像边,表示为Q(我们也将其称为测试尺度)。我们注意到,Q不一定等于训练尺度S(正如我们在第4节中所示,每个S使用Q的几个值会导致性能改进)。然后,网络以类似于(Sermanet等人,2014)的方式密集地应用于归一化的测试图像上。即,全连接层首先被转换成卷积层(第一FC层转换到7×7卷积层,最后两个FC层转换到1×1卷积层)。然后将所得到的全卷积网络应用于整个(未裁剪)图像上。结果是类得分图的通道数等于类别的数量,以及取决于输入图像大小的可变空间分辨率。最后,为了获得图像的类别分数的固定大小的向量,类得分图在空间上平均(和池化)。我们还通过水平翻转图像来增强测试集;将原始图像和翻转图像的soft-max类后验进行平均,以获得图像的最终分数。
  由于全卷积网络被应用在整个图像上,所以不需要在测试时对采样多个裁剪图像(Krizhevsky等,2012),因为它需要网络重新计算每个裁剪图像,这样效率较低。同时,如Szegedy等人(2014)所做的那样,使用大量的裁剪图像可以提高准确度,因为与全卷积网络相比,它使输入图像的采样更精细。此外,由于不同的卷积边界条件,多裁剪图像评估是密集评估的补充:当将ConvNet应用于裁剪图像时,卷积特征图用零填充,而在密集评估的情况下,相同裁剪图像的填充自然会来自于图像的相邻部分(由于卷积和空间池化),这大大增加了整个网络的感受野,因此捕获了更多的上下文。虽然我们认为在实践中,多裁剪图像的计算时间增加并不足以证明准确性的潜在收益,但作为参考,我们还在每个尺度使用50个裁剪图像(5×5规则网格,2次翻转)评估了我们的网络,在3个尺度上总共150个裁剪图像,与Szegedy等人(2014)在4个尺度上使用的144个裁剪图像。

  最后几个全连接层大小,层数都是固定的,所以卷积之后提取出来的图像特征要固定为一个特定的尺寸,才能放入全连接层进行一个计算。所以进行了一个平均池化或求和池化。(因为进行了多尺度训练,所以最后的大小有可能会有不同)
例子:网络结构中输入2242243 最后进入全连接层为77512 。但若输入为448443,则最后输出应该为1414512的特征图。因为全连接层参数固定,所以没有办法进行计算。则需要用平均池化和求和池化的转化。将77 或1414 平均和求和最后都产生一个参数,最后512是固定的 ,所以最后都能使用全连接层



  top-1代表给一个结果俺怕你单是否正确,top-5为给5个选项,在其中正确即可。一般来说,层数越多,错误率越低。train列[256,512] 表示用例多尺度训练,256,384,表示固定尺度训练。多尺度训练使错误率偏低,表示是有效果的。384错误率小于256,表示分辨率提高,错误率也会降低。

4.2 多尺度评估

  在单尺度上评估ConvNet模型后,我们现在评估测试时尺度抖动的影响。它包括在一张测试图像的几个归一化版本上运行模型(对应于不同的Q值),然后对所得到的类别后验进行平均。考虑到训练和测试尺度之间的巨大差异会导致性能下降,用固定S训练的模型在三个测试图像尺度上进行了评估,接近于训练一次:Q=S−32,S,S+32。同时,训练时的尺度抖动允许网络在测试时应用于更广的尺度范围,所以用变量S∈[Smin;Smax]训练的模型在更大的尺寸范围Q = {S_{min}, 0.5(S_{min} + S_{max}), S_{max}上进行评估。

  test列,256,384,512表示测试的时候把图片变为三个尺度的大小输入测试,再把结果求平均值,平均值即为最后输出的结果。与上图进行对比,最后一行top-1和top-5军下降,代表效果变好。

  在深度学习中,只能通过实验不断测试,各种提出的想法有没有效果,是否正确。

4.3 多裁剪图像评估

  在表5中,我们将稠密ConvNet评估与多裁剪图像评估进行比较(细节参见第3.2节)。我们还通过平均其soft-max输出来评估两种评估技术的互补性。可以看出,使用多裁剪图像表现比密集评估略好,而且这两种方法确实是互补的,因为它们的组合优于其中的每一种。如上所述,我们假设这是由于卷积边界条件的不同处理。
表5:ConvNet评估技术比较。在所有的实验中训练尺度S从[256;512]采样,三个测试适度Q考虑:{256, 384, 512}。

  dense表示直接放入测试,不裁剪。小窗口裁剪为multi-crop
  例如有256256的大图片,随机裁剪很多224224区域的窗口,再放入模型中预测。测试时,把一张图片变为256,384,512三个尺度。在每个尺度使用50个随机裁剪图像(5×5规则网格,2次翻转)评估了我们的网络,在3个尺度上总共150个裁剪图像,进行测试。得到150个结果。在150个结果中,再求平均值,得到最后的结果。

4.4 卷积网络融合

  到目前为止,我们评估了ConvNet模型的性能。在这部分实验中,我们通过对soft-max类别后验进行平均,结合了几种模型的输出。由于模型的互补性,这提高了性能,并且在了2012年(Krizhevsky等,2012)和2013年(Zeiler&Fergus,2013;Sermanet等,2014)ILSVRC的顶级提交中使用。
  结果如表6所示。在ILSVRC提交的时候,我们只训练了单规模网络,以及一个多尺度模型D(仅在全连接层进行微调而不是所有层)。由此产生的7个网络组合具有7.3%的ILSVRC测试误差。在提交之后,我们考虑了只有两个表现最好的多尺度模型(配置D和E)的组合,它使用密集评估将测试误差降低到7.0%,使用密集评估和多裁剪图像评估将测试误差降低到6.8%。作为参考,我们表现最佳的单模型达到7.1%的误差(模型E,表5)。
表6:多个卷积网络融合结果

  进行了模型的集成,集成了7个模型。其中最后一行两个模型的集成可以得到最好的结果。

4.5 与最新技术比较

  最后,我们在表7中与最新技术比较我们的结果。在ILSVRC-2014挑战的分类任务(Russakovsky等,2014)中,我们的“VGG”团队获得了第二名,
  使用7个模型的组合取得了7.3%测试误差。提交后,我们使用2个模型的组合将错误率降低到6.8%。
  表7:在ILSVRC分类中与最新技术比较。我们的方法表示为“VGG”。报告的结果没有使用外部数据。
  从表7可以看出,我们非常深的ConvNets显著优于前一代模型,在ILSVRC-2012和ILSVRC-2013竞赛中取得了最好的结果。我们的结果对于分类任务获胜者(GoogLeNet具有6.7%的错误率)也具有竞争力,并且大大优于ILSVRC-2013获胜者Clarifai的提交,其使用外部训练数据取得了11.2%的错误率,没有外部数据则为11.7%。这是非常显著的,考虑到我们最好的结果是仅通过组合两个模型实现的——明显少于大多数ILSVRC提交。在单网络性能方面,我们的架构取得了最好节果(7.0%测试误差),超过单个GoogLeNet 0.9%。值得注意的是,我们并没有偏离LeCun(1989)等人经典的ConvNet架构,但通过大幅增加深度改善了它。

  GoogLeNet单哥模型未集成为7.9 ,集成7个模型未6.7。
  VGG 单个模型为第二行,集成两个位第一行

5 结论

  在这项工作中,我们评估了非常深的卷积网络(最多19个权重层)用于大规模图像分类。已经证明,表示深度有利于分类精度,并且深度大大增加的传统ConvNet架构(LeCun等,1989;Krizhevsky等,2012)可以实现ImageNet挑战数据集上的最佳性能。在附录中,我们还显示了我们的模型很好地泛化到各种各样的任务和数据集上,可以匹敌或超越更复杂的识别流程,其构建围绕不深的图像表示。我们的结果再次证实了深度在视觉表示中的重要性。

  最后结果实验表明,网络层数深度较多,最后实验结果性能也会相对较好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值