《神经网络和深度学习》系列文章四十七:图像识别领域中的近期进展


出处: Michael Nielsen的《Neural Network and Deep Learning》,本节译者:朱小虎 、张广宇。


目录

1、使用神经网络识别手写数字

2、反向传播算法是如何工作的

3、改进神经网络的学习方法

4、神经网络可以计算任何函数的可视化证明

5、为什么深度神经网络的训练是困难的

6、深度学习

  • 介绍卷积网络
  • 卷积神经网络在实际中的应用
  • 卷积网络的代码
  • 图像识别领域中的近期进展
  • 其他的深度学习模型
  • 神经网络的未来

在 1998 年,那年 MNIST 被初次提出,训练一个使用最先进技术的工作站,来达到明显差于我们使用 GPU 并且训练少于一小时就能达到的准确率,要花费几周时间。因此,MNIST不再是一个推动现有技术限制的问题;相反,训练的速度意味着它是个用于教授和学习目的的很好的问题。与此同时,研究的重点已经转移,现代的工作涉及到更具挑战性的图像识别问题。在这一节中,我简要介绍一些最近的使用神经网络的图像识别成果。

 

这一节和本书的大部分内容不同。贯穿本书我集中在可能引起持久兴趣的思想——如反向传播、规范化、卷积网络。正如我写过的,我曾试图避免那些流行一时的成绩,但其长期价值是未知的。在科学界,这样的成绩往往是生命短促的事物,它们逐渐消失,很少有持久的影响。鉴于此,一个怀疑论者可能会说:“嗯,当真最近在图像识别中的进步是流行一时的例子吗?在另外两年或三年中,一切会继续前进。所以当真这些成绩仅仅提起一些想要在绝对前沿竞争的专家的兴趣?为什么要讨论呢?”

 

这样的一个怀疑论者是对的,最近论文的一些出色的细节,其被认为的重要性会逐渐减弱。但过去几年已经看到了使用深度网络攻克极度困难的图像识别任务的非凡的进步。想象一下一个科学历史学家在 2100 年写关于计算机视觉的东西。它们会把 2011 年至 2015 年(也许超过几年)鉴定为由卷积神经网络驱动的取得重大突破的时间。那并不意味着深度卷积网络在 2100 年仍然被使用,更不用提诸如弃权、修正线性单元等细节概念。但是它确实意味着一个重要的变革正在发生,就现在,在知识的历史中。它有点像观察原子的发现,或者抗生素的发明:具有历史意义的发明和探索。所以尽管我们不会深入挖掘细节,了解一些目前正在进行的令人兴奋的探索是值得的。

2012 LRMD 论文:让我从一篇源自斯坦福和谷歌的研究小组的 2012 年论文1开始。我把这篇论文称为LRMD,取自前四位作者的姓。LRMD 使用一个神经网络来分类ImageNet的图像,一个非常具有挑战性的图像识别问题。他们使用的 2011 年ImageNet 数据包含 16,000,000 幅全彩色图像,有20,000个种类。这些图像收集自开放的网络,由亚马逊的 Mechanical Turk 服务部门的员工分类。这里有一些ImageNet图像2:

这些是各自分类中的圆线刨、褐根腐菌、煮过的牛奶和常见的蛔虫。如果你正在找个挑战,我鼓励你去访问 ImageNet 的手工具列表,这个列表把圆线刨、短刨、倒角刨和大概一打的其它刨子类型从其它种类中区分开。我不知道你怎么样,但是我是没有信心区分所有这些工具的类型。这明显是一个比 MNIST 更有挑战性的图像识别任务。LRMD 的网络获得了一个不错的 15.8% 的准确率来正确分类 ImageNet图像。那听上去可能不算令人印象深刻,但是和以前的最好成绩 9.3% 准确率相比已经是巨大的进步了。这个跳跃暗示着神经网络也许能提供一个强大的方法来应对非常有挑战性的图像识别任务,比如 ImageNet。


2012 KSH 论文:LRMD 的成果被一篇 Krizhevsky,Sutskever 和 Hinton (KSH)3的 2012 年论文追随。KSH 训练和测试一个深度卷积神经网络,它使用 ImageNet数据的一个有限的子集。他们使用的子集来自一个流行的机器学习竞赛——ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)。使用一个竞赛用的数据集给了他们一个很好的和其它领先技术比较的途径。ILSVRC-2012 训练集包含有大约 1,200,000 幅 ImageNet 图像,取自 1,000 个种类。验证和测试集分别包含有 50,000 和 150,000 幅图像,各自取自同样的1,000 个种类。

运行 ILSVRC 竞赛一个困难的地方是很多 ImageNet 图像包含了多个物体。假设一幅显示一条拉布拉多犬追逐一个足球的图像。这幅图像所谓“正确的” ImageNet 分类也许是一条拉布拉多犬。如果一个算法把这个图像标记为一个足球,它应该被扣分吗?由于这种歧义性,如果实际的 ImageNet 分类在一个算法认为最有可能的 5个分类中,那么这个算法就被认为是正确的。通过这个前 5标准,KSH 的深度卷积网络达到了一个 84.7% 的准确率,大大好于次优的参赛者,后者取得了 73.8% 的准确率。使用更严格的必需准确标记的标准,KSH 的网络达到了 63.3% 的准确率。

既然 KSH 网络激励了随后的成果,值得对它简要描述一下。正如我们看到的,尽管要更精细,它非常接近于这一章中我们之前训练的网络。KSH 使用一个深度卷积神经网络,在两个 GPU上训练。他们使用两块 GPU 是因为当时使用的特定的 GPU 型号(一块 NVIDIA eForce GTX 580)没有足够的片上存储器来保存整个网络。所以他们用两块 GPU 把网络分成两个部分。

KSH 网络有7个隐藏神经元层。前 5个隐藏层是卷积层(有些具有最大值混合),而接下来的 2层是全连接层。输出层是一个 1,000个单元的柔性最大值层,对应于那1,000个图像类别。这是这个网络的一个草图,取自 KSH 论文4。细节在下面讨论。注意许多层被分成 2个部分,对应于 2 块 GPU。

输入层包含 3 x 224 x 224 个神经元,对应于一幅 224x224 图像的 RBG 值。回想前面提到的,ImageNet 包含有不同分辨率的图像。这引起了一个问题,因为一个神经网络的输入层通常是固定大小。KSH 通过缩放每幅图像使得长和宽中短的长度为 256 来处理。然后他们从缩放后的图像中裁剪出一个 256 x 256 的区域。最后,KSH 从 256 x 256 的图像中随机提取出 224 x 224 的子图(和水平反射)。他们把这个随机的裁剪用作扩展训练数据的方式,这样减少过度拟合。这在一个例如 KSH 的大的网络中尤其有帮助。正是这些 224 x 224 图像被用于网络的输入。在大多数情况下裁剪后的图像仍然包含有未改动图像的主要物体。

这是 KSH 论文中许多核心思想一个总体概况。我已经忽略了一些细节,对此你可以看下论文。你也可以看下 Alex Krizhevsky 的cuda-convnet(和接替版本),它包含有实现这许多思想的代码。一个基于 Theano 的实现5,代码可以在https://github.com/uoguelph-mlrg/theano_alexnet得到。尽管使用多 GPU会让情况变得复杂,但代码本身还是类似于这章我们写出来的那些。Caffe 神经网络框架也包含一个 KSH 网络的版本,详细参见ModelZoo。

2014 ILSVRC 竞赛:自 2012 年以来,研究一直在快速推进。看看 2014 年的ILSVRC 竞赛。和 2012 一样,这次也包括了一个 120,000 张图像,1,000 种类别,而优值系数是前 5 个预测是否包含正确的分类。获胜团队,主要来自谷歌6称此为 GoogLeNet,作为向 LeNet-5 的致敬。GoogLeNet 达到了 93.33% 的前 5 准确率,远超 2013 年的获胜者和2012年的获胜者(KSH,84.7%)。

那么 GoogLeNet 93.33% 的准确率又是多好呢?在 2014 年,一个研究团队写了一篇关于ILSVRC 竞赛的综述文章7。其中有个问题是人类在这个竞赛中能表现得如何。为了做这件事,他们构建了一个系统让人类对 ILSVRC 图像进行分类。其作者之一 Andrej Karpathy 在一篇博文中解释道,让人类达到GoogLeNet 的性能确实很困难:

...从 1000 个类别中挑选出 5 个来标记图像的任务很快被证明是非常具有挑战性的,甚至对一些已经在ILSVRC 和它同级别上工作一段时间的实验室里的朋友也是如此。开始我们以为能把它放在[AmazonMechanicalTurk]上。然后我们想过付费招募些还未毕业的大学生。然后我组织了一个只有实验室里有强烈标记热情的人(专家级标记人员)参与的标记聚会。然后我开发了一个修改了接口的 GoogLeNet 预测来把多余的类别数量从 1000减少到只有 100。它仍然太困难了——大家仍然持续地错过正确的类别并达到了 13--15% 的错误率。最后我意识到为了有竞争力地接近 GoogLeNet,最有效率的做法是坐下来亲自完成痛苦的长期训练过程以及随后仔细的注记... 标记以每分钟 1 个的速度完成,但随着时间的推移减少了... 有些图像容易识别,同时有些图像(诸如那些有细密纹理的狗,鸟,或者猴子的品种)会需要几倍的集中精力。我变得非常擅长鉴别狗的品种... 基于我致力于的图像样本,GoogLeNet分类的误差结果为 6.8%... 我自己的误 差最终为 5.1%,大约以 1.7% 的差距胜过。

换言之,一个专家级别的人类,非常细心地检查图像,付出很大的努力才能够微弱胜过深度神经网络。实际上,Karpathy 指出第二个人类专家,用小点的图像样本训练后,只能达到 12.0% 的 top-5 错误率,明显弱于 GoogLeNet。大概有一半的错误都是专家“难以发现和认定正确的类别究竟是什么”。

这些都是令人惊奇的结果。确实,在这项成果后,很多团队也报告 top-5 错误率实际上好过 5.1%。这有时候在媒体上被报道成系统有超过人类的视觉。尽管这些结构是很振奋人心的,但是这样的报道只能算是一种误解,认为系统在视觉上超过了人类,事实上并非这样。ILSVRC 竞赛问题在很多方面都是受限的——在公开的网络上获得图像并不具备在实际应用中的代表性!而且 top-5 标准也是非常人工设定的。我们在图像识别,或者更宽泛地说,计算机视觉方面的研究,还有很长的路要走。当然看到近些年的这么多进展,还是很鼓舞人心的。

其它活动: 上面关注于 ImageNet,但是也还有一些其他的使用神经网络进行图像识别的工作。我们也介绍一些进展。

一个鼓舞人心的应用上的结果就是 Google 的一个团队做出来的,他们应用深度卷积网络在识别 Google 的街景图像库中街景数字上8。在他们的论文中,对接近 100,000,000 街景数字的自动检测和自动转述已经能打到与人类不相上下的程度。系统速度很快:在一个小时内将法国所有的街景数字都转述了。他们说道:“拥有这种新数据集能够显著提高 Google Maps 在一些国家的地理精准度,尤其是那些缺少地理编码的地区。”他们还做了一个更一般的论断:“我们坚信这个模型,已经解决了很多应用中字符短序列的 OCR 问题。”

我可能已经留下了印象——所有的结果都是令人兴奋的正面结果。当然,目前一些有趣的研究工作也报道了一些我们还没能够真的理解的根本性的问题。例如,2013 年一篇论文9指出,深度网络可能会受到有效盲点的影响。看看下面的图示。左侧是被网络正确分类的 ImageNet 图像。右边是一幅稍受干扰的图像(使用中间的噪声进行干扰)结果就没有能够正确分类。作者发现对每幅图片都存在这样的“对手”图像,而非少量的特例。

这是一个令人不安的结果。论文使用了基于同样的被广泛研究使用的 KSH 代码。尽管这样的神经网络计算的函数在理论上都是连续的,结果表明在实际应用中,可能会碰到很多非常不连续的函数。更糟糕的是,他们将会以背离我们直觉的方式变得不连续。真是烦心啊。另外,现在对这种不连续性出现的原因还没有搞清楚:是跟损失函数有关么?或者激活函数?又或是网络的架构?还是其他?我们一无所知。

现在,这些问题也没有听起来这么吓人。尽管对手图像会出现,但是在实际场景中也不常见。正如论文指出的那样:

对手反例的存在看起来和网络能获得良好的泛化性能相违背。实际上,如果网络可以很好地泛化,会受到这些难以区分出来的对手反例怎么样的影响?解释是,对手反例集以特别低的概率出现,因此在测试集中几乎难以发现,然而对手反例又是密集的(有点像有理数那样),所以会在每个测试样本附近上出现。

我们对神经网络的理解还是太少了,这让人觉得很沮丧,上面的结果仅仅是近期的研究成果。当然了,这样结果带来一个主要好处就是,催生出一系列的研究工作。例如,最近一篇文章10说明,给定一个训练好的神经网络,可以产生对人类来说是白噪声的图像,但是网络能够将其确信地分类为某一类。这也是我们需要追寻的理解神经网络和图像识别应用上的研究方向。

虽然遇到这么多的困难,前途倒还是光明的。我们看到了在众多相当困难的基准任务上快速的研究进展。同样还有实际问题的研究进展,例如前面提到的街景数字的识别。但是需要注意的是,仅仅看到在那些基准任务,乃至实际应用的进展,是不够的。因为还有很多根本性的现象,我们对其了解甚少,就像对手图像的存在问题。当这样根本性的问题还亟待发现(或者解决)时,盲目地说我们已经接近最终图像识别问题的答案就很不合适了。这样的根本问题当然也会催生出不断的后续研究。

注:


1.Building high-level features using largescale unsupervised learning,作者为Quoc Le, Marc Aurelio Ranzato, Rajat Monga,Matthieu Devin, Kai Chen, Greg Corrado,Jeff Dean和 Andrew Ng(2012)。注意这篇论文中使用的网络架构在很多细节上和我们已经学习的深度卷积网络不同。然而,一般地说,LRMD基于很多类似的思想。


2.这些取自2014年的数据集,其相对2011年的有点改变。然而在质的方面,这个数据集是非常相似的。关于ImageNet 的详情可以在原始的ImageNet论文 ImageNet: alarge-scale hierarchical image database中找到,作者为Jia Deng,Wei Dong,RichardSocher,Li-Jia Li,Kai Li,和Li Fei-Fei (2009)。


3.ImageNet classification with deepconvolutional neural networks,作者为Alex Krizhevsky,Ilya Sutskever,和GeoffreyE. Hinton ( 2012)。


4.感谢 Ilya Sutskever


5.Theano-based large-scale visual recognitionwith multiple GPUs,作者为Weiguang Ding,Ruoyan Wang,Fei Mao,和 Graham Taylor (2014)。


6.Going deeper with convolutions,作者为Christian Szegedy,Wei Liu,Yangqing Jia,Pierre Sermanet,Scott Reed,Dragomir Anguelov,DumitruErhan,Vincent Vanhoucke,和 Andrew Rabinovich (2014)。


7.ImageNet large scale visual recognitionchallenge,作者为Olga Russakovsky,Jia Deng,Hao Su,Jonathan Krause,Sanjeev Satheesh,Sean Ma,ZhihengHuang,Andrej Karpathy,Aditya Khosla,Michael Bernstein,Alexander C.Berg,和 Li Fei-Fei(2014)。


8.Multi-digit Number Recognition from StreetView Imagery using Deep Convolutional Neural Networks,作者为Ian J. Goodfellow,Yaroslav Bulatov,JulianIbarz,Sacha Arnoud和 Vinay Shet(2013)。


9.Intriguing properties of neural networks,作者为Christian Szegedy,Wojciech Zaremba,Ilya Sutskever,Joan Bruna, Dumitru Erhan, IanGoodfellow,和Rob Fergus (2013)

10.Deep Neural Networks are Easily Fooled:High Confidence Predictions for Unrecognizable Images,作者为 Anh Nguyen,Jason Yosinski和 Jeff Clune(2014)。


本文来源于哈工大SCIR

原文链接点击即可跳转


哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

工程理论书籍神经网络深度学习图像识别计算机视觉哈工大
暂无评论
暂无评论~