经典必读:你应该知道的深度学习论文(一)

如果你有兴趣了解深度学习的现状,这篇文章概述并全面总结了该领域当代最有影响力的9篇论文。


在这篇文章中,我们将总结计算机视觉和卷积神经网络领域的许多新的重要发展。我们将看看过去5年发表的一些最重要的论文,并讨论它们为什么如此重要。这篇文章先奉上前半部分。

经典必读:你应该知道的深度学习论文(一)

1.AlexNet(2012)

这篇文章是深度学习的起源,(尽管有些人可能会说1998年Yann LeCun的论文菜是真正的开创性出版物)。本文标题为“ImageNet Classification with Deep Convolutional Networks”,总共被引用6,184次,被广泛认为是该领域最有影响力的出版物之一。 Alex Krizhevsky,Ilya Sutskever和Geoffrey Hinton创建了一个“巨大而深度的卷积神经网络”,用于赢得2012年ILSVRC(ImageNet大规模视觉识别挑战)。对于那些不熟悉的人来说,这个竞赛可以被认为是计算机视觉年度奥运会,来自世界各地的团队参加比赛,看看谁拥有最好的计算机视觉模型,用于分类、本地化、检测等任务。2012年标志着CNN被用来实现15.4%的前5个测试错误率的第一年(前5个错误是在给定图像的情况下,该模型未输出具有前5个预测的正确标签的速率)。接下来的最佳条目达到了26.2%的错误,这是一个惊人的改进,几乎让计算机视觉社区感到震惊。可以肯定地说,CNN在此后的竞争中成为家喻户晓的名字。

在论文中,该小组讨论了网络的体系结构(称为AlexNet)。与现代架构相比,他们使用相对简单的布局。网络由5个conv层、max-pooling层,dropout层和3个完全连接的层组成。他们设计的网络被用于1000种可能的类别分类。

要点

·在ImageNet数据上训练网络,其中包含超过22000个类别的超过1500万注释图像。

·用于非线性函数的ReLU(发现减少训练时间,因为ReLU比传统tanh函数快几倍)。

·使用的数据增强技术包括图像转换、水平反射和补丁提取。

·为了解决训练数据的过度拟合问题,实现了分层。

·使用批量随机梯度下降训练模型,具有特定的动量和重量衰减值。

·在两台GTX 580 GPU上训练五至六天。

为什么这很重要

2012年由Krizhevsky、Sutskever和Hinton开发的神经网络成为聚会的主题

计算机视觉社区中的CNN。这是模型首次在历史上的ImageNet数据集上表现得非常好。利用今天仍在使用的技术,如数据增强和丢失,本文真正说明了CNN的优势,并在竞争中创造了创纪录的性能。

