经典必读:你应该知道的深度学习论文(二)
让我们继续开启经典论文之路!
5.微软ResNet(2015)
先设一个深度的CNN架构。接下来,将层数增加一倍,再增加几个层次,但它可能还没有微软亚洲研究院于2015年底推出的ResNet架构那么深。ResNet是一种新的152层网络架构,它设置了新的记录通过一个令人难以置信的架构进行分类、检测和定位。除了层数方面的新纪录,ResNet赢得了ILSVRC 2015的惊人错误率为3.6%(根据他们的技能和专业知识,人类通常徘徊在5-10%的错误率。)
残差块
残差块背后的想法是,你输入x要经过conv-relu-conv系列。这会给你一些F(x)。然后将该结果添加到原始输入x中。我们称之为H(x)= F(x)+ x。在传统的CNN中,你的H(x)恰好等于F(x)吧?因此,我们不是只计算这个变换(从x到F(x)),而是计算你必须为输入x添加F(x)的术语。基本上,下面显示的迷你模块正在计算“delta”或对原始输入x的轻微改变以获得稍微改变的表示(当我们想到传统的CNN时,我们从x到F(x),这是一个全新的表示不保留关于原始x的任何信息)。作者认为“优化残差映射比优化原始的、未引用的映射更容易”。
这个残余块可能有效的另一个原因是,在反向传播的向后传递过程中,梯度将很容易地通过有效流,因为我们有加法操作,它分布梯度。
要点
·152层…
·有趣的是,仅在前两层之后,空间大小从224x224的输入体积被压缩为56x56的体积。
·作者声称,普通网络中层数的不断增加会导致更高的训练和测试错误(本文中的图1)。
·该小组尝试了一个1202层网络,但测试精度较低,大概是由于过度拟合。
·在8台GPU机器上训练2到3周。
为什么这很重要
3.6%的错误率。这本身就应该足以说服你。 ResNet模型是我们目前拥有的最好的CNN架构,并且是残留学习理念的一个伟大创新。由于自2012年以来每年的错误率都在下降,我对他们是否会因为ILSVRC 2016而下降表示怀疑。我相信我们已经达到了在彼此之上堆叠更多层,并不会导致大幅提升表现。肯定会有像我们在过去两年看到的那样有创造性的新架构。
6.基于地区的有线电视新闻网(R-CNN-2013,快速R-CNN-2015,更快的R-CNN-2015)
有些人可能会认为,R-CNN的出现对于以前关于新网络体系结构的论文的影响都大。这是第一次关于R-CNN的论文被引用超过1600次,加州大学伯克利分校的Ross Girshick和他的团队创造了计算机视觉领域最有影响力的进展之一。正如他们的头衔所证明的,Fast R-CNN和R-CNN更快地使模型更快更好地适用于现代物体检测任务。
R-CNNs的目的是解决目标检测的问题。给定一个图像,我们希望能够在所有对象上绘制边界框。该过程可以分为两个通用组件,区域提议步骤和分类步骤。
作者指出,任何类别不可知区域提议方法都应该适用。选择性搜索特别用于RCNN,选择性搜索执行生成包含对象的概率最高的2000个不同区域的功能。在我们提出了一系列区域提案之后,这些提案会被“扭曲”为一个图像大小,然后可以输入一个经过训练的CNN(在这种情况下为AlexNet),为每个区域提取特征向量。然后将这个向量用作一组线性SVM的输入,这些线性SVM为每个类训练并输出一个分类。矢量也被送入边界框回归器以获得最准确的坐标。
然后使用非极大值抑制来抑制彼此具有显著重叠的边界框。
快R-CNN
由于3个主要问题,对原始模型进行了改进。训练经历了多个阶段(ConvNets到支持向量机到边界框回归器),计算成本很高,并且非常慢(RCNN每个图像需要53秒)。 Fast R-CNN通过基本共享不同提案之间的conv层的计算并交换生成区域提议的顺序并运行CNN,能够解决速度问题。在这个模型中,图像首先通过ConvNet进行图像处理,区域提议的特征从ConvNet的最后一幅特征地图中获得(更多详细信息,请参阅本文的第2.1节),最后我们还有完全连接的图层以及我们的回归和分类负责人。
更快的R-CNN
更快的R-CNN致力于打击R-CNN和Fast R-CNN展示的有些复杂的训练渠道。作者在最后的卷积层之后插入区域推荐网络(RPN)。该网络仅能够查看最后的卷积特征映射并从中产生区域提议,从那个阶段开始,使用与R-CNN相同的管道(ROI池,FC,然后是分类和回归头)。
为什么这很重要
能够确定图像中的特定对象是一回事,但能够确定该对象的确切位置则是计算机知识的巨大跳跃。更快的R-CNN已成为当今物体检测程序的标准。
7.生成敌对网络(2014)
据Yann LeCun称,这些网络可能是下一个重大发展。在谈论这篇论文之前,我们先谈谈一些有关对手的例子。例如,让我们考虑一下在ImageNet数据上运行良好的经过培训的CNN。我们举一个示例图像并应用扰动或稍作修改,以使预测误差最大化。因此,预测的对象类别改变,而图像本身与没有摄动的图像相比看起来是相同的。从最高层面来看,敌对的例子基本上就是愚弄ConvNets的图像。
敌对的例子(纸)肯定让很多研究人员感到惊讶,并迅速成为一个有趣的话题。现在让我们来谈谈生成对抗网络。我们来考虑两个模型,一个生成模型和一个判别模型。区分模型的任务是确定给定的图像是否看起来很自然(来自数据集的图像),还是看起来像是人为创建的。生成器的任务是创建图像,以便鉴别器得到训练以生成正确的输出。本文所用的类比是生成模型就像“一组伪造者团队,试图制造和使用假货币”,而区别模型就像“警察,试图检测假货币”。发生器试图欺骗鉴别器,而鉴别器试图不被发生器愚弄。随着模型的训练,两种方法都得到了改进,直到“伪造品与真品无法区分”。
为什么这很重要
听起来很简单,但为什么我们关心这些网络?正如Yan Le Leun在他的Quora文章中指出的那样,鉴别者现在已经意识到“数据的内部表示”,因为它已经被训练了解数据集中真实图像与人工创建图像之间的差异。因此,它可以用作可以在CNN中使用的特征提取器。另外,你可以创建非常酷的人工图像。
8.生成图像描述(2014)
当你将CNN与RNN结合起来会发生什么?你会因此得到一个非常棒的应用程序。本文由Andrej Karpathy和Fei-Fei Li撰写,研究CNN和双向RNN(递归神经网络)的组合,以生成不同图像区域的自然语言描述。基本上,该模型能够获取图像并输出:
这真是不可思议。我们来看看这与正常的CNN相比如何。使用传统的CNN,训练数据中每个图像都有一个明确的标签。在论文中描述的模型具有训练样例,其具有与每个图像相关联的句子(或标题)。这种类型的标签被称为弱标签,其中句子片段指图像的(未知)部分。通过使用这些训练数据,深层神经网络“推断句子片段和他们描述的区域之间的潜在一致性”(引自本文)。另一个神经网络将图像作为输入并在文本中生成描述。让我们分别看看这两个组件,对齐和生成。
对齐模型
这部分模型的目标是能够对齐视觉和文本数据(图像及其文本描述)。这个模型通过接受一个图像和一个句子作为输入来工作,输出是他们匹配程度的分数。
现在让我们考虑代表图像。第一步是将图像输入R-CNN以检测单个物体。这个R-CNN接受了ImageNet数据的训练。
现在,我们需要关于这个句子的信息。我们将把词汇嵌入到同一个多模式空间中,这是通过使用双向递归神经网络完成的。从最高层次来看,这是为了说明给定句子中单词的上下文信息。由于关于图片和句子的这些信息都在相同的空间中,因此我们可以计算内部产品以显示相似性度量。
生成模型
对齐模型的主要目的是创建一个数据集,其中有一组图像区域(由RCNN找到)和相应的文本(感谢BRNN)。现在,生成模型将从该数据集中学习,以生成给定图像的描述。该模型接收图像并通过CNN提供。由于完全连接层的输出成为另一个RNN的输入,softmax层被忽略。对于那些不熟悉RNN的人来说,它们的功能是基本形成句子中不同单词的概率分布(RNN也需要像CNN一样进行训练)。
为什么这很重要
对我而言,有趣的想法是使用这些看似不同的RNN和CNN模型来创建一个非常有用的应用程序,它将计算机视觉和自然语言处理领域结合起来。它为在处理跨越不同领域的任务时如何使计算机和模型变得更加智能方面的新想法打开了大门。
9.空间变压器网络(2015年)
最后但并非最不重要的,我们来看看该领域最近的一篇论文。这篇论文是在Google Deepmind上撰写的。主要贡献是引入了一个Spatial Transformer模块。基本思想是,该模块以某种方式转换输入图像,以便后续图层更容易进行分类。作者没有对CNN主体系结构本身进行更改,而是担心在将图像输入到特定的conv层之前对图像进行更改。该模块希望纠正的两件事是姿态规范化(对象倾斜或缩放的场景)和空间注意力(注意拥挤图像中的正确对象)。对于传统的CNN,如果你想让你的模型对不同尺度和旋转的图像保持不变,那么你需要大量的训练样例才能正确学习模型。我们来详细了解这个变压器模块如何帮助解决这个问题。
处理空间不变性的传统CNN模型中的实体是最大化层。后面的直观推理是,一旦我们知道原始输入体积(具有较高激活值的地方)中的某个特定功能,它的确切位置就不如其它功能的相对位置那么重要。这种新的空间变换器是动态的,它会为每个输入图像产生不同的行为(不同的失真/变换)。它不像传统的Maxpool那样简单且可以预先定义。我们来看看这个变压器模块是如何工作的。该模块包括:
·一个定位网络,它接收输入量并输出应该应用的空间变换参数。对于仿射变换,参数或θ可以是6维的。
·创建一个采样网格,这是使用本地化网络中创建的仿射变换(theta)来扭曲常规网格的结果。
·采样器,其目的是执行输入特征映射的变形。
这个模块可以在任何时候放入CNN,基本上可以帮助网络学习如何转换特征映射,从而最大限度地减少训练期间的成本函数。
为什么这很重要
本文引起了我的注意,主要原因是CNN的改进不一定必须来自网络体系结构的剧烈变化。我们不需要创建下一个ResNet或Inception模块。本文实现了对输入图像进行仿射变换的简单思路,以帮助模型对平移、缩放和旋转更加不变。对于那些有兴趣的人来说,这里是Deepmind的一个视频,其中有一个关于在CNN中放置Spatial Transformer模块的结果的动画和一个好的Quora讨论。