正文
图:Geoffrey Hinton
2. 想像不到的实习生
Dean 说,在谷歌大脑诞生的一两年左右,该部门在开发一岁儿童智能水平的机器上取得非常好的结果。其语音识别团队将他们的旧系统和神经网络结合了起来,实现了近 20 年来最好的提升。他们的系统的物体识别能力也提升了一个数量级。这并不是因为谷歌在这一年突然想出了什么突破性的方法,而是谷歌开始向其中投入更为显著的资源和人才。
作为当时一些概念的提出者和优化者,Geoffrey Hinton 在谷歌大脑成立的第二年加入谷歌大脑,和吴恩达共事(吴恩达现在在百度领导着 1300 人的人工智能团队)。当时,Hinton 只想离开其在多伦多大学的岗位 3 个月,所以因为一些合同上的原因他的身份是实习生。在「实习」培训期间,Hinton 还问了「什么是 LDAP(一种用户登录方法)?」这样的问题。那里有很多 25 岁左右的聪明学生一起培训,他们只是对深度学习有所耳闻而已,他们会问:「这个老头子是谁?为什么他在这里实习?」
Hinton 说:「在午餐时间,有人大叫:『Hinton 教授,我上过你的课!你在这里做什么?』自那以后,一切都变好了。」
几个月后,Hinton 带着两个学生在 ImageNet 图像识别竞赛上展现出了真正激动人心的成果。谷歌很快就接触了 Hinton,要给他和他的学生工作邀请。他们接受了。Hinton 说:「我认为他们对我们的知识产权感兴趣,结果发现他们感兴趣的是我们。」
Hinton 来自一个老式的英国家庭,希望在天文学或流体动力学领域做出一些小的贡献。他有一位伟大的曾曾外祖父乔治·布尔——计算机基础的布尔逻辑的提出者,还有一位曾曾祖父是著名外科医生,他的父亲是一位有冒险精神的昆虫学家,他的叔叔是洛斯阿拉莫斯国家实验室研究员……他在剑桥和爱丁堡上学,然后在卡内基梅隆任教,最后落脚多伦多大学,并在那里度过了他的半生时间(他的研究工作得到了加拿大政府的大力支持)。我在当地的谷歌办公室拜访了他,他会说一些奇怪的话,比如说:「计算机会比美国人先理解讽刺。」
自 60 年代末 Hinton 在剑桥的本科阶段以来,他就一直在研究神经网络,被视为这个领域的先驱。但在那个时候,当他谈论机器学习时,人们看他就好像在谈论托勒密球或水蛭。那时候神经网络被当作是未经证实的愚蠢想法。造成这种看法的主要原因是当时一个被炒作过度的项目:Perceptron(感知器)——康奈尔大学心理学家 Frank Rosenblatt 在 50 年代末开发的一个人工神经网络。该研究的资助者美国海军预期其「能走路、说话、看见、书写、复制自己和意识到自己的存在」。结果没让任何人满意。
美国的人工智能元老 Marvin Minsky 也在他 1954 年普林斯顿的论文里研究过神经网络,但自那以后,他渐渐地就对 Rosenblatt 对神经范式的夸张说法感到厌倦了(他们当时也在竞争美国国防部的资金)。后来,Minsky 和他的 MIT 同事出版了一本书,证明有一些非常基本的问题是感知器无法解决的。
Minsky 对感知器的批评只扩展到了一层(layer)的网络,而后来,他却又阐释了和当代的深度学习非常相似的思想。但那个时候 Hinton 已经明白使用很多层的网络可以执行复杂的任务。对于神经网络的最简单的描述是:基于发现数据中模式的能力来进行分类和预测。如果只有一层,你只能发现一个简单模式;有更多的层时,你甚至能发现模式的模式。比如图像识别,现在这项任务依赖于一种被称为「卷积神经网络」的技术(该技术是由 Yann LeCun 在其 1998 年的开创性论文中提出的,他是 Hinton 的博士后)。该网络的第一层学习非常简单的「边(edge)」,意味着一个 off-pixel 之后跟着一个 on-pixel,或相反。后续的每一层都会在前一层中寻找模式。边的某一个模式可能是圆或三角形,而圆或三角形的模式又可能是一张脸……这种技术有点类似于人类视觉系统处理到达眼睛的信息的方式。在每一个感知步骤,不重要的细节会被丢弃。如果边、圆、三角形之类的模式能够组合成一张脸,那么我们的目的就达到了。
多层的深度神经网络的问题在于试错(trial-and-error)的部分会随着深度的增加而越来越复杂。这就像让孩子学习把玩具放进身边的箱子 A,一下子就学会了。如果让他学习带着玩具走过一段很多分支的路然后放进 A 箱,那就可能会在中间走错路。怎么让机器学会这样复杂的指令呢?为了解决这个问题,Hinton 及其同事在 70 年代末和 80 年代的停滞期发明(或者说重新发明)了一个解决方案,然后计算机科学家对神经网络的兴趣有了短暂的恢复。Hinton 说:「人们对此感到兴奋,但我们炒作过度了。」不久之后,计算机科学家又继续将 Hinton 看作是怪人和神秘主义者了。
但这些思想却受到了哲学家和心理学家的欢迎,他们将其称为「联结主义(connectionism)」或「并行分布式处理(parallel distributed processing)」。Hinton 说:「少数几个人的想法就让这个思想继续燃烧,这是一个不错的神话。在人工智能领域这确实是事实,但是在哲学领域,很多人相信这是正确的,他们只是不能实践。」尽管 Hinton 得到了加拿大政府的资助,但他自己也不能做到。「那时候的计算机算力和数据都不够。我们这边的人常常说:『呃,如果我有一台真正大的机器,它就有效果。』这可不是什么很有说服力的论据。」
3. 深度学习的深度解释
人脑中神经元的平均数量的数量级大概是 1000 亿。其中每一个神经元都与其它 10000 个神经元相连,这意味着突触的数量是在 100 万亿到 1000 万亿之间。我们目前仍然远远不能构建那么大规模的网络,但谷歌大脑的投资已经帮助实现了大约小鼠大脑的人工神经网络。
为了理解为什么规模会如此重要,你首先要理解这项技术的细节。有些人认为人工智能可以直接从图书馆或网络上读取理解知识,但事实并非如此。它们的工作是在数据中寻找模式——先是基本模式,然后寻找更复杂的模式。
如果这个简短的解释不够说明问题,没有技术背景的读者可以阅读下一节关于猫的故事(当然这一节也有猫)。
假设你要在老式的符号式人工智能模型上编程一个猫识别器。那么你需要花大量的时间来帮机器定义什么是「猫」——四条腿软软的毛、尖尖耳朵喵喵叫……所有这些信息组合起来构成了一只猫。然后你向其展示一张图片用于识别。首先,该机器需要分解图片中不同的元素,然后再将这些元素和它记忆中的信息进行比对。如果有四条腿、尖耳朵、有胡须、有尾巴、表情傲慢,那么这就是一只猫。但是这个模型却不能识别苏格兰折耳猫——这种有基因缺陷的猫的耳朵耷拉在头上。
现在让我们来尝试用神经网络识别猫。我们并不会人工编写猫的定义,它们的定义存在于大量互连的「开关」之中,就像一条带有大量分岔路的道路。在这团开关的一边是输入的图片,在另一边则是对应的输出标签。然后你让网络自己通过调整其中的每一个开关来将一个输入映射到对应的输出。这个训练过程就像是走隧道迷宫一样,目的就是要将输入和合适的输出连接到一起。训练数据越多,隧道的数量和复杂性就越大。一旦训练完成,这团开关之中就有了大量的隧道,可以在其从未见过的数据上做出可靠的预测,这就是所谓的「监督学习」。
为什么这样的网络需要如此之多的神经元和数据呢?因为从某种程度上讲,该网络的工作方式就像是一种「机器民主」。可以假想你想要计算机进行 5 种分类,你的网络由数亿个神经元「投票人」组成,他们可以进行 5 个选项的投票:猫、狗、蜘蛛猴、勺子和除颤器。然后你拿出一张图片问:这是猫、狗、蜘蛛猴、勺子和除颤器中的哪一个?投票者开始投票,然后网络统计员根据大多数的意见认为这是狗。
然后你告诉他:「不对,这是猫。再投一次。」
然后,统计员回头检查哪些投了猫,哪些选了其它的。选了猫的投票者获得了加权——「一票可当两票用」(至少在选择猫的时候,选择其他分类时权重可能不同);这样不断调整知道得到正确的答案。所以重要的不是单个神经元的票,而是整个投票的模式。你的投票者越多,你就能获得越多的模式。如果你有数百万个投票者,你就能获得数十亿种模式。每一种模式都可以对应一种结果,这些不同的模式归类成不同的类别。训练的数据越多,网络就越了解一种模式属于哪一个类别,就能在未来遇到没有标注的图片时做出更准确的分类。
计算机科学领域对这些思想有如此大的抵触的部分原因是其输出只是基于模式的模式(patterns of patterns) 的预测,这不会是完美的,而且这样的机器也不能为你定义到底什么是一只猫。只有当它看到一只猫时,它才能知道那是猫。但这个方法的最主要缺点还是数据量。要让神经网络理解一只猫是在懒洋洋晒太阳还是躲在阴影里注视世界,我们需要给神经网络送入大量大量的数据,需要大量大量的投票者。而这是很难满足的需求。
值得一提的是,神经网络的概率性本质使其无法胜任某些任务。但有些情况我们又需要它完美,比如自动驾驶汽车的应用。但这不是唯一的缺陷。监督学习是一种基于有标签数据的试错过程。也就是说,机器的学习使用了人类最先设计的分类,这个过程有很大程度上的人类参与。如果你的训练数据存在对女性或少数族裔的偏差,那么最后得到的模型也会是有偏见的。
4. 猫识别论文
在最初的一两年,谷歌大脑设计出了具有 1 岁孩童智力的机器,这些努力让其最终从 X 实验室毕业,进入了公司更宽阔的研究中。(谷歌 X 负责人曾提到谷歌大脑曾支付过 X 的所有花费)。而那时的谷歌大脑团队依然不足 10 人,也不清楚最后会得到什么。但即使如此,他们仍在思考接下来会发生什么。人的思想不需要多少时间就能学会识别球和其它东西,时间或长或短。然后,开始进军语言。
谷歌大脑在这个方向迈出的第一步是一篇关于猫的论文,也让谷歌大脑出名了。
这篇论文证明的是带有十亿「突触」连接的神经网络(要比当时公开的任何神经网络都要大数百倍,当然也要比我们大脑小无数数量级)能观察原始的未标记数据,从而为自己挑选出高级的人类概念。
谷歌大脑研究员像网络展示了 YouTube 视频的数百万张静止图片,无论是翻滚的猫,还是面部清楚的猫,神经网络会先剥离出一个稳定的模型,能毫不迟疑地识别出这是猫。机器之前从未被编程过有关猫的先验知识,它直接接触世界、为自己抓取想法。
当时大部分的机器学习还受限于标记数据的质量。猫识别论文证明机器也能过处理原始为标记数据,即使这些数据人类之前从未建立先验知识。这不仅是猫识别研究上的重大进展,也是整个人工智能的重大进展。