本文研究了卷积网络深度对其大规模图像识别设置精度的影响。我们的主要贡献是使用非常小的(3×3)卷积滤波器的架构对深度增加的网络进行深入的彻底评估,这表明通过将深度推到16-19重量层,可以实现对现有技术配置的显著改进。

1  介绍

在本文中,我们讨论了ConvNet架构设计的另一个重要方面——它的深度。为此,我们修复了体系结构的其他参数,并通过增加更多的卷积层来稳步增加网络的深度,这由于在所有层中使用了非常小的(3×3)卷积滤波器是可行的。

2 卷积神经网络配置

2.1 体系结构

输入是一个固定大小的224×224RGB图像。

预处理是从每个像素减去训练集计算的平均值。

图像通过卷积层,使用3×3的过滤器。

在其中一种配置中,使用了1×1卷积滤波器,它可以看作是输入通道的线性变换。卷积步幅固定为1。

有五个最大池层,最大池在2×2像素窗口上执行,步幅为2。

卷积层之后是三个全连接(FC)层:前两个层分别有4096个通道,第三个执行1000路ILSVRC分类,因此包含1000个通道(每个类一个)。最后一层是软最大层。

除了最后一层全连接的分类层外,其他层都需要使用rectification non-linearity(RELU)。

2.2 配置

卷积层的宽度(通道的数量)从第一层的64开始,然后在每个最大池层之后增加2倍,直到达到512。

2.3 讨论

为什么使用三层3×3代替一层7×7

第一,三层比一层更具有判别性;

第二,假设同样的通道数C,那么三层3×3的参数数目为3×(3×3)C×C=27C×C,一层7×7参数数目为7×7×C×C=49C×C。大大减少了参数数目。

合并1×1卷积层是在不影响卷积层接受域的情况下增加决策函数非线性的一种方法。1×1卷积本质上是在同维空间上的线性投影,整流函数引入了一个额外的非线性。

3 分类框架

3.1 训练

batch size设置为256,动量设置为0.9。正则化系数是5×10e-4,前两层全连接的dropout参数设置为0.5,学习率最初设置为1e-2 ,然后当验证集精度停止提高时除以10,除三次为止。在370K迭代(74epochs)后停止学习。

网络需要更少的时间来收敛,由于:

(a)更大的深度和更小的体积,网络需要更少的隐式正则化和卷积过滤器尺寸;

(b)某些图层的预初始化。

因为由于深度网中梯度的不稳定,糟糕的初始化可能会阻碍学习。为了规避这个问题,我们开始训练配置A,它足够浅,可以用随机初始化进行训练。然后,当训练更深层次的结构时,我们初始化了前四个卷积层和最后三层的完全连接层(中间层被随机初始化)。我们没有降低预初始化层的学习率,允许它们在学习过程中发生改变。对于随机初始化,我们从一个均值为零和10e-2 方差的正态分布中采样权重。这些偏差的初始化值为零。值得注意的是,在提交论文后,我们发现通过使用Glorot和Bengio(2010)的随机初始化程序,可以在没有预先训练的情况下初始化权重。

为了获得固定大小的224×224ConvNet输入图像,将它们从重新调整的训练图像中随机裁剪(每SGD迭代每个图像裁剪一次)。为了进一步增加训练集,进行了随机水平翻转和随机RGB色移。

训练图像的大小。设S是等轴性重新校准的训练图像的最小边(意义就是在做原始图片上的缩放时的短边长度),从其中裁剪Convnet输入(也将S称为训练尺度)。当裁剪尺寸固定在224×224时,原则上S可以获取任何不小于224的值;对于S=224,将捕获全图像统计,完全跨越训练图像的最小侧;对于S≫224,将对应于图像的一小部分,包含小对象或对象部分。

考虑两种设置训练尺度S的方法:

第一种是固定参数S,对应于单尺度的训练。在我们的实验中,我们评估了在两个固定尺度上训练的模型:S=256和S=384。给定一个ConvNet配置,我们首先使用S=256训练该网络。为了加速S=384网络的训练,它用S=256预训练的权重初始化,我们使用了较小的初始学习率10e-3。

第二种设置S的方法是多尺度训练,其中每个训练图像通过随机的S[Smin,Smax]被重新调整(本文Smin=256,Smax=512)。出于速度的原因,通过微调具有相同配置的单尺度模型的所有层来训练多尺度模型,用固定的S=384预先训练。

3.2 测试

