基于卷积神经网络的图像分类(经典网络)

作者:Karen Simonyan & Andrew Zisserman(两位大神)

单位:牛津大学 (Visual Geometry Group)

发表会议时间:arXiv 2015

arXiv是一个网站,可以预先把idea发布到上面,这样可以防止paper发表之前,自己的idea被别人使用)

ImageNet Large-ScaleVisual Recognition Challenge (ILSVRC):ImageNet大规模视觉识别挑战

摘要

1.主要贡献是通过非常小的3x3卷积核的神经网络架构全面评估了增加深度对网络的影响,结果表明16-19层的网络可以使现有设置的网络性能得到显著提高。

2.这项发现是我们在2014年的ImageNet比赛中提交方案的基础,我们的团队分别在定位和分类中获得了第一和第二的成绩。我们还证明了此模型可以泛化到其他数据集上,并达到当前最佳水平。

3.目前,工业使用最多的是VGG16和VGG19,效果确实不错。

介绍

1.卷积神经网络,最近在大规模图片和视频识别中取得了重大成功,这可能得益于大型开源图片库,比如ImageNet,以及高性能计算系统,如GPU或大规模分布式集群。

2.在第一个卷积层中使用较小的接受域窗口以及较小的步长,另一种改进方案是在整幅图片及多个尺寸上多次训练和测试网络。

3.在本文中,我们着眼于卷积神经网络中的另一个方面——深度。

4.本文组织结构如下:

第二部分,描述了卷积神经网络的设置。

第三部分:阐述图片分类的训练及评估细节。

第四部分:阐述在ILSVRC分类任务中不同设置的比较在。

第五部分,总结本文内容。

卷积神经网络的设置

为了公平衡量增加卷积深度对网络的影响,我们所有卷积层的设置均使用与Ciresan(2011)和Krizhevsky(2012)相同的设计原则。在这一部分,我们首先描述了卷积神经网络的通用结构,然后详细介绍了评估中具体配置细节。最后描述了我们的模型与先前最好网络的比较。(其实是在AlexNet基础上做了大量尝试和改进)

2.1 架构

1.在整个训练中,卷积神经网络的输入为固定的224x224的RGB图片。唯一的预处理是对每个像素减去ImageNet训练集中RGB的平均值。图片通过一系列3x3卷积核(是用来获取上下左右及中心的最小尺寸)的卷积层。

2.卷积滑动步长固定为1;卷积层的空间填充(padding)模式为保留原空间分辨率(也就是Same),例如3x3的卷积层,padding为1。

3.空间池化(pooling)包含5个最大池化层,接在部分卷积层后面(不是所有卷积层)。

4.最大池化层使用2x2的窗口,滑动步长为2。

5.在一系列卷积层(不同架构有不同深度)后为3个全连接层(Fully-Connected):前两个每个含有4096个通道,第三个用来给ILSVRC进行分类,因此有1000个通道(1000个类)。

6.最后一层使用softmax。全连接层的设置与所有网络一致。

7.所有隐藏层都使用ReLU非线性激活函数。

注意:我们的网络都不包含局部响应标准化(LRN):在第四部分 中会展示,这个标准化并不会提高网络在ILSVRC数据集上的性能,反而会增加内存消耗和计算时间。

2.2 设置

本文所评估的卷积神经网络的设置在表1列出,每列一个。接下来我们称他们为(A-E)。

所有配置都遵循2.1所述的通用设计,只有深度不同:

从网络A的11层(8个卷积层3个全连接层)到网络E的19层(16个卷积层3个全连接层)卷积层的宽度(通道数)非常小,从第一层的64开始,每个最大池化层后增加1倍,直到512。

表1:网络设置(按列显示)。网络的深度从A到E依次增加,增加的层用加粗显示。卷积层的参数用“conv<接受域大小>-<通道数>”来表示,为了简洁,Relu激活函数没有显示。

表2给出了每个设置的参数数目。尽管网络很深,但是网络的权重数目并没有一个更浅,但是卷积层更宽和接受域更大的网络权重数目大(sermanet et al., 2014有144M的权重)。

