开发者社区> uncle_ll> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ)

简介: 作者从目前热门的top 100 优秀深度学习论文中选取一组论文为大家进行纯干货总结,该组包含8篇经典论文,主要讲解卷积神经网络CNN的经典结构以及针对不同任务进行的结构上的改进。由浅入深的讲解,适合入门了解卷积神经网络的整体网络结构及发展过程——向着更深、复杂度更低的方向发展。
+关注继续查看

首发地址:https://yq.aliyun.com/articles/74892

更多深度文章,请关注:https://yq.aliyun.com/cloud

作者信息

Adrian Colyermorning paper编辑、Accel Partners投资合伙人、SpringSource首席技术官、VMware技术总监。

领英:http://www.linkedin.com/in/adriancolyer/

Twitterhttps://twitter.com/adriancolyer


这篇文章介绍 top100深度学习论文列表中卷积神经网络的第二部分,Part的内容可以在此查看。本篇主要介绍以下几篇论文:

Return of the devil in the details: delving deep into convolutional nets,Chatfield,2014.
Spatial pyramid pooling in deep convolutional networks for visual recognition,He,2014.
Very deep convolutional networks for largescale image recognition,Simonyan

&Zisserman,2014.

Going deeper with convolutions,Szegedy,2015. 

回归细节魔鬼:深入卷积网络

篇论文是一个非常好的研究CNN已经在图像识别任务中打败了手工提取特征,但是由于所有这些不是基于相同条件下进行比较,所以很难分辨出真正占据差异的因素。Chatfield等人研究了IFV(改进的费舍尔向量)表示,三种基于CNN的不同深层表示,以及对目标数据集进行预训练和微调的深表征。对于所有的研究,使用相同的任务(PASCAL VOC分类)三种不同的CNN表示分别为基于Krizhevksy的架构CNN-FFast使用减小的步和较小的第1卷积层的感知野的CNN-MMedium以及基于OverFeat准确网络的CNN-SSlow)。
主要发现:

  • 增强将IFVCNN的性能提高了约3%翻转只能起到略微的作用,但翻转结合裁剪效果很好。IFVCNN受到颜色信息添加或减少影响将图像转换为灰度后重新训练CNN,会导致3%的性能下降。
  • 基于CNN的方法仍然优于浅编码等方法10%的性能
  • CNNMCNNS均优于CNNFast 23%的性能;CNNMCNNS25%
  • 再次训练CNN,最后一层较低的维数导致了边缘性能提升 
  • 微调导致结果有显著差异,提高约2.7%

论文提出了一种基于CNN的图像分类方法的严格的经验评估,以及与传统的浅层特征编码方法的比较。结果表明,数据增加可以显著提高浅表示的性能。尽管有了这样的改进,但深层次架构的性能仍然大大超过了浅层的方法。结果表明,ILSVRC数据集上的深层表现是其他数据集的性能一个很好的指标,另外使用深表示和线性SVM组合微调可以进一步提高实现的结果。 

基于空间金字塔池化的深卷积网络视觉识别
到目前为止CNN的架构一般为一系列的卷积层之后是全连接层以及Nsoftmax输出这种架构造成其只能处理固定大小的图像卷积层中使用的滑动窗实际上可以处理任何图像尺寸,只是由于全连接层具有固定尺寸的输入限制了尺寸,导致效果远远不理想。
空间金字塔池化(SPP)在卷积层和全连接层之间增加了一个新的层,新层的任务是将任何大小的输入映射到固定大小的输出。空间金字塔池化思想早已存在计算机视觉中,但并没有被应用于CNN

SPP通过将最后一层卷积层输出的特征图划分成尺寸与图像大小成正比的多个空间箱,因此无论图像大小如何,空间箱的数量都会固定。空间箱以不同的间隔尺寸被捕获在每个空间中,每个过滤器的响应使用最大池。 

373921e1bbdf53f9768307f8215ccca98f29d764

由于箱的数量已知,可以连接SPP输出以给出固定长度的表示(见上图) 

这允许任意的尺度输入当输入图像处于不同的尺度时,网络将提取不同尺度的特征
SPP层添加到四个不同网络模型中,包括AlexNetKrizhevsky等)和OverFeat后,都提高了它们的准确性。层次池化取得好的效果不仅仅是因为更多的参数,而是因为多层次对于物体变形和空间布局的变化是鲁棒的。"

SPP技术也可用于检测。之前最先进的RCNN方法需要从输入图像找到2000个候选窗口,并利用卷积网络提取每个窗口的特征,这种方法是昂贵而又缓慢的。SPP网络仅提取一次特征图(可能在多个尺度,即对每个候选窗口运行一次空间金字塔池化 

a267661f9b12c8c56dd0b95f737b00fe10a7be8d

基于很深的卷积网络大规模图像识别
之前了解了ConvNet的架构以及一些变化,探索了不同窗口大小和步以及多尺度的训练和测试的结果。在本论文中,SimonyanZisserman所有这些变量保持不变,探讨了网络深度对分类准确度的影响
基本设置固定大小的224 x 224 彩色输入图像,并且每个像素减去平均像素值(归一化卷积层使用具有3×3感知野的滤波器,并且配置一个1×1大小的卷积,固定为1像素五个最大池化层与卷积层交织进行空间池化;然后输入到三个全连接层最终的softmax隐藏层都使用ReLU激活函数
网络实际架构如下表所示(注意使用了一个局部响应归一化-LRN 

4d6b430af1a8703b51ee2c27554fc02a5d1cba8f

以下是作者的结果: 

c11f64dadac4686dca0d0ae7db9de5b81233546f

首先,局部响应归一化并没有提高准确性,反而增加了训练时间,所以在较深的体系架构中不被使用。其次,分类误差随着ConvNet深度的增加而减小
当深度达到19层时,模型的错误率达到饱和,但更深层的模型可能对较大的数据集有益。将表中网络B55×5卷积层的层网络进行了比较,结果表明3×3的卷积层代替单个5×5卷积层后准确率提升了7%,这证实具有小滤波器的深优于具有较大滤波器的浅层网络  

卷积更深入 

这是论文主要介绍Inception”网络架构的实例“GoogLeNet”网络,它在2014 ISLVRCImageNet)竞赛中取得最好的结果GoogLeNet网络的深度是22层,整体架构令人难以置信  

0cf4951466c4bf068dd03301d5fb7d8d110a6000

尽管看起来令人恐惧,GoogLeNet实际上比两年前获胜的KrizhevskyConvNet网络的参数要少12同时精度显著提升。高效功率和内存使用是Inception架构的设计目标:
本文提出的深层架构设计的考虑因素主要是基于效率这个因素,而不是针对准确度。对于大多数实验,这些模型的设计不纯粹的学术好奇心,而是可以应用于现实世界中,即使大数据集成本也是合理

你可以通过增加层数(深度)或者是每层的宽度使的网络更大”,原则上这将导致更高质量的模型。然而,更大的网络将导致更多的参数,使得它们容易过拟合为了避免这种情况,需要更多的训练数据以及更多的计算资源来训练

解决这个问题的一个方法是引入稀疏性Arora等人在用于学习一些深层次表示的可行范围中表明,如果数据集的概率分布由大的非常稀疏的深层神经网络表示,则可以通过分析前一层激活和高度相关输出的聚类神经元的相关统计来使用最佳网络技术每一层
不幸的是,当涉及非均匀稀疏数据架构的数值计算时,目前的计算硬件设备效率很低。
是否有希望利用稀疏性过滤器的架构,通过当前的硬件上使用密集矩阵上的计算?Inception架构开始是对这一目标的进行探索。
Inception架构的主要思想是考虑卷积视觉网络的最优局部稀疏架构如何被现成的密集组件近似和涵盖
假设使用层次架构的方法,只需找到最优层架构,然后对该架构进行堆叠即可。初始层的基本架构如下所示: 

a0f1fd53ffec8ab08d4261377b06d7cff8bc2ba2

1×1卷积检测局部区域中的相关单元,较大(3×35×5卷积检测更多的空间由于池化具有的效果,所以每个阶段加入池化
虽然这种架构可能会涵盖最优的稀疏架构,但它计算复杂度非常高、效率低
解决方案是在所有3×35×5路径上使用1×1卷积来降维。下图给出了一个Inception层的最终架构 

b9cbb6cf30ec036c127e8961c6c8fc866a2ff6e8

一般而言,Inception网络是由上述类型的模块组成,模块彼此堆叠,偶尔具有步长2的最大池化层将网格的分辨率减半。
GoogLeNet模型中这些层叠在一起深度为22层(如果池层也被计数,则为27总体模块数量约为100个!梯度通过这么多层传递将是一个挑战。由于较浅的网络仍然具有很强的辨别性能,因此向中间层添加辅助分类器(本节开头的整个网络图中的黄色框)。这些分类器较小的卷积网络放置在Inception4a)和(4d)模块的输出之上。在训练过程中,损失会根据权重叠加,测试时,这些辅助网络被丢弃。 

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《Convolutional neural networks, Part 2》,作者Adrian Colyer,译者:海棠,审阅:

附件为原文的pdf

文章为简译,更为详细的内容,请查看原文

翻译者: 海棠 

Wechat:269970760 

Email:duanzhch@tju.edu.cn

微信公众号:AI科技时讯

157f33dddfc596ede3681e0a2a0e7068dc288cc1

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
dart系列之:手写Library,Library编写最佳实践
dart系列之:手写Library,Library编写最佳实践
37 0
Skip Lists跳表及Java实现
Skip Lists 跳表 Java 实现
132 0
介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现
介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现
51 0
4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
原文:4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」 希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 管道实现机制 要了解管道的实现机制,我们必须要深入框架的源码,幸亏微软开源了,我们可以访问GitHub的地址来下载源码。
1053 0
4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
要了解管道的实现机制,我们必须要深入框架的源码,幸亏微软开源了,我们可以访问GitHub的地址来下载源码。
1527 0
【转载】谈谈我对Java中CallBack的理解
谈谈我对Java中CallBack的理解 转载自: http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html   CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。
889 0
Advanced Log Parser Charts Part 1 - Working With Configuration Scripts
http://blogs.msdn.com/b/carloc/archive/2008/08/07/charting-with-logparser.
871 0
+关注
73
文章
4
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载