在测试时,给定训练好的ConvNet和输入图像,将按如下方式进行分类。

首先,它被等轴性地重新调整到一个预定义的最小的图像边,表示为Q。Q不一定等于训练规模S。

然后,以类似的方式对重新调整的测试图像进行测试。即,全连接层首先转换为卷积层(第一全连接层转换为7×7卷积层,最后两个全连接层转换为1×1的卷积层)。

然后将得到的全卷积网应用于整个(未裁剪的)图像。其结果是一个通道数等于类数的类分数图,以及一个可变的空间分辨率,取决于输入的图像大小。

最后,为了获得图像的一个固定大小的类分数向量,类分数图是空间平均的。我们还通过水平翻转图像来增强测试集;对原始图像和翻转图像的软最大类后验进行平均,以获得图像的最终分数。

由于全卷积网络应用于整个图像,因此不需要在测试时采样多种裁剪,其效率较低,因为它需要对每种crops进行网络重新计算。与此同时,如Szegedy等人所使用的大量crops可以提高精度,因为它可以使输入图像比全卷积网络采样更好。此外,由于不同的卷积边界条件,多crops评估是对密集评估的补充:当将ConvNet应用于crops时,卷积特征图填充为零,而在密集评估的情况下,同一crop的填充自然来自图像的邻近部分(由于卷积和空间池),这大大增加了整个网络接受域,因此捕获了更多的上下文。虽然我们相信,在实践中增加多种crops的计算时间并不能证明准确性的潜在收益,作为参考,我们还评估网络使用每尺度50种crops(5×5常规网格和2翻转)

4 分类实验

数据集:数据集包括1000类图像,分为三组:训练、验证和测试。

4.1 单个规模评价

测试图像大小设置如下:对于固定的S:Q=S,对于变化的S:Q=0.5(Smin+Smax)。

首先,使用局部响应标准化(A-LRN网络)在没有任何标准化层的模型A上并没有改进。因此,我们不在更深层次的体系结构中使用标准化(B-E)。

其次,我们观察到分类误差随着ConvNet深度的增加而减少:从A的11层增加到19层。尽管深度相同,配置C(包含3个1×1卷积层),其性能低于使用3×3卷积层的配置D。这表明,虽然额外的非线性确实有帮助(C比B好),但通过使用卷积滤波器来捕捉空间上下文也很重要。具有非平凡接受域的过滤器(D优于C)。当深度达到19层时,我们的架构的错误率会饱和,但更深的模型可能对更大的数据集有益。我们还比较了网B与一个有5×5卷积层的浅网,通过用一个单个的5×5的卷积层替换每对3×3卷积层。据测量,浅网的top-1误差比B高出7%,这证实了具有较小滤波器的深度网比具有较大滤波器的浅网更好

最后,在训练时进行尺度变化(S∈[256;512])比对固定最小边的图像进行训练的效果明显更好(S=256或S=384),即使在测试时使用单个尺度。这证实了通过尺度变化增强训练集有助于捕获多尺度图像统计数据。

4.2 多尺度评估

评估在测试时尺度抖动的影响。在测试图像的几个重新标定版本(对应于不同的Q值)上运行模型,然后对得到的类后验进行平均值。考虑到训练和测试尺度之间的大差异导致性能下降,使用固定S训练的模型通过三种测试图像大小进行评估,接近训练尺寸:Q={S-32,S,S+32}。与此同时,训练时的尺度抖动允许网络在测试时应用于更广泛的尺度,因此,使用变量S∈[Smin;Smax]训练的模型在更大范围的尺寸Q={Smin,0.5(Smin+Smax),Smax}内进行了评估。

4.3 MULTI-CROP EVALUATION

比较了密集的Convnet评估和multi-crop评估。通过平均两种评估技术的软大输出来评估它们的互补性。

使用multi-crop的性能略好于密集评估,而且这两种方法确实是互补的,因为它们的组合优于每一种方法。如上所述,我们假设这是由于对卷积边界条件的不同处理。

4.4 网络融合

通过平均几种模型的软最大类后验来结合这些模型的输出。

试验结果见表6。到ILSVRC提交文件时,我们只训练了单尺度的网络,以及一个多尺度的模型D(通过微调只有完全连接的层,而不是所有的层)。

提交后,我们只考虑了两个性能最好的多尺度模型(配置D和E),使用密集评估将测试误差降低到7.0%,使用密集和多裁剪组合评估将测试误差降低到6.8%。作为参考,我们性能最好的单个模型达到了7.1%的误差(模型E)。

5 结论

在这项工作中,我们评估了非常深的卷积网络(高达19个权重层)的大规模图像分类。结果表明,表示深度有利于分类精度,并且使用传统的Convnet体系结构可以在ImageNet挑战数据集上实现最先进的性能,深度大幅增加。在附录中,我们还表明,我们的模型可以很好地推广到广泛的任务和数据集,匹配或优于基于较少深层图像表示构建的更复杂的识别管道。我们的结果再次证实了深度在视觉表示中的重要性。

(VGG)VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION相关推荐

  1. 卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释

    卷积神经网络CNN(3)-- FCN(Fully Convolutional Networks)要点解释

  2. 【论文阅读及复现】(2017)Densely Connected Convolutional Networks + Pytorch代码实现

    文章目录 一.摘要 二.Dense Net 网络结构 三.Dense Block 四.PyTorch-GPU代码实现 论文来源:(2017)Densely Connected Convolutiona ...

  3. 《Very Deep Convolutional Networks For Large-Scale Image Recognition》翻译

    1 引言 2 ConvNet配置 2.1 架构 2.2 配置 2.3 讨论 3 分类框架 3.1 训练 3.2 测试 3.3 实现细节 4 分类实验 4.1 单尺度评估 4.2 多尺度评估 4.3 多 ...

  4. 【论文翻译】VGG网络论文中英对照翻译--(very deep convolutional networks for large-scale image  recognition)

    [开始时间]2018.09.23 [完成时间]2018.09.24 [论文翻译]VGG网络论文中英对照翻译--(very deep convolutional networks for large-s ...

  5. 论文笔记:Very deep convolutional networks for large-scale image recognition(VGG)

    一.基本信息 标题:Very deep convolutional networks for large-scale image recognition 时间:2014 出版源:arXiv 论文领域: ...

  6. 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》

    深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...

  7. 【图像超分辨率】(VDSR)Accurate Image Super-Resolution Using Very Deep Convolutional Networks

    Accurate Image Super-Resolution Using Very Deep Convolutional Networks 摘要 介绍 2 相关工作 2.1 图像超分辨率的卷积神经网 ...

  8. 深度学习论文随记(二)---VGGNet模型解读-2014年(Very Deep Convolutional Networks for Large-Scale Image Recognition)

    深度学习论文随记(二)---VGGNet模型解读 Very Deep Convolutional Networks forLarge-Scale Image Recognition Author: K ...

  9. VGG - Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition ICLR 2015 (oral) http://www.robot ...

最新文章

  1. 图像分割之(二)Graph Cut(图割)
  2. cassandra百亿级数据库迁移实践
  3. BigData之matplotlib:爬虫2018年福布斯中国富豪榜进行数据统计分析,大数据告诉你一些不可思议的事情
  4. ustc小道消息20211223
  5. centos 下载 哪个版本_生信分析平台搭建(十六):CentOS
  6. Oracle之AUTHID CURRENT_USER
  7. set / ... 去重的方法
  8. SAP ABAP实用技巧介绍系列之使用代码获得user的SAP lock信息
  9. TensorFlow:实战Google深度学习框架(二)实现简单神经网络
  10. Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园
  11. JAVA判断数组最大值
  12. freeswitch 一些坑
  13. Joda-Time简单使用
  14. SpringCloud学习笔记:熔断器Hystrix(5)
  15. 我的Android进阶之旅------android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
  16. 利用python批量查询企业信息_python批量查询百度收录
  17. 2013年,移动互联网行业技术趋势前瞻
  18. 本地计算机的ics无法启动不了,ics启动失败怎么办 win8_ICS服务无法启动(win8.1)...
  19. 爱了,阿里P9开源分享内部Java核心开发手册覆盖P5到P8
  20. ★【树状数组】【NOI2008】糖果雨

热门文章

  1. 齐博 src=/do/js.php?id=775,齐博CMS列表页,内容页的边栏,用不同的模板显示的方法...
  2. whale 帷幄营销管理软件 营销软件哪家好用
  3. 修复好一个科脉软件-科脉御商软件数据库损坏问题
  4. pytorch.tensor常见操作
  5. React Native双平台完美阴影效果
  6. web app 框架
  7. LIGGGHTS中实现颗粒生成的粒径分布
  8. PANS:视觉暴露增强了初级视皮层的刺激编码和保持
  9. Science DB | 如何科学地存储海量数据?
  10. jsPlumb插件的使用