表2:参数数量(百万)

2.3 讨论

1.本文网络的设置与 ILSVRC-2012 和 ILSVRC-2013 大赛中的前几名完全不同。没有在第一个卷积层使用大的接受域(如11x11的卷积核,滑动步长为4(Krizhevsky et al. 2012),或者 7x7的卷积核,滑动步长为2(Zeiler&Fergus,2013;Sermanet et al. 2014),我们在整个网络使用3x3的卷积核,与每个像素值进行卷积(步长为1)。

2.很明显,两个3x3卷积层(中间没有池化层)相当于5x5的接受域;三个这样的层相当于7x7的接受域。

3.那么,用三个3x3的卷积层代替一个7x7的卷积层有什么好处呢? 答:首先,我们包含三个非线性修正层而非单一层,这使决策函数更具有区分性。其次,我们减少了参数数量:假设一个含有三层 3x3卷积层 堆叠的输入和输出 都包含C个通道的网络,权重数量为3*(C*3*3*C)=27C*C; 而一个7x7的卷积层,需要C*7*7*C=49C*C个权重参数,相对增加了81%,这相当于在7x7的滤波器上加了一个正则化,迫使它们通过3x3的滤波器进行分解(中间有非线性的加入)。

4.1x1卷积层的加入(表1中的C)是一种为决策增加非线性因素的方式,不影响卷积层接受域。

5.Goodfellow等人(2014)在识别街景数字的任务中使用了深度卷积神经网络(11层),展示了增加深度带来的优越性能。

6.GoogLeNet(2014),在ILSVRC-2014的识别任务中获得了最佳表现,虽然与我们的网络不同,但是相似的是都基于很深的卷积网络(22层)以及 很小的卷积滤波器(除了3x3,他们还使用了 1x1 和 5x5 的滤波器)。

7.GoogLeNet他们的网络拓扑比我们的更复杂,而且为了减少计算量,特征图的空间分辨率在第一层衰减的很严重。在第4.5部分将展示我们的模型在单一网络分类中准确率优于GoogLeNet。

3 分类框架

前面的部分我们介绍了网络设置的细节。这一部分,我们将详细描述分类卷积神经网络的训练与评估。

3.1 训练

1.通过用包含动量的小批量梯度下降(基于反向传播)做多项式逻辑回归的优化器来对模型进行训练。

2.批次大小为256,动量为0.9,通过权值衰减(L2惩罚因子设置为5*10-4)和对前两个全连接层进行dropout(比率0.5)实现正则化。

3.学习率初始化为0.01,当验证集准确率不提升时,以10倍速率衰减(除以10)。总的来说,学习率会衰减3次,然后训练次数为370K(74代)。

4.我们猜想,尽管与Krizhevsky(2012)等人的网络相比,我们的网络参数更多,深度更深,但是却需要更少的epoch次数来收敛,因为:(1)深度及更小的滤波器数量隐式增强了正则化;(2)某些层执行了预初始化。

5.网络权重的初始化很重要,由于深度网络梯度下降的不稳定性,不好的初始化会阻碍学习。为了规避这个问题,我们从训练网络A(表1)开始,它足够浅,能用随机初始化。

6.当训练更深网络结构时,我们用网络A的权重初始化前四个卷积层和后三个全连接层(中间层随机)。对预初始化层,不降低学习率,允许他们在学习过程中改变。对于随机初始化,我们从0均值和0.01方差的正态分布中取值。偏差初始化为0。

7.值得注意的是,我们发现可以用 Glorot&Bengio(2010) 中的随机初始化程序来对 权重进行初始化,而不需要进行预训练。

8.为了得到固定的224x224的RGB输入图片,我们随机从经过尺寸缩放的训练集图片中进行裁剪(每张图的每次SGD迭代时裁剪一次)。

9.为了进一步对训练集数据进行增强,被裁剪图片将进行随机水平翻转及RGB颜色转换。

10.训练集图片尺寸 我们考虑使用两种方式来设置训练尺寸S。第一种是固定S,针对单尺寸图片的训练。第二种设置S的方式是使用多尺寸图像训练,即每个训练图片的尺寸是[Smin,Smax]之间的随机数(这里使用Smin=256,Smax=512)。由于图像中的对象可能大小不一,所以训练中采用这种方式是有利的。

3.2 测试

1.在测试时,给定一个训练后的卷积神经网络及一张输入图片,用以下方式进行分类。首先,各向同性缩放成预定义的最小边,设为Q(也称为测试尺寸,注意Q不需要等于训练尺寸S(将在第4部分解释),每个S使用多个Q可以提高性能)。

2.根据Sermanet的方法将网络密集应用在测试图片上,也就是说,全连接层先转化为卷积层(第一个全连接层转为7x7的卷积层,后两个转化为1x1的卷积层)。

3.再将这样得到的全卷积网络运用在整幅图像上(未裁切的)。输出是一个分类得分图,通道数与类别数先沟通呢个,空间分辨率依赖于输入图片的尺寸。最后,为了得到固定尺寸的分类得分向量,将分类得分图进行空间平均化(求和——池化)。

4.我们同样使用水平翻转对测试图像进行增强;在原始图像和翻转图像上的soft-max分类概率的平均值作为这幅图像的最终得分。

5.尽管我们认为在实践中多尺寸裁切图像增加的计算时间并不能证明其具有更高准确率的潜质,但是为了参考,我们依然在评估时对每个尺寸使用了50 张裁切图像(5×5个规则网格以及水平翻转),3种尺寸一共150张裁切图像,这和Szegedy等人的网络中使用4种尺寸一共144张裁切图像是可比的。

3.3 实现细节

1.我们的实现使用开源的C++ Caffe工具箱(Jia,2013)(2013年12月的分支),但是进行了一些重新修改,允许我们用同一个系统的多个GPU训练和评估模型,以及对全尺寸(未裁剪)图片的多种缩放(上文提到的)进行训练评估。

2.最近提出了更复杂的加速卷积网络训练的方法(Krizhevsky2014),它在网络不同层上用模型和数据并行计算,但是我们发现我们的方法更简单,且在4个GPU系统上的速度相对于单GPU提升了3.75倍,在NVIDIA Titan Black GPU上,训练单个网络需要2~3周的时间。

4 分类实验

1.数据集包含1000个类别,被分为三部分:训练集(1.3M张图片),验证集(50K张图片),测试集(100K张图片,没有标签)。分类性能使用两个办法评估:top-1和top-5 error。前者是一个多类分类错误率,即错误分类图像的比例;后者是在ILSVRC上的主要评估标准,即真实类别不在top-5预测类别之中的图像的比例。

4.1 单一尺寸测试数据评估

1.我们从评估在单一尺度上使用第2.2中配置的独立卷积网络模型的性能开始。

2.测试集图片大小如下设置:对于固定的S,Q=S,对于变动的S∈[Smin, Smax>],Q=0.5(Smin + Smax>)。结果如表3中。

表3 单一尺寸上的卷积网络性能

3.首先,注意使用局部相应标准化网络(A-LRN)的性能并没有比未用标准化层的A高。因此我们没有在更深的网络结构上使用标准化操作(B-E)。

4.其次,我们发现分类的错误率随着卷积层的增加而减少:从11层的A到19层的E。

5.注意,尽管深度相同,配置C(包含3个1x1卷积层)没有配置D(使用3x3卷积层)性能好,这意味着添加非线性层的确有用(C比B好),但是使用卷积获取空间上下文信息更有用(D比C好)。

6.当深度达到19层时,错误率达到饱和,但是更大的数据集使用更深的模型会更好。我们也用网络B与一个5x5的浅卷积网络(派生自B,但是将3x3卷积层换成了一个5x5卷积层,与2.3种所述接受域相同)进行了比较,浅层网络的top-1错误率比B(在中心裁剪图像上)高了7%,证明了小滤波器的卷积网络比大滤波器的浅层网络性能更好。

7.最后,训练时尺寸变化(S ∈ [256;512]) 的性能比固定最小边(S = 256 or S = 384)的性能要好,尽管测试时使用的是单一尺寸。这证明训练集通过变化尺寸来进行数据增强的确能获取更多尺寸的图片统计信息。

4.2 多尺寸测试数据评估

评估了卷积网络模型在单一尺度上的性能之后,我们现在来评估在测试阶段使用尺寸抖动的效果。

1.先在多个尺寸的测试数据上运行模型(多个Q值),然后计算每个类概率的平均值。考虑到训练尺寸与测试尺寸的差异太大会导致性能下降,模型使用固定的S训练,通过3个接近训练集的测试集尺寸评估,:Q={S-32, S, S+32}。

2.同时,训练时的尺寸波动使测试时能使用更大范围尺寸的图像,所以,使用S ∈ [Smin;Smax]训练的模型用更大范围的Q来评估,Q={Smin, 0.5(Smin, Smax), Smax}。

3.结果如表4,表明在测试时图片尺寸波动会使性能更好(对比表3中单一尺寸的结果)。

表4 多尺寸测试集上的卷积网络表现

4.3 多裁剪评估

1.。可以看出,使用多重裁切比密集评估的效果略好,并且两种方法是完全互补的,因为两者组合的效果比每一种都要好。

表5 卷积网络评估技术比较。所有实验中,S来源于[256,512],三个测试尺寸Q为{256, 384, 512}

4.4 卷积网络融合

到目前为止,我们评估了独立卷积网络模型的性能。这一部分的实验,我们将通过计算多个模型soft-max分类概率的平均值来对它们的输出进行组合。由于模型的互补性,性能得到了改善,这也用在2012 (Krizhevsky et al., 2012) 和2013(Zeiler & Fergus, 2013; Sermanet et al., 2014)的ILSVRC的最佳结果中。

结果如表6

1.在ILSVRC比赛中我们进训练了单一尺寸网络和多尺寸网络D(仅仅微调了全连接层而非所有层),也就是VGG16。

2.7个模型组合结果在ILSVRC中测试的错误率为7.3%。提交后,我们考虑禁用两个最好表现的多尺寸模型(D和E)进行组合,使用密集评估时,错误率减少到7.0%,使用密集和多裁剪评估时错误率为6.8%。作为参考,我们的最佳单一模型错误率为7.1%(E,表5)。

表6 多卷积网络融合结果

4.5 与业界最好结果的比较

最后,我们在表7与业界最好结果进行了比较。

在2014年的ILSVRC比赛的分类任务中,我们的VGG团队取得了第二名的成绩,使用了7个模型组合的测试错误率,为7.3%,提交后,使用2个模型的组合,将错误率降低到了6.8%。

更标志性的是,我们最佳的结果是通过对两个模型的组合——这明显比大多数ILSVRC参赛模型要少。在单一网络性能上,我们的模型取得了最好的结果(7.0%的测试错误率),比单一的GoogLeNet低0.9%。值得注意的是,我们并没有摒弃经典的卷积网络框架,并通过显著增加深度对它的性能进行了提升。

表7 与ILSVRC分类任务中的最佳结果比较。我们的方法叫VGG,只显示了未使用外部训练数据的结果

5 结论

本文评估了深度卷积网络(到19层)在大规模图片分类中的应用。结果表明,深度有益于提高分类的正确率,通过在传统的卷积网络框架中使用更深的层能够在ImageNet数据集上取得优异的结果。附录中,展示了我们的模型可以很好的泛化到更多数据集种,性能达到甚至超过了围绕较浅深度的图像表达建立的更复杂的识别流程。

我们的实验结果再次确认了深度在视觉表达中的重要性。


程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。

论文笔记 - 《Very Deep Convolutional Networks For Large-Scale Image Recognition》 精典相关推荐

  1. 论文《ImageNet Classification with Deep Convolutional Neural Networks》阅读及AlexNet的Tensorflow2复现

    论文<ImageNet Classification with Deep Convolutional Neural Networks>阅读及AlexNet的Tensorflow2复现 论文 ...

  2. 《每日论文》ImageNet Classification with Deep Convolutional Neural Networks

    这篇论文是剖析 CNN 领域的经典之作,也是入门 CNN 的必读论文.作者训练了一个面向数量为 1.2 百万的高分辨率的图像数据集 ImageNet, 图像的种类为 1000 种的深度卷积神经网络. ...

  3. #论文 《ImageNet Classification with Deep Convolutional Neural Networks》

    这个Alex是第一作者,NN名字叫AlexNet,Hinton是第三作者.是第一个提出CNN的,还有dropout等方法. 1 Intro CNN与之前的标准前馈神经网络对比:连接和参数更少,因此更容 ...

  4. 经典DL论文研读(part4)--ImageNet Classification with Deep Convolutional Neural Networks

    学习笔记,仅供参考,有错必纠 文章目录 ImageNet Classification with Deep Convolutional Neural Networks 摘要 Introduction ...

  5. AlexNet论文翻译(中英文对照版)-ImageNet Classification with Deep Convolutional Neural Networks

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[AlexNet纯中文版] ImageNet Classification with De ...

  6. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  7. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  8. 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (1/3)

    文章目录 Authors and Publishment Authors Bibtex Abstract 1. Introduction 2. The Dataset Authors and Publ ...

  9. 《ImageNet Classification with Deep Convolutional Neural Networks》翻译

    1 引言 2 数据集 3 架构 3.1 ReLU 非线性 3.2 训练多个GPU 3.3 局部响应归一化 3.4 重叠池化 3.5 整体架构 4 减少过拟合 4.1 数据增强 4.2 Dropout ...

  10. 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (2/3)

    文章目录 3. The Architecture 3.1. ReLU Nonlinearity 3.2. Training on Multiple GPUs 3.3. Local Response N ...

最新文章

  1. 镜像save保存和镜像重命名tag
  2. 走进SQL Server 2005:备份与恢复功能
  3. 数据库:SQL Server与MySQL
  4. mac mysql 5.7.9安装教程_mac系统OS X10.10版本安装最新5.7.9mysql的方法_MySQL
  5. python爬虫小说代码示例-使用简单Python爬虫获取一个干净整洁的小说文件
  6. HPC China2016全国高性能计算学术年会即将举行
  7. 【算法学习笔记】堆排序和归并排序、其他几种排序的代码实现、比较和应用(习题)
  8. mysql privileges_[转]mysql privileges
  9. [渝粤教育] 中国地质大学 电力系统保护原理 复习题 (2)
  10. 创建寄宿在Windows服务中的WCF服务
  11. POJ 1151 线段树+扫描线
  12. zynq文档学习之向GPIO引脚写数据
  13. VSCode使用记录四:Ubuntu终端启动报错以及Ubuntu查看修改文件夹权限
  14. FlashFXP官方U盘绿色版
  15. windows10下部署环境并运行Siammask中的demo全过程记录
  16. [ 代码管理 ] GIT + 码云+ idea 实现代码云端分布式同步管理
  17. js笔试面试题(随意)
  18. mysql多表查询详解
  19. Keil MDK 选中相同变量 高亮突出显示
  20. Objective-C 编程语言官网文档(一)-简介

热门文章

  1. 红橙Darren视频笔记 OKHttp基本使用 对http框架进行封装 链式调用
  2. 韩顺平php视频笔记48 函数进阶
  3. dataframe格式的数据处理
  4. LaTeX设置参考文献条目行距以及条目内行距的方法
  5. lan交换和无线教师手册_无线AP组网方式有多种,办公楼的无线覆盖系统的组网方式有哪些?...
  6. 【SpringBoot基础知识】如何在springboot中使用多线程
  7. Spark SQL连接数据库找不到Mysql驱动解决方法
  8. 小程序分包---组件化开发框架wepyjs的分包
  9. api token 什么意思_还分不清 Cookie、Session、Token、JWT?
  10. java 删除list_Java中如何优雅地删除List中的元素