学习的机器

用大量的数据识别图像和语音,深度学习的计算机(deep-learning computers)

向真正意义上的人工智能迈出了一大步。

Nicola Jones

Computer Science,Vol 505: P146-148, 2014.1.9

3年前,位于Mountain View, California的Google X实验室中研究者从YouTube视频中提取了100,000,000张静态图片,提供给Google Brain(一个由1000台计算机组成的网络,像蹒跚学步的小孩尝试吸收理解这个世界)。寻找可再现模式三天后,Google Brain做出自己的决定:存在一些她可以识别的重复出现的类别:人脸、人体和猫[1]

Google Brain的Internet到处是猫的视频的发现在新闻界被视为一个笑话。但这一发现也是深度学习复苏的一个里程碑:深度学习是有30年历史的技术,她用大量的数据和处理能力帮助计算机处理人类几乎靠直觉解决的复杂问题,从脸部识别到语言理解。

深度学习自身是另一个更古老的关于计算的思路:神经网络。神经网络系统松弛的受大脑中紧密连接的神经元启发,在经验的基础上通过改变模拟的神经元连接强度来模拟人类学习过程。Google Brain由1000,000个神经元和1000,000,000个神经元连接,是之前出现的神经网络规模的10倍。项目奠基者Andrew Ng,现在是California Stanford大学人工智能实验室的主管,已再次将深度学习系统规模扩大了10倍。

这些优势给人工智能(AI)注入了新的活力,之前AI在让计算机像人类一样思考的尝试总是令人沮丧的。在过去的几年,Google、Apple和IBM等公司都在争夺有深度学习经验的研究人员。对普通消费者来说,深度学习带来的是能够更好的整理图片、理解口头命令和文本翻译的软件。对科学家和工业界老说,深度学习的计算机可用于搜索潜在的替代药物、发现大脑中的神经网络结构,或者预测蛋白质功能。

“AI经历了一个又一个失败,只有一点进展。这可能是另一个蛙跳”,Yann LeCun(New York大学数据科学中心主管、深度学习先驱)。

“接下来的几年,我们将看到很多这样的报导。很多人会跳上深度学习的游行车”,Jitendra Malik(在Berkeley大学研究计算机图像识别)表示赞同。从长远看,深度学习也许不会达到预期目标,一些研究者在研究其他有承诺的技术。Malik说道:“我是个不可知论者,将来人们会确定在不同的领域哪些技术更合适”。

大脑的启发(INSPIRED BY THE BRAIN)

回到计算机刚诞生的1950年代,第一代AI研究者急切的预测成熟的AI触手可及。但在研究者们开始领悟现实世界知识的复杂性时,他们就不再这么乐观了,尤其是在处理感知(perceptual)问题的时候,例如什么特征将脸区分为人脸,而不是面具或猴脸。研究者和研究生们花费了数十年时间来编写关于计算机识别物体所需的所有特征的规则。“确定所有特征是很困难的、耗时且需要专业知识”,Ng说道,“你必须问有没有其他更好的方法”。

到1980年代,神经网络中的深度学习似乎是一个更好的方法。这些系统承诺通过抓取数据提供自己的规则,提供大脑启发机制令人舒适的对称性完成大脑类似的功能。模拟神经元被组织成几个层次。这种系统的第一层仅能区分图片中明暗像素点。下一层可能认识到一些像素点形成了边界,再下一层可能区分出水平和垂直的线。最终,一个层次可能会识别眼睛,认识到人脸中通常有两个眼睛(见“脸部识别”图)。

Malik指出第一个深度学习程序表现的并不比更简单的系统好,而且使用起来还需要特殊的技巧;同时神经网络总像是需要优雅的艺术来管理,像有黑色魔法包含在其中一样。神经网络需要大量的实例来学习,像小孩收集现实世界的信息一样。到1990年代,仍然没有太多的数字信息可用,计算机花费了太多的时间确定有些什么信息。这一时期的应用很少,其中一个是由LeCun开发的技术,现在被银行用于手写支票识别。

到2000年,像LeCun和他的主管Geoffrey Hinton(Toronto大学的计算机科学家)等确信计算能力的提升和数字数据的涌现是深度学习发展的一次契机。“我们想向全世界表明这些深度神经网络确实是有用和有帮助的”,George Dahl(Hinton的学生)说道。

起初,Hinton、Dahl和其他一些人致力于处理困难但在商业上不是很重要的语音识别(speech recognition)。在2009年,研究者报告,在经典的数据集(三小时的录音)上训练后,他们的深度学习神经网络成功的打破将语音单词转换为文本的准确率记录,一个由基于规则的方法保持了10多年的记录[2]。Dahl指出这一成果引起了智能手机市场主要参与者的注意,他在Microsoft实习时引入这一技术。在随后的几年,他们都转换到深度学习研究中,例如iPhone的语音驱动的数字帮助程序Siri,就依赖于深度学习。

巨大的跨越(GIANT LEAP)

当Google将基于深度学习的语音识别应用于Android智能手机操作系统中后,将单词错误率降低了25%。“那就像你预期十年完成的目的提前完成了一样,就像是有10种技术突破一样”,Hinton说道;这确实反映了在这一领域获得进展是多么困难。

同时Ng说服Google允许他使用Google的数据和计算机搭建Google Brain。Google Brain识别出猫这一能力是非监督式学习引人注目一个展示(其本身不能产生任何经济效益),非监督式学习是最困难的学习任务之一,因为它的输入没有携带像名称、标题或所属类别等任何解释性信息。但Ng意识到Google外部很少有研究者有用于深度学习的工具是一个麻烦,他说道:“不管我说了多少,沮丧的研究生们直接问我,他们没有1000台计算机能不能开展工作”。

所以回到Stanford,Ng开始用GPU(graphics processing units,用于家庭计算机游戏的处理单元)开发更大但更便宜的深度学习网络[3]。Ng声明:“有100,000美元的硬件投入,我们可以用64个GPU建立有11,000,000,000个连接的神经网络”。

胜利的机器(VICTORIOUS MACHINE)

但计算机视觉科学家需要做更多的努力:他们想获得在标准测试上的结果。Malik记得Hinton问过他:“你是个怀疑论者,那什么能够说服你?”。Malik回复在享有盛誉的ImageNet竞赛中取胜可能说服他。

脸部识别

在这个竞赛中,每个团队在由1,000,000张手动标注了所属类别的图片上训练计算机程序。训练后,用新图片对这些程序进行测试,要求返回该图片所属类别。它们允许给出5个答案,如果正确的答案不包含在其中的话,则视为测试失败。过去的获胜者大概有25%的测试失败率。2012年Hinton实验室团队使用深度学习获胜,仅有15%的测试失败率[4]

“深度学习践踏了其他技术”,LeCun说道(他并不在该团队中)。这次胜利让Hinton赢得了Google的兼职工作,Google在2013年5月用该程序更新了Google+图片搜索。

Malik被说服了,他说道:“在科学中,你不得不被经验证据所动摇,而这曾是明显的证据”。从这里开始,他将该技术做了修改,打破了另一个视觉识别竞赛记录[5]。许多人也是这么干的:在2013年,所有ImageNet竞赛参与者都在使用深度学习。

在图像和语音识别取得巨大成功后,研究者们将兴趣转移到在自然语言理解中融入深度学习,包括理解人类对话以转述或回答问题,例如将一种语言翻译为另一种语言。同样的,这些问题是通过硬编码规则和明文统计分析解决的。该技术现有的产品例如Google翻译,它能产生可被理解的结果(尽管有时很滑稽),但还远远未达到人类翻译的流畅程度。“深度学习将有机会做出远比现在好的多的东西”,群外包(crowd-sourcing)专家Lius von Ahn,他的公司Duolingo(位于Pittsburgh, Pennsylvania)依赖于人类而不是计算机做文本翻译工作,“所有人都同意时是尝试不同的方法的时候了”。

深度科学(DEEP SCIENCE)

同时,深度学习已被证明能用于一系列科学任务。Hinton认为深度网络擅长寻找数据集中的模式。2012年,制药公司Merck提出悬赏,提供给那些能击败它最好的帮助预测有用的替代药物的程序的团队。这项任务是从数据库中获取超过30,000个分子数据项,每个分子数据项包括几百个数值化学属性描述,根据这些信息预测每个分析对15种不同的分子的影响。Dahl和他的同时用深度学习系统赢得了$22,000,“我们将Merck的程序提高了15%左右”。

生物学家和计算研究者,包括Sebastian Seung(他在Massauchusetts Institute of Technonogy in Cambridge工作),使用深度学习帮助他们分析大脑切片的三维图像。这些图像中有表示神经元连接的乱作一团的线;这些连接需要被标识出来以便比对和计数。过去是招募研究生来跟踪这些线的,但随着项目的进展,预期的神经元连接数量达10亿,最好的办法还是自动化这一过程。深度学习看起来是自动化的最好方法。Seung目前用深度学习程序映射视网膜中一大块神经元,并将结果放在群外包在线游戏EyeWire供志愿者验证。

来自Seattle Washington大学的计算机科学家William Stafford Noble已将深度学习应用于训练程序根据氨基酸序列预测最终的蛋白质结构,包括蛋白质结构中是部分形成螺旋还是环、溶剂是否能够轻易的渗入结构中等。Noble目前在小数据集上训练他的程序,在不久的将来他将转移到蛋白质数据银行(Protein Data Bank,目前已有10万个结构的仓库)数据集上。

对计算机科学家来说,深度学习带来了巨大的经济利益:Dahl正忙于思考再次开始研究的机会,LeCun上个月被Facebook聘用领导一个新的AI部门。深度学习技术为AI带来有保障的成功。Ng指出深度学习恰好有这样的特征:你给它提供更多的数据,它的结果会越来越好;深度学习算法还不仅仅是这样,它们毋庸置疑的是最好和最简单的,那正是它能够给出承诺的原因。

不是所有的研究者们对此持坚定态度。去年9月份成立的致力于AI研究的Seattle Allen学院的主管Oren Etzioni声明他不会从大脑中获取灵感。他说道:“就像我们发明了飞机,飞机中最成功的设计并没有在鸟类生物学中有所体现”。Etzioni的目标是发明这样一台计算机,给它一堆扫描过的课本,它能够通过小学程度的科学测试(最终通过大学入学考试)。为通过测试,计算机必须能够阅读和理解图片和文本。Allen学院将怎样实现目前还没有确定,但Etzioni没有将神经网络和深度学习视为第一选择。

另一种具有竞争力的思想是依赖于可以根据输入的事实进行推理的计算机,而不是让计算机尝试抓取数据学习生成自己的事实。所以计算机能够用断言来编程,例如“所有女孩都是人”。从而,当有文本提到女孩时,计算机能够推理出文本中的女孩也是人。若没达到百万数量级,也需要数千条事实来覆盖现实世界中的普通常识。IBM Watson计算机采用大致一样的方法,2011年它在电视游戏节目Jeopardy中战胜了顶级的人类参与者。尽管如此,这家位于Austin, Texas的公司的首席技术官Rob High声明他们已试验性的将深度学习用于提高模式识别效果。

Google也在扎紧篱笆。尽管它有采用了Hinton的深度学习网络的最有优势的图片标注(picture tagging),但它仍有其他有大量资金投入的部门。2012年10月,Google聘用Ray Kuezweil寻找帮助计算机从经验中学习的方法,他采用的技术包括但不限于深度学习。去年5月份,Google获得了来自Burnaby, Canada的D-Wave制造的量子计算机(quantum computer)(见Nature 498, 286-288, 2013)。这台计算机能够保证非AI任务,例如复杂的数学计算(尽管它可以)理论上可以应用于深度学习。

尽管深度学习获得了成功,但它仍处于发展时期。Dahl指出,深度学习是未来的一部分,它的神奇之处在于我们做了这么多的工作只涉及了其很少的一部分,我们才勉强起步。

Nicola Jones是来自Vancouver, Canada的自由撰稿人。

参考文献

[1]       Le, Q. V. et al. Preprint at http://arxiv.org/abs/1112.6209 (2011).

[2]       Mohamed, A. et al2011 IEEE Int. Conf. Acoustics Speech Signal Process.http://dx.doi.org/10.1109/ICASSP.2011.5947494 (2011).

[3]       Coates, A. et alJ. Machine Learn. Res. Workshop Conf. Proc. 28, 1337–1345 (2013).

[4]       Krizhevsky, A., Sutskever, I. & Hinton, G. E. In Advances in Neural Information Processing Systems  25; available at go.nature.com/ibace6.

[5]       Girshick, R., Donahue, J., Darrell, T. & Malik, J. Preprint at http://arxiv.org/abs/1311.2524 (2013).

[翻译]深度学习的机器(The learning machines)的更多相关文章

  1. 深度学习概述教程--Deep Learning Overview

          引言         深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里, ...

  2. 贝叶斯深度学习(bayesian deep learning)

      本文简单介绍什么是贝叶斯深度学习(bayesian deep learning),贝叶斯深度学习如何用来预测,贝叶斯深度学习和深度学习有什么区别.对于贝叶斯深度学习如何训练,本文只能大致给个介绍. ...

  3. 深度学习加速器堆栈Deep Learning Accelerator Stack

    深度学习加速器堆栈Deep Learning Accelerator Stack 通用张量加速器(VTA)是一种开放的.通用的.可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈.设计了VTA来 ...

  4. face recognition[翻译][深度学习理解人脸]

    本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...

  5. 深度学习论文笔记-Deep Learning Face Representation from Predicting 10,000 Classes

    来自:CVPR 2014   作者:Yi Sun ,Xiaogang Wang,Xiaoao Tang 题目:Deep Learning Face Representation from Predic ...

  6. 最实用的深度学习教程 Practical Deep Learning For Coders (Kaggle 冠军 Jeremy Howard 亲授)

    Jeremy Howard 在业界可谓大名鼎鼎.他是大数据竞赛平台 Kaggle 的前主席和首席科学家.他本人还是 Kaggle 的冠军选手.他是美国奇点大学(Singularity Universi ...

  7. 深度学习阅读列表 Deep Learning Reading List

    Reading List List of reading lists and survey papers: Books Deep Learning, Yoshua Bengio, Ian Goodfe ...

  8. 深度学习框架Caffe —— Deep learning in Practice

    因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...

  9. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

随机推荐

  1. xml数据解析调研

    XML数据解析http://www.tuicool.com/articles/Nraau2(必用) http://www.cnblogs.com/pengyingh/articles/2342699. ...

  2. android webview 漏洞背后的节操

    by superhei 2013/09/06 [注:本文提到的都是我个人的观点,该行为也是私人行为,与任何组织.公司无关.另:水军请自重!] 一.前言   这两天,一个2+年前的android web ...

  3. bzoj 2730: [HNOI2012]矿场搭建

    #include<cstdio> #include<cstring> #include<iostream> #define M 508 using namespac ...

  4. 解决visualsvn监听ip 错误的问题

    系统重启+休眠之类的,弄几次,莫名其妙的svn就连接不上了, 有时候启动不起,有时候是启动连接不上,发现监听的ip错了 TCP    [::]:443               [::]:0     ...

  5. .className = "highlight";.setAttribute("class", "highlight");

    document.getElementById("top").innerHTML = newHTML; document.getElementById("contact& ...

  6. WebBrowers & HtmlViewers collection

    WebBrowers & HtmlViewers collection 浏览: 加入我的收藏 楼主: THtmlViewerhttps://github.com/BerndGabriel/Ht ...

  7. GITHUB的初次使用

          对于一个从未用过  接触过github的人来说,达到一个最终的成功真可谓是历经千辛万苦.在这里真的感谢我们的小组组长,我遇到的问题除了自己的查到的,剩 下的基本上都是组长帮我解决的.当所有 ...

  8. jQuery对表单元素的取值和赋值操作代码

    使用常规的思路:$(“#keyword”).value 取值是取不到的,因为此时$(‘#keydord’)已经不是个element,而是个jquery对象,所以应该使用:$(“#keyword”).v ...

  9. java内部类和外部类

    1.使用static可以声明一个内部类, 可以直接在外部调用 class Outer{ // 定义外部类 private static String info = "hello world& ...

  10. Cisco IOS debug command reference Command A through D

    debug aaa accounting through debug auto-config debug aaa accounting : to display information on acco ...