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

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

作者信息

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

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

Twitter:https://twitter.com/adriancolyer

本文介绍清单“ Top100深度学习论文” 中几篇文章,现在将从“卷积神经网络模型”部分开始研究相关论文,PartⅡ内容见下篇博客。首先是:

ImageNet classification with deep convolutional neural networks,Krizhevsky,2012

Maxout networks,Goodfellow,2013

Network in network,Lin,2013

OverFeat:Integration recognition,localization and detection using convolutional neural networks,Sermanent,2013

在深入研究上述论文前,建议可以阅读Ujjwal Karn的优秀博客An intuitive explanation of convolutional neural networks ,该博客为卷积网络如何工作提供了一个很好的背景。言归正传,下面一起深入到卷积神经网络的世界中吧。

使用深层卷积神经网络进行ImageNet分类

这篇有影响力的论文可谓是再次掀起了深度学习的热潮,正是Hinton等研究员的坚守使得神经网络焕发出第二春。该篇文章使用深层卷积神经网络来开展整个工作流程并用于图像处理,两个因素使之成功:首先,提供足够大的数据集(具体来说,引入了数百万张图像的ImageNet,而以前最大的数据集只有“数万”;其次,开发出足够强大的GPU有效地训练大型网络。

什么使得CNN适合处理图像数据?

可以通过改变卷积核的尺寸和特征图数来控制其性能,并且还能对图像的性质做出大体上正确的估计。与具有相似大小层次的标准前馈神经网络相比,CNN具有更少的连接和参数,因此它们更容易训练。

Krizhevsky等人构建的网络有8层——5个卷积层和3个全连接层。最后一层的输出是1000维的softmax,它产生1000个类标签上的分布。另外由于网络太大而不能容纳在单个GPU的内存中,所以使用两个GPU进行训练。

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

作者列出了他们认为特别重要的四个模型架构:

1. 使用ReLU激活函数(而不是tanh)。“ 使用ReLU的深层卷积神经网络的训练速度比使用tanh的网络快几倍,更快的学习对大型数据集训练的大型模型的性能有很大的影响 ”

2. 使用多个GPU,并且只在某些层中进行跨GPU通信。该方案与仅在一个GPU上训练的网络相比,分别将top-1和top-5错误率降低了1.7%和1.2%。

3. 使用局部响应标准化,其“ 由真实神经元中发现的类型启发实现的侧向抑制形式,为使用不同内核计算的神经元输出之间的活动创造竞争”。

4. 使用有重叠的池化,假设池化层的大小为zxz,间隔之间像素分开,传统的池化之间没有重叠,作者使用有重叠的池化后将top-1和top-5错误率分别降低了0.4%和0.3%。

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

在训练期间使用Dropout和数据增加(平移,反转等操作)降低过拟合。

最终结果:

在ILSVRC2010上,论文网络实现了top-1和top-5测试的错误率分别为37.5%和17.0%;在ILSVRC2012中,网络实现了top-5测试错误率为15.3%,而第二名才为26.2%,这个巨大的差距拉开了深度学习革命的帷幕。

研究结果表明,一个大而深的卷积神经网络能够在使用纯监督学习的高度挑战的数据集上取得创纪录的成果。值得注意的是,改变网络结构,网络性能可能会降低。更深入地了解本文可以参阅该博客。

Maxout网络

Maxout网络是与Dropout配套使用的,训练使用Dropout就像训练指数数量的模型并共享相同的参数。Maxout网络是标准的多层感知器或深层CNN,它们使用称为Maxout单元的特殊激活函数,Maxout单元的输出是其输入的最大值。

在卷积网络中,可以通过在k个仿射特征图上获取最大值来构建最大特征图。当训练使用Dropout时,在乘以权重之前不会将丢失的输入进行最大操作。

Maxout能对任意凸函数进行分段线性拟合,如下所示。

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

在评估中,Maxout和Dropout的组合实现了MNIST、CIFAR10、CIFAR100和SVHN(街景房屋号码)的最好分类表现。

为什么它工作得很好?总结起来就是Dropout在更深的架构中进行精确的模型平均,线性运算和Maxout网络可以学习利用Dropout的近似模型平均技术;此外,零点饱和的整流器单元在Dropout训练中更常见,零值可以阻止梯度流过单元,从而难以在训练中改变,并再次变为活动状态,而Maxout不会受到此问题的影响。

网络中的网络(NIN)

传统的卷积层通过对感受野应用线性滤波器,然后进行非线性激活来应用卷积,其输出为特征图。本文指出这种过程不能学习在非线性概念之间区分好的表示。

CNN中的卷积滤波器是基于数据块的广义线性模型(GLM),这种抽象级别较低,另外抽象意味着该特征对于相同概念的变体是不变的。即使Maxout网络在位于输入空间中的凸集中潜在概念实例强加了约束,并进行分段线性拟合,但关键问题是输入特征是否确实需要非线性函数,以便最好地表示其中包含的概念。作者声称他们这样做:

相同概念的数据通常存在于非线性流形上,因此捕获这些概念的表示通常是输入的高度非线性函数。在NIN中,GLM被替换为通用非线性函数近似器的“微网”结构。在论文中,选择多层感知器(MLP)作为微网络的实例化。

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

第一个大的创新点是用迷你多层感知器网络(称为mlpconv层)代替线性卷积层。由于这种网络擅长学习,所以让mlpconv学习最好的卷积函数学习的内容。由于mlpconv层位于较大的网络模型中,因此整体方法称为”网络中的网络”。

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

第二个变化改变了传统卷积网络中的最后一层:

传统的CNN中采用全连接层进行分类,而NIN直接从最后一个mlpconv层输出特征图的空间平均值作为全局平均池化层的类别置信度,然后将所得到的向量输入到softmax层。简单来讲就是用全局平均池化代替全连接层。

在CIFAR10中,作者以超过1%的性能提升击败了当时最好的表现。

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

在CIFAR100上,作者也以超过1%的性能提升击败了当时

最好的表现

;在SVHN数据集与MNIST数据集上也获得了良好的效果,但不是最好。

OverFeat:使用卷积网络的集成识别、定位和检测

OverFeat展示了如何将基于CNN的分类器用于分类、定位和检测任务,其性能在ILSVRC 2013数据集上分类排名第四,定位和检测都排第一。我们都知道分类问题就是图片是什么物体,但对于定位和检测问题不是很熟悉。检测就是给定一张图片,把图片中的所有物体全部找出来;定位就像分类,网络也必须产生一个显示检测对象的边界框:

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

检测问题涉及可能包含许多小对象的图像,网络必须检测每个对象并绘制其边界框:

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

本文提出了一种新的ConvNet综合方法,主要是通过卷积网络对图像中的物体进行分类、定位和检测,并提高所有任务的精度。另外还通过积累预测的边界框来引入一种新颖的定位和检测方法。论文中有很多细节,在这里就不一一详细介绍,感兴趣的话建议阅读论文的原文。

由于感兴趣的目标可以在图像中的大小和位置上有明显变化,所以OverFeat在图像中的多个位置以滑动窗方式和多尺度应用ConvNet,然后训练系统以产生包含目标的边界框的位置及尺寸的预测。在每个位置和大小上累积每个目标类别的预测。

分类

该模型是基于Krizhevsky提出的网络,网络的前五层没有使用对比度归一化,池化区域是非重叠并使用较小的步长(2而不是4)。6种不同的输入尺寸导致第5层有不同分辨率的特征映射,然后将其池化后送入分类器。

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

下图总结了在第5层特征图上构建分类器方法:

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

从直观上来看,网络分为两部分——特征提取层(15层)和分类器层(6层输出层)。在特征提取部分中,滤波器在整个图像进行移动卷积计算;然而,对于网络的分类器部分,这些原理是相反的。

定位

对于定位而言,分类器层被训练为在每个空间位置和尺度上预测边界框的回归网络代替,然后将回归预测与每个位置的分类结果相结合。多尺度训练可确保预测在尺度上正确匹配,并以指数方式增加合并预测的置信度。

边界框根据其中心之间的距离及其区域的交点进行组合,最后通过采用具有最大类分数的合并边界框进行最终预测。下图给出了该过程的可视化概述:

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

检测

检测训练类似于分类训练,但是当没有目标存在时,还需要预测后台任务。

传统上,反例最初被随机地用于训练,然后将最有争议的负误差添加到训练集中,通过选择每个图像的一些有趣的反例(例如随机的或最有争议的),对苍蝇进行消极训练,这种方法在计算上更昂贵,但使得程序更简单。

附件为原文的pdf

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

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

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

Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ),请点击:https://yq.aliyun.com/articles/74892

相关推荐