2.采埃孚网络(2013

由于AlexNet在2012年盗取了该节目,提交给ILSVRC 2013的CNN模型数量大幅增加。当年的竞赛获胜者是由纽约大学的Matthew Zeiler和Rob Fergus创建的网络。命名为ZF Net,该模型实现了11.2%的错误率。这种架构更适合于以前的AlexNet结构,但仍然提出了一些关于提高性能的非常关键的想法。这是一篇如此出色的论文的另一个原因是作者花了很多时间来解释ConvNets背后的许多直觉,并展示了如何正确可视化过滤器和权重。

题为“Visualizing and Understanding Convolutional Neural Networks”的论文中,Zeiler和Fergus首先讨论了这一观点,即对CNN的这种重新关注是由于大型训练集的可访问性以及随着GPU的使用而增加的计算能力。他们还谈到研究人员对这些模型的内在机制所知有限的知识,并说如果没有这种洞察力,“更好模型的开发就会减少到试验和错误”。虽然我们现在比3年前有了更好的理解,但对于很多研究人员来说,这仍然是一个问题!本文的主要贡献是稍微修改了AlexNet模型的细节,以及可视化特征映射的一种非常有趣的方式。

要点

·与AlexNet非常相似的架构,除了一些小修改。

·AlexNet训练了1500万张图片,而ZF Net仅训练了130万张图片。

·ZF Net没有在第一层使用11x11大小的过滤器(这是AlexNet实施的过滤器),而是使用尺寸为7x7的过滤器和减少的步幅值。此修改背后的原因是,第一个conv层中的较小滤波器大小有助于在卷中保留大量原始的像素信息。过滤大小为11x11的过滤被证明会跳过很多相关信息,特别是因为这是第一个conv层。

·随着网络的发展,我们也看到了所用滤波器数量的增加。

·用于激活函数的ReLUs,误差函数的交叉熵损失以及使用批次随机梯度下降的训练。

·在GTX 580 GPU上训练十二天。

·开发了一种名为Deconvolutional Network的可视化技术,它有助于检查不同的特征激活及其与输入空间的关系。称为“deconvnet”是因为它将要素映射到像素(与卷积层相反)。

DeConvNet

背后的基本思想是,在训练有素的CNN的每一层,你都附加一个“解码器”,它有一条返回到图像像素的路径。将输入图像输入到CNN中,并在每个级别上计算激活。这是正向传球。现在,假设我们想要检查第四个conv层中某个特征的激活。我们将存储这一个特征映射的激活,但将该图层中的所有其他激活设置为0,然后将此特征映射作为输入传递到解码器中。此deconvnet具有与原始CNN相同的过滤器。然后,这个输入经过一系列的unpool(reverse maxpooling)、纠正和每个前面的层的过滤操作,直到达到输入空间。

整个过程背后的原因是我们想要检查哪种类型的结构能激发给定的特征映射。我们来看看第一层和第二层的可视化效果。

经典必读:你应该知道的深度学习论文(一)

就像我们在第1部分中讨论的那样,ConvNet的第一层始终是一个低级特征检测器,它将在这种特殊情况下检测简单的边缘或颜色。我们可以看到,在第二层,我们有更多的循环功能被检测到。我们来看看第3,4,5层。

经典必读:你应该知道的深度学习论文(一)

这些图层显示了更多更高级别的功能,如狗脸或鲜花的特征。有一点需要注意的是,正如你可能记得的那样,在第一个conv层之后,我们通常有一个对图像进行向下采样的池层(例如,将一个32x32x3的卷转换为16x16x3的卷)。这样做的效果是第二层在原始图像中可以看到的范围更广。

为什么这很重要

采埃孚网络不仅是2013年竞争对手的赢家,而且还提供了有关CNN运作的绝佳直觉,并说明了提高绩效的更多途径。所描述的可视化方法不仅有助于解释CNN的内部工作原理,而且还提供了改进网络架构的见解。

3. VGG Net(2014)

简单性和深度。这是2014年创建的模型(不是ILSVRC 2014的获胜者)在7.3%的错误率下得到最佳利用。牛津大学的Karen Simonyan和Andrew Zisserman创建了一个19层的CNN,严格使用3x3过滤器,步幅为1。

经典必读:你应该知道的深度学习论文(一)

要点

·仅使用3x3大小的过滤器与第一层的AlexNet 11x11过滤器和ZF Net的7x7过滤器完全不同。作者的推理是两个3x3 conv层的组合具有5x5的接收场。这反过来模拟更大的过滤器,同时保持较小的过滤器尺寸的好处。其中一个好处是减少了参数数量。此外,有了两个conv层,我们可以使用两个ReLU层,而不是一个。

·背靠背的3个conv层有7x7的有效接受场。

·随着每层输入体积的空间尺寸减小(conv和pool层的结果),随着网络的进入,体积的深度会随着·滤波器数量的增加而增加。

·有趣的是,滤镜的数量在每个maxpool图层之后都会增加一倍。这强化了缩小空间维度的想法,但增加了深度。

·在图像分类和本地化任务上工作得很好。作者使用本地化的形式作为回归(有关所有细节,请参阅本文的第10页)。

·用Caffe工具箱构建模型。

·在每个conv层之后使用ReLU图层并使用批梯度下降进行训练。

·在4个Nvidia Titan黑色GPU上训练两次

为什么这很重要

VGG Net是我心目中最有影响力的论文之一,因为它强化了卷积神经网络必须具有深层网络才能使视觉数据的分层表示工作的观点。保持深度,把事情简单化。

4. GoogLeNet(2015)

你知道我们刚才提到的简单网络架构的概念吗?那么,谷歌就会通过介绍Inception模块将它抛出窗外。 GoogLeNet是一个22层的CNN,并且是ILSVRC 2014的赢家,前5名的错误率为6.7%。据我所知,这是第一个真正偏离了在顺序结构中简单地堆叠conv和pooling层的一般方法的CNN架构之一。这篇论文的作者还强调,这个新模型着重考虑了内存和功耗(重要的是,我有时也会忘记:堆叠所有这些层并添加大量过滤器会产生计算和内存成本,以及过度配合的机会增加)。

经典必读:你应该知道的深度学习论文(一)

初始模块

当我们首先看看GoogLeNet的结构时,我们立即注意到,并非所有事情都是按顺序发生的,如以前的架构所见,我们有一些并行发生的网络。

经典必读:你应该知道的深度学习论文(一)

它被称为初始模块。让我们仔细看看它是由什么组成的。

经典必读:你应该知道的深度学习论文(一)

底部的绿色框是我们的输入,最高的一个是模型的输出(将此图片右转90度可以让您看到与显示完整网络的最后一张图片相关的模型)。基本上,在传统的ConvNet的每一层,你必须选择是否进行池化操作或转换操作(也可以选择过滤器大小)。 Inception模块允许您执行的操作是并行执行所有这些操作。事实上,这正是作者提出的“天真”的想法。

经典必读:你应该知道的深度学习论文(一)

为什么说它天真,因为这会导致太多的产出。我们最终会为输出提供一个非常大的深度通道。作者解决这个问题的方式是在3x3和5x5层之前添加1x1 conv操作。 1×1卷积(或网络层中的网络)提供了降维的方法。例如,假设您的输入体积为100x100x60(这不一定是图像的尺寸,只是网络任何层的输入)。应用20个1x1卷积滤波器可以让您将音量减小到100x100x20。这意味着3x3和5x5的卷积将不会有大量的卷积来处理。这可以被认为是“特征汇集”,因为我们正在减小体积的深度,类似于我们如何使用普通的最大化图层来减小高度和宽度的尺寸。另外需要注意的是,这些1x1 conv层次后面跟着的是ReLU单位,这些单位肯定不会受到伤害(参见Aaditya Prakash关于1x1卷积效果的更多信息)。

你可能会问自己:“这个架构如何提供帮助?”。那么,你有一个由网络层组成的网络,一个中等大小的卷积滤波器,一个大尺寸的卷积滤波器和一个池化操作。网络conv中的网络能够提取有关该卷中非常精细的纹理细节的信息,而5x5过滤器可以覆盖输入的大量接受区域,从而也可以提取其信息。您还可以进行联合操作,帮助减少空间尺寸并打击过度配合。最重要的是,每个conv层之后都有ReLU,这有助于提高网络的非线性。基本上,网络能够执行这些不同操作的功能,同时仍然保持计算上的体贴。本文还给出了更多的高层次推理,其中涉及稀疏性和密集联系等主题(请阅读论文的第3和第4部分。

要点

·在整个架构中使用了9个Inception模块,总共超过100层!

·没有使用完全连接的层!他们使用平均池,从7x7x1024的体积转到1x1x1024的体积。这节省了大量的参数。

·使用比AlexNet少12倍的参数。

·在测试过程中,创建相同图像的多个作物,并将其输入网络,并将softmax概率取平均值,为我们提供最终解决方案。

·利用R-CNN的概念(我们将在后面讨论这篇文章)介绍他们的检测模型。

·Inception模块有更新的版本(版本6和7)。

·受过“一周内的一些高端GPU”的训练。

为什么这很重要

GoogLeNet是最早引入CNN层但并不一定要按顺序排列的模型之一。它提出了一种初始化模块,提出了一种分层的创造性结构,可以提高性能和计算效率。这篇论文确实为我们在未来几年看到的一些令人惊叹的建筑奠定了基础。

未完待续······


分享到:


相關文章: