给计算机以数据,够它用一毫秒;授计算机以搜索,够它用一辈子。
19
60年,IBM意识到了自己的问题。4年之前,在1956年夏天的一场大会上,一群顶尖学者汇聚在一起讨论如何制造一台“模拟人类各方面智能”的机器。这些年轻气盛的科学家们耗时两个月时间,在雄伟的佐治亚尖塔和郁郁葱葱的达特茅斯学院花园里进行头脑风暴。这次活动的组织者曾大胆预言:“如果我们精心挑选出一组科学家在一个夏天内通力合作,至少一个关于计算的问题将会获得重大推进。”[1]他们达成共识的事儿也许不多,但是通过此次活动,他们却一致认可了“人工智能”这一概念,其中一位提出者正是活动的主持人——数学家约翰·麦卡锡。这真是个性急的年代!
IBM顺从的机械仆人
在这场严肃的讨论中,似乎没有几个人注意到大会乐观的目标完全没有达成。但是这并没有打击到他们表达自己对新生领域的热情。他们的预言很快就被以大众兴趣为导向的出版物如《科学美国人》和《纽约时报》等选作头条新闻。[2]
大会组织者之一的纳撒尼尔·罗切斯特(Nathaniel Rochester)同时也是IBM沃森研究中心(Watson Research Lab)的明星研究员,他被发掘为IBM初期人工智能研究的领导者。但是随着他的团队在计算机程序上的研究(即下象棋和证明数学定理的程序)公诸于世,投诉的声音开始在一个谁也没有想到的领域出现了。
传说中的IBM明星销售团队关注的唯一重点是把最新的数据处理设备卖给产业界和政府。销售人员因为其好胜的策略和能够平息所有异议而出名,而这样的销售团队在给IBM总部的报告中说,其他公司的决策者们对于在人工智能上投入的努力能走多远疑虑重重。取代备忘录和寄送账单的低级办事员是一回事,但当IBM推荐给经理和主管们的计算机可能有一天会威胁他们自己的工作时,就是另一回事了。
为了迎接这次挑战,IBM的内部报告建议公司应该停止所有关于人工智能的研究,同时关闭罗切斯特的新部门。[3]可能也同样是为自己的工作而担心,所以IBM的管理成员不仅实施了这些建议,还给自己的销售人员传授了一句简单的回应:“计算机只能按照编好的程序工作。”[4]
这句简单直接的话是半个世纪内传播最广的文化模因之一。在世界范围内,IBM在装有特殊空调的“计算机室”的活动地板上安装了“潘多拉的魔盒”,而这句话巧妙地去除了人们对于神秘而多彩的魔盒的担心。没有什么可怕的:这些电子大脑只是顺从的机械仆人,它们会盲目地听从你的指挥!
程序员以顺序、按部就班的处理方式工作,他们把问题分解成更加容易管理的部分(即“结构化编程”),从而让问题更容易得到解决,可能在今天也是这样。计算机曾经是一种单片电路设备,它从有限的内存中加载数据。把两台计算机连起来,也即网络,是闻所未闻的事情,更别说接入在别处产生和储存的大量信息了。大部分程序可以被形容为“做这个,然后做那个”指令的顺序事件。反反复复。
计算机可以自动成为一个专家吗
虽然这个领域的目标很崇高,但是那时的人工智能程序加固了这种范式。跟随着创始人指定的方向,人工智能早期的很多努力都专注于通过把逻辑公理串起来从而获得结论,这是一种数学形式的证明。其结果就是,引人关注的领域通常都从属于逻辑分析、规划、定理证明以及解决谜题。这些“玩具”问题的另外一个优势在于,它们并不需要接入大量来自真实世界的杂乱数据。几乎可以确定的是,在当时,这样的数据压根儿就不存在。
在当时的背景下,这些努力可能曾经被看作扩展计算机用途的下一个里程碑。最初我们对于机器的构想是一般用途的计算器,比如在第二次世界大战期间以军事目的构建的弹道学表;IBM已经成功地偃武修文,不仅把类似的技术应用到了数字上,同时也用在了处理字母、词语以及文件上。人工智能研究者只是进一步把可以被处理的数据类别扩展到任何类型的符号上,这类符号包括早已存在的符号,也包括因为特殊目的而新发明的符号,比如下象棋。最终,这种风格的人工智能被归纳为符号系统法(the symbolic systems approach)。
但是早期的人工智能研究者很快就遇到了一个问题:计算机似乎没有强大到可以完成很多有趣的任务。研究计算理论神秘领域的形式主义者认为,建造更快的计算机并不会解决这个问题。无论计算机有多快,它也无法驯服所谓的“组合爆炸”(combinatorialexplosion)问题。用按部就班的分析方式解决真实世界的问题时,总会遇到精疲力竭的情况,就像是一座城市的大片土地上都在大兴土木的时候,城市的供水水压自然就会下降。想象一下,如果你想找到从旧金山到纽约的最短行车路线,而你的方法是测量每一条你可能会走的路,那么你也许就没法出发了。甚至在今天,现代的地图App也不是用这种方式给你导航的,可能你也已经注意到了,这些App给你指的路有时并不是效率最高的。
接下来几十年的人工智能研究可以被形容为对于逻辑合理的问题的处理,随着问题变得越来越复杂,编程的方法很快就变得过时了。很多努力都转向了启发法(heuristics)研究,这种方法可以被粗略地解释成把问题减小到可管理程度的“经验法则”。基本上,你需要在可用计算能力的范围内尽量多地寻找答案,但是当情况变得严峻时,你需要根据法则来绕过那些浪费时间的无用备选方案。这个过程被称为“修剪搜索空间”(pruningthe search space)。
阶段性的辩论爆发了,争论的重点在于这些程序中的智能究竟存在于哪里。“启发编程”的研究者们很快就意识到,重点并不在于对答案的机械搜索,也不在于把逻辑命题串起来的过程,而在于用于修剪搜索空间的规则。
大多数规则来自问题所属领域的专家,比如象棋大师或者医生。专门采访专家并把专家的技能融入到人工智能程序的程序员被称为“知识工程师”(knowledgeengineers),最终生成的程序被称为“专家系统”(expert systems)。这些程序肯定是朝正确的方向又进了一步,但是很少有程序能够解决真实世界的现实问题。
所以这自然就会产生一个疑问:专业的本质是什么?专业从何而来,计算机程序可以自动成为一个专家吗?显而易见的答案就是,你需要大量的练习以及很多和相关案例接触的机会。一个成熟的赛车手并不是生来就具有把汽车开到极限速度的能力,艺术大师也并不是抱着小提琴出生的。但是,你如何才能让计算机程序从经验中学习呢?
神经网络,让计算机模拟人脑
一小组边缘人工智能研究者从一开始就认为模仿人类大脑功能可能才是最好的方法。他们认识到“做这个,然后做那个”并不是为计算机编程的唯一方式,而且大脑似乎采取了一种虽然不同,但是更加灵活的方法。问题在于,我们对于大脑知之甚少。另外,大脑中还包含很多以复杂方式连接的细胞,这些细胞被称为神经元,它们彼此之间交换着化学信号和电信号。
研究者们在计算机上模拟了这种结构,至少是以一种非常基本的形式。他们把同一个程序复制了很多份,以模拟神经元的结构:神经元会接收一束输入信号,同时也制造一个输出信号,再重复这个循环。研究者们用这些程序组成不同的网络层,把底层的输出接入到高层的输入。这些连接经常都用数字表示权重,0可能意味着没有连接,而100则意味着强连接。这些程序的精髓在于其自动调整权重的方式,程序会根据出现在网络底层输入端的示例数据而作出调整。研究者只需要提供尽可能多的例子,然后拉动开关在系统中上下传导这些权重,直到系统能够稳定下来。[5]
根据人工智能研究者喜欢人格化的癖好,他们把这些程序称为“神经网络”(neural networks)。但是这些程序是否真的能够像大脑一样工作并不是重点:它只是另一种编程方法而已。
对于人工智能来说,符号系统法和神经网络的最大区别在于,前者需要程序员预先定义符号和逻辑规则来组成问题的论域,而后者则仅需要程序员提供足够的示例。一种方法是告诉计算机如何解决问题,另一种方法则是给计算机展示示例,告诉它你想让它做什么。这听起来不错吧,但是在现实中,这种方式并不见效——至少刚开始时是这样。
最早在神经网络方向的努力之一来自康奈尔大学的弗兰克·罗森布拉特(Frank Rosenblatt)。1957年的时候他把自己的程序化神经元称为“感知机”(perceptrons)。[6]他展示出,如果有足够的训练,一个由他的感知机组成的网络可以学会识别(或分类)输入信号中的简单图案。问题在于,就像符号系统程序一样,其结果主要是对于“玩具问题”的证明。所以很难评估这种方法的最大潜力,而且罗森布拉特的研究主张也触怒了一些友好的学术竞争者,特别是在MIT。
两位MIT的杰出研究者接受了这场挑战,他们发表了一篇影响很广的论文,证明如果在特定方面受到限制,感知机网络就没办法区别特定的输入信号,除非最底层至少有一个感知机和下一层的所有感知机相连,看起来这是一个严重的缺陷。[7]但是在现实中,却并非如此。实际情况中,稍微复杂一些的网络就能轻松克服这个问题。但是科学和工程学并不总是以理性的方式前进,只不过是一个能够被证明并且指出感知机有局限性的建议就让整个方法蒙受质疑。很快,大部分研究资金(同时还有研究进度)就枯竭了。
机器学习,一个失败者的逆袭
至此,比较熟悉这个领域的读者可能会认为我在复述一个陈旧的历史故事,这个故事的结局是一个失败者的逆袭:20世纪90年代和21世纪初,我们见证了这种老技术的回潮,同时还伴随着具有说服力的成果。这些程序被重新包装为机器学习和大数据,同时也因为先进的架构、技术以及对统计学的利用而变得更加强大,这些技术开始在真实照片中识别物体、在口语中识别词语,还能识别以其他任何形式呈现出一定模式的信息。[8]
但是除了“研究者想到创意→创意被推翻→创意赢得世界”的故事之外,还有另外一个更深刻的故事。和今天的情况正好相反,机器学习在20世纪晚期没有能力和符号系统法一争高下,这种现象的背后还有一个重要的原因。我们通常所说的信息技术,特别是计算机改变了:既不是一点点改变,也不是很大的改变,而是发生了彻头彻尾的改变,今天的计算机从根本上说和50年前的已经完全不同了。
这种变化的规模之大,让我们很难想到任何有意义的类比。“指数级增长”(exponential growth)这个词总被不准确地到处使用,但很多人并不理解这个词的真实含义。指数级增长其实很好定义——随一个固定数字的幂的变化成比例改变的数量,但是人的大脑很难理解其中的意义。100、1 000、10 000(10的幂),32、64、128(2的幂)都是容易理解的例子。但是这些数字很快就会大得令人难以置信。只需要继续重复上述例子中的运算80次,得到的数字就比估算的整个宇宙中的原子数量还要大。
至少在之前的半个世纪,计算的重要指标如处理速度、晶体管密度以及内存等,差不多经过每18~24个月就会翻倍,而这就是指数级增长(2的幂)。在计算机革命的开始阶段,没人能够断言这些机器的能力会在一段时期内实现稳定的指数级增长。英特尔的联合创始人戈登·摩尔(Gordon Moore)在1965年就注意到了这样的趋势(即摩尔定律)。而且令人称奇的是,这种模式除了少数几次波折之外,直到今天仍然没有减弱的迹象。[9]这样的趋势可能明天就会结束,就像忧虑的行业观察者们在过去几十年中警告的那样。但是到目前为止,其发展势不可挡。
你可能在毫不知情的情况下经历了这个无与伦比的成就。你的第一部智能手机可能存储空间很大,有8G的内存,对于当时来说已经算是一个小小的奇迹了。两年后,如果你想升级的话,可能会扩充到16G内存,然后是32G,再然后是64G。世界没有终点,你的手机现在的内存是3次升级前的8倍,而价格却没怎么变。但如果你的车百公里油耗是6年前的1/8,比如百公里油耗为1.2升,你可能就会注意到这样的变化了。
人工智能的
力量
HUMANS
NEED
NOT APPLY
如果你在接下来的10年内,每两年升级一次手机,很有可能你10年后的手机会拥有2T(2 000G)内存。如果百公里油耗有同样的改进,那么你的车百公里油耗将低到0.04升。你用3升汽油就可以在纽约和洛杉矶之间往返,然后车还有足够的油去亚特兰大过冬,到了那只要再加上3升油就够了。
想象一下,像这样的百公里油耗会如何改变生活。汽油相当于免费了;而石油钻探几乎会停滞;航空公司和海运公司会争先恐后地采用最新的超节能引擎技术;包裹递送、货运、机票以及消费品的成本都会大幅下降。这种极快的变化速度正是计算机行业所在经历的,这种变化的次级效应正在改变世界各地的商业和劳动力市场。
当你的手机有了2 000G的存储空间时,又意味着什么呢?让我们作个类比,你的大脑含有100个“G神经元”(我们并不是说20字节的计算机内存可以和一个神经元一样强大,但是你应该领会到了其中的意思)。那么在10年或20年内,从理论上说,你的手机很有可能会拥有和你的大脑同样强大的处理能力。今天,我们甚至很难想象能用这样的能力来做什么,而这样的情景离我们并不遥远。
对我的孩子来说,这个故事就像一个絮絮叨叨的老人讲述过去的故事一样。但是对我来说,却是我自己的故事。
1980年冬天我在斯坦福大学过寒假,帮助斯坦福国际研究院(SRI International)的一些研究者建立了一个程序。这个程序可以根据数据库回答用英语提出的问题,虽然这个系统的语言能力和今天相比还很初级,但是团队的领导者加里·亨德里克斯(Gary Hendrix)却已经用这个演示筹集到了风投的资金,他给这家新公司起了个很有智慧的名字:Symantec。
我几乎与世隔绝地在地下室里待了两个星期,拼凑了一个可以支撑这个项目的灵活的数据库架构。亨德里克斯借给我一台当时最先进的个人电脑——Apple II。这台无与伦比的机器可以储存软盘上的信息,还支持最高4.8万字节的内存。换个角度理解一下,Apple II可以存储时长1秒CD音质的音乐。与之相比的是,我今天携带的手机有64G的容量,可以容纳长达12天CD音质的音乐。我手机的内存是那台AppleⅡ电脑的100万倍,而价格只有它的零头。
100万倍意味着什么?想想蛇爬行的速度和国际空间站在轨道中行进的速度,而这两者之间的倍数只有50万。我现在打字的这台电脑的计算能力比1980年整个斯坦福大学人工智能实验室的计算能力总和还要强得多。
我们可以比较今天的计算机和过去的计算机的处理能力和内存,而网络的发展甚至都无法被有效地量化。1980年时,网络的概念几乎不存在。互联网协议(InternetProtocol)——也就是我们今天称为IP地址的基础,在1982年之前还没有实现标准化。[10]今天,上百亿台设备几乎在一瞬间就可以分享数据,例如在你每次做演示以及打电话或发送信息时。持续增长的不同类型的海量数据存储在各种设备上,而你通过互联网就可以访问它们。
这难道不令人惊讶吗?
蠢蠢欲动的新一代智能手机
这些变革对于人工智能不同方向的研究成果又会造成什么影响?在某一时刻,数量之间巨大的差异变成了质量上的差别。虽然从每天甚至每年的角度上看,进步是渐进式的,但是计算机的进化史肯定发生了质变。你可能已经想到了,机器能力的巨大差异可能需要不同的编程技术。让蜗牛快跑的方式肯定和加速宇宙飞船的方式不同。
最初的符号系统适合于那个时代的计算机。因为那时几乎没有可用的计算机可读数据,也没办法存储任何大容量的数据,研究者们煞费苦心地采访专家从而获得精炼知识,他们利用手工方式打造了那个时代的人工智能。他们的关注点在于建立寻找解决方案的有效算法,因为有限的处理能力无法与他们的雄心壮志相匹配。
替代前者的神经网络(如今更多地被称为机器学习)试图从示例中学习,对于早期的计算机来说,这种方法需要的内存和数据太大了,以至于无法展示出有意义的结果。当时没有足够大的示例源可以供给程序,而且就算有足够多的数据,你能模拟的“神经元”数量也远远不够,所以除了学习简单的图案之外,也无法处理任何其他信息。
但是随着时间流逝,形势发生了逆转。今天的计算机不仅可以表征几十亿的神经元,而且拜互联网所赐,还能轻松接入海量可以用来学习的示例。和过去不同,采访专家并把他们的智慧硬塞进内存模块和处理器中已经不再重要了,与今天的系统相比,过去的系统小得可怕,而且极其缓慢。
智能洞察
这场技术革命的重要细节很容易被忽略。其到今天,专业机器学习程序的前途似乎无法限量。程序正在变得越来越聪明,而它们的聪明程度和接触到的示例数量成正比,同时,示例数据的体量也在逐日增大。机器不再依靠人来一点点地编纂和供给它们所需的见识,也不需要人来告诉它们如何解决问题,今天的机器学习系统的能力快速地超越了它们的创造者,它们解决的问题世上应该没有任何人能够应付得了。正如一句谚语,稍加改变后对于机器同样适用:给计算机以数据,够它用一毫秒;授计算机以搜索,够它用一辈子。
在大多数情况下,机器学习程序的创造者可以通过窥视其复杂并不断进化的构造来理解或解释这些系统知道什么或它们如何解决问题,就像我观察你的大脑然后试图理解你在想什么一样。这些程序在解释自己做什么以及怎么做上,虽不比人类专家强,但它们就是知道答案。对于机器学习系统最好的理解就是,它们发展出自己的直觉力,然后用直觉来行动,这和以前的谣言——它们“只能按照编好的程序工作”,可大不相同。
我愿意很高兴地告诉大家,IBM在很久以前就明白过来,开始在企业使命层面上接受人工智能的潜力并且认识到了人工智能的价值。在2011年时,IBM超级计算机沃森参加了益智问答游戏节目《危险边缘》(Jeopardy!)展示了IBM的内部专业能力,挑战了该节目的世界冠军肯·詹宁斯(Ken Jennings)并最终取得了胜利。IBM现在正把这项胜利扩展到更广阔的研究项目上,并且已经在该领域创造了属于他们自己的标志性术语:认知计算(cognitive computing)。没错,整个公司都围绕着这个创举开始重新组织。
值得一提的是,IBM的超级计算机沃森已经接入了两亿页内容,这些内容需要用4T的内存来存储。[11]从我现在写作的时间开始,3年之后,你可以用150美元在亚马逊买到4T容量的磁盘存储器。再往后两年,价格很有可能是75美元左右。或者如果你能等上10年,大概只花5美元就能买到了。无论如何,我们可以确信,沃森的后代将会成为你身边的智能手机。
注释:
[1].J.McCarthy,M.L.Minsky, N.Rochester, C.E.Shannon.A Proposal for the Dartmouth SummerResearch Project on Arti cial Intelligence,1995.
[2].http://en.wikipedia.org/wiki/Nathaniel_Rochester_(computer_scientist),最终修改于2014年3月15日。
[3].Committeeon Innovations in Computing and Communications:Lessonsfrom History, Computer Science and Telecommunications Board, National ResearchCouncil, Funding aRevolution.Washington, D.C.:National Academy Press,1999,201.
[4].DanielCrevier.AI:TheTumultuous History of the Search for Arti cial Intelligence.New York:Basic Books 1993,58,221n.
[5].稳定下来的技术术语是“收敛”(Convergence)。这类系统会否收敛和如何收敛则是很多研究的焦点。
[6].FrankRosenblatt.The Perceptron:A Perceiving and RecognizingAutomaton.Project Para Report no.85-460-1,CornellAeronautical Laboratory(CAL),January 1957.
[7].MarvinMinsky, Seymour Papert.Perceptrons:An Introduction to Computational Geometry,2nd ed.Cambridge:MIT Press,1972.
[8].到了这里,在人工智能领域工作的读者很有可能也会表示怀疑,因为我把神经网络、机器学习以及大数据混在一起,好像它们是一件事物的不同称呼一样。现实中,很多在后两种领域中使用的技术并没有任何类似神经元的设计。在我们这场讨论中,相同的元素在于它们都是用了相同的功能法:制造一个可以从大体量数据中提取信号剔除噪音的程序,然后这些信号可以作为理解该领域的特征或分类附加数据的依据。
[9].GordonE.Moore.Cramming More Components onto Integrated Circuits.Electronics 38,no.8(1965).
[10].RondaHauben.From the ARPANET to the Internet.last modified June 23,1998,http://www.columbia.edu/~rh120/other/tcpdigest_paper.txt.
[11].JoabJackson.IBM Watson Vanquishes Human Jeopardy Foes.PC World, February 16,2011.