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

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

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

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

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

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

以下是作者的结果: 

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

卷积更深入 

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

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

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

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

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

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

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

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

附件为原文的pdf

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

你可能感兴趣的:(Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ))