科普一下:到底啥是人工智能?

早上发了这么一条:

Google Photos 自动帮我们家小盆友做了一段 1 分 10 秒的配乐视频,还自作主张给起了个中文名字叫“宝贝长得真快”,然后在我完全没准备的情况下推送给我。说实在的,以前 Google Photos 自作主张做的那些东东我大多看一眼就删掉了,唯有这次,很有感染力,很有保存价值,感动中。讲真,人工智能技术越来越人性化,越来越有趣了。
然后就有人评论说:这是基于规则做的吧?好多人的娃都被 Google Photos 送了同样名字的视频耶。这能算人工智能吗?

嗯,确实是呀,这个年头,人脸识别那么成熟,从一大堆照片里识别出同一个人,然后再根据时间顺序,找一组照片、视频,按固定模式做个剪辑——全是套路,全是套路,这里面看上去一点儿都不智能呀。

反过来想,这才几年的光景呀。几年前,大家不还是管人脸识别叫人工智能的吗?怎么今天就不待见人脸识别了?因为这技术不再惊艳了?唉,喜新厌旧的人类呀。

可再反过来想,我把这么多年拍的几千上万张照片一股脑都传到 Google Photos 上,人家没抱怨不说,还知道你根本没时间整理娃的照片,或者根本想不到要给娃做成长相册,人家主动帮你做了,还感动得你一塌糊涂,人情味儿、科技味儿俱在,这个还不算既有智商也有情商?还不算人工智能?

扯来扯去,问题来了:到底啥是人工智能呀?

先看看国内童鞋们要学人工智能的话,不翻墙会看到啥样子的定义。百度百科上,“人工智能”词条是一个叫“中国通信学会科普中国百科科学词条评审专家委员会”的几位专家贡献的。这么权威的专家写的词条,最最重要的前几段定义部分只注明了一个原始出处,是一篇名叫《人工智能,科大讯飞志在何方?》的宣传公关软文,真不知道这几位专家是想普及知识还是想推广产品。推究起来,百度百科那段定义其实也是抄的一本老套教科书啦,不信搜搜看,不但可以搜到教科书名,还可以搜到成千上万用这个定义作为公务员、成人教育等千奇百怪考试题的网页链接。一个技术词条中,核心定义的质量尚且如此,后面有关人工智能的展开论述部分,真不知要害到多少求知欲强的中小学生(高能预警:专家们后来又“不小心”混进了长虹智能电视的宣传文字)。

顺便说一句,知乎里,“人工智能”话题页面的定义大概是直接从百度百科拿下来的,也没注明原始出处,墙内网络环境里的知识传播现状可见一斑。(题外话:有空了是不是可以写个小程序,自动分析分析墙内网络里各种低水平知识的传播渠道和传播方向,看看受害者是公务员多些,白领多些,还是中小学生多些。)

书归正传,我以前读的教科书里,可没有那种佶屈聱牙、书卷气十足的定义。根据我的理解,历史上,人工智能的定义历经多次转变。一些肤浅的,未能揭示内在规律的定义很早就被研究者抛弃。但直到今天,被广泛接受的定义仍有很多种。具体使用哪一种定义,通常取决于我们讨论问题的语境和关注的焦点。

这里,贴一篇最近写的科普长文,简要列举、分析几种历史上有影响的,或目前仍流行的人工智能定义(关于这些定义在理论层面的相互关系,Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Third edition 总结得比较清楚,可以参考)。对这些定义的分析、讨论是一件相当有趣的事,这有些类似于古代哲学家们围坐在一起探讨“人何以为人”,或者,类似于科幻迷们对阿西莫夫的“机器人三定律”展开辩论。其实,很多实用主义者反对形而上的讨论,他们会大声说,“嗨,管他什么是人工智能呢?只要机器能帮助人解决问题不就行了?”

【注:以下文字意在科普,尽量讲得明白浅近些,科班出身的就没必要耽误时间来读了】

定义一:AI 就是让人觉得不可思议的计算机程序

人工智能就是机器可以完成人们不认为机器能胜任的事——这个定义非常主观,但也非常有趣。一个计算机程序是不是人工智能,完全由这个程序的所作所为是不是能让人目瞪口呆来界定。这种唯经验论的定义显然缺乏一致性,会因时代不同、背景不同、评判者的经验不同而套用不同的标准。但这一定义往往反映的是一个时代里最大多数的普通人对人工智能的认知方式:每当一个新的人工智能热点出现,新闻媒体和大众总是用自己的经验来判定人工智能技术的价值高低,而不管这种技术在本质上究竟有没有“智能”。

计算机下棋的历史就非常清楚地揭示了这一定义的反讽之处。

早期,碍于运行速度和存储空间的限制,计算机只能用来解决相对简单的棋类博弈问题,例如西洋跳棋,但这毫不妨碍当时的人们将一台会下棋的计算机称作智能机器,因为那时,普通计算机在大多数人心目中不过是一台能用飞快的速度做算术题的机器罢了。1951 年,英国曼彻斯特大学的 Christopher Strachey 编写了第一个会下西洋跳棋的计算机程序。1950 年代中期,IBM 的 Arthur Samuel 开发的西洋跳棋程序就可以和业余选手对抗了。1962 年,Arthur Samuel 的程序战胜了一位盲人跳棋高手,一时间成了不小的新闻事件(Jill Cirasella, Danny Kopec, The History of Computer Games, 2006),绝大多数媒体和公众都认为类似的西洋跳棋程序是不折不扣的人工智能。

可没过多久,不少粗通编程的人发现,计算机基本上是在用搜索或优化搜索的方式来解决博弈问题。虽然其中有各种避免穷举的算法技巧,但在公众眼中,程序只不过是按事先编写的搜索策略一步步找到最佳走棋步骤而已。随着PC机普及,每台个人电脑都可以运行一个水平相当高的西洋跳棋程序,会下棋的计算机逐渐褪去了神秘的光环。人们开始怀疑西洋跳棋程序的智能程度,不少人会用国际象棋作为例子,挑衅式地说,“下西洋跳棋有什么了不起?哪天在国际象棋棋盘上赢了世界冠军,那才叫人工智能。”

后面的事情大家都很熟悉了。1996 年,IBM 研究团队倾力打造的计算机深蓝挑战世界棋王卡斯帕罗夫,当年虽遗憾败北,但人们已经看到了计算机战胜人类的希望。1997 年,深蓝卷土重来,在六局棋的对抗赛中战胜卡斯帕罗夫后声誉大振。当时,几乎全世界的人都在讨论深蓝的强大和可怕,没人怀疑深蓝就是人工智能的代表,至少,公众愿意相信,在深蓝巨大的黑色机箱内,拥有一颗在棋类博弈领域不输人类的特殊“大脑”。

好景不长,与西洋跳棋相似的历史很快就再次上演。当国际象棋、中国象棋已经被计算机玩得滚瓜烂熟,连一部手机、一台平板电脑上的象棋程序都能与人类高手分庭抗礼,公众立即开始怀疑这样的博弈程序是不是还算得上人工智能。道理很简单,公众总是乐于证明人类在智慧层面的独一无二。不管是不是真的懂得算法细节,人们总会说,计算机只不过是在程序控制下机械地完成搜索或穷举罢了。事实上,与下棋类似的事情也发生在 OCR 等失去了新鲜感的计算机算法身上(Roger C. Schank, Where’s the AI? AI Magazine Volumen 12 Number 4, 1991),本文开头提到的人脸识别也不例外。

拒绝承认象棋程序是人工智能后,公众找到了维护人类智慧尊严的最后阵地——围棋。直到 2016 年年初,除了一个叫樊麾的职业围棋选手和 Google DeepMind 的一只规模不大的研发团队外,几乎所有地球人,包括围棋高手和不少计算机专家都经常会说,“下象棋有什么了不起?真有智能的话,来跟世界冠军下盘围棋试试?围棋可是一项无法穷尽搜索,需要依靠人类大局观的智力运动,是唯一一种计算机无法战胜人类的棋类比赛。”

很不幸,人类的自以为是又一次被快速发展的人工智能算法无情嘲笑了。2016 年 3 月 9 日,围棋世界冠军李世石坐在 AlphaGo 面前,宿命再一次降临。随着 AlphaGo 在五番棋中以四比一大胜,有关人工智能的热情和恐慌情绪同时在全世界蔓延开来,也因此引发了一波人工智能宣传、研发和投资的热潮。

今天,没有人怀疑 AlphaGo 的核心算法是人工智能。但想一想曾经的西洋跳棋和国际象棋,当时的人们不是一样对战胜了人类世界冠军的程序敬若神明吗?再过几年,当手机上的围棋程序可以轻松战胜职业棋手,当所有围棋比赛都要严查手机作弊时,人们还会认为计算机下围棋是一件不可思议的事吗?人们还会将围棋程序视为人工智能的代表吗?

定义二:AI 就是与人类思考方式相似的计算机程序

这是人工智能发展早期非常流行的一种定义方式。另一种类似的,同样从思考方式本源出发的定义是:AI 就是能遵照思维里的逻辑规律进行思考的计算机程序。

从根本上讲,这是一种类似仿生学的直观思路。既然叫人工智能,那用程序来模拟人的智慧就是最直截了当的做法。但历史经验证明,仿生学的思路在科技发展中不一定可行。一个最好也最著名的例子就是飞机。人类在几千年的时间里一直梦想着按照鸟类扑打翅膀的方式飞上天空,但反讽的是,真正带着人类在长空翱翔,并打破了鸟类飞行速度、飞行高度纪录的,是飞行原理与鸟类差别极大的固定翼飞机。

人类思考方式?人究竟是怎样思考的?这本身就是一个复杂的技术和哲学问题。要了解人类自身的思考方式,哲学家们试图通过反省与思辨,找到人类思维的逻辑法则,而科学家们则通过心理学和生物学实验,了解人类在思考时的身心变化规律。这两条道路都在人工智能的发展历史上起到过极为重要的作用。

思维法则,或者说,逻辑学,是一个人的思考过程是不是理性的最高判定标准。从古希腊的先贤们开始,形式逻辑,数理逻辑,语言逻辑,认知逻辑等分支在数千年的积累和发展过程中,总结出大量规律性的法则,并成功地为几乎所有科学研究提供了方法论层面的指导。让计算机中的人工智能程序遵循逻辑学的基本规律进行运算、归纳或推演,这是许多早期人工智能研究者的最大追求。

世界上第一个专家系统程序 Dendral 是一个成功地用人类专家知识和逻辑推理规则解决一个特定领域问题的例子。这是一个由斯坦福大学的研究者用 Lisp 语言写成的,帮助有机化学家根据物质光谱推断未知有机分子结构的程序。Dendral 项目在 1960 年代中期取得了令人瞩目的成功,衍生出一大批根据物质光谱推断物质结构的智能程序(Dendral)。

Dendral 之所以能在限定的领域解决问题,一是依赖于化学家们积累的有关何种分子机构可能产生何种光谱的经验知识,一是依赖符合人类逻辑推理规律的大量判定规则。Dendral 的成功事实上带动了专家系统在人工智能各相关领域的广泛应用,从机器翻译到语音识别,从军事决策到资源勘探。一时间,专家系统似乎就是人工智能的代名词,其热度不亚于今天的深度学习。

但人们很快就发现了基于人类知识库和逻辑学规则构建人工智能系统的局限。一个解决特定的、狭小领域问题的专家系统很难被扩展到稍微宽广一些的知识领域中,更别提扩展到基于世界知识的日常生活里了。一个著名的例子是早期人们用语法规则与词汇对照表来实现机器翻译时的窘境。1957 年苏联发射世界上第一颗人造卫星后,美国政府和军方急于使用机器翻译系统了解苏联科技动态。但用语法规则和词汇对照表实现的俄语到英语的机器翻译系统笑话百出,曾把“心有余而力不足(the spirit is willing but the flesh is weak)”翻译为“伏特加不错而肉都烂掉了(the vodka is good but the meat is rotten)”,完全无法处理自然语言中的歧义和丰富多样的表达方式(Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Third edition)。在后起的统计模型、机器学习等技术面前,专家系统毫无优势可言,从 1990 年代开始就备受冷落。科研机构甚至不得不解雇过时的语言学家,以跟上技术进展的脚步。

另一方面,从心理学和生物学出发,科学家们试图弄清楚人的大脑到底是怎么工作的,并希望按照大脑的工作原理构建计算机程序,实现“真正”的人工智能。这条道路上同样布满荆棘。最跌宕起伏的例子,非神经网络莫属。

生物学家和心理学家很早就开始研究人类大脑的工作方式,其中最重要的一环,就是大脑神经元对信息(刺激)的处理和传播过程。早在通用电子计算机出现之前,科学家们就已经提出了有关神经元处理信息的假想模型,即,人类大脑中的数量庞大的神经元共同组成一个相互协作的网络结构,信息(刺激)通过若干层神经元的增强、衰减或屏蔽处理后,作为系统的输出信号,控制人体对环境刺激的反应(动作)。1950 年代,早期人工智能研究者将神经网络用于模式识别,用计算机算法模拟神经元对输入信号的处理过程,并根据信号经过多层神经元后得到的输出结果对算法参数进行修正。

早期神经网络技术没有发展太久就陷入低谷。这主要有两个原因,一是当时的人工神经网络算法在处理某些特定问题时有先天局限,亟待理论突破,二是当时的计算机运算能力无法满足人工神经网络的需要。1970 到 1980 年代,人工神经网络的理论难题得到解决。1990 年代开始,随着计算机运算能力的飞速发展,神经网络在人工智能领域重新变成研究热点。但直到 2010 年前后,支持深度神经网络的计算机集群才开始得到广泛应用,供深度学习系统训练使用的大规模数据集也越来越多。神经网络这一仿生学概念在人工智能的新一轮复兴中,真正扮演了至关重要的核心角色。

客观地说,神经网络到底在多大程度上精确反映了人类大脑的工作方式,这仍然存在争议。在仿生学的道路上,最本质的问题是,人类至今对大脑如何实现学习、记忆、归纳、推理等思维过程的机理还缺乏认识,况且,我们并不知道,到底要在哪一个层面(大脑各功能区相互作用的层面?细胞之间交换化学物质和电信号的层面?还是分子和原子运动的层面?)真实模拟人脑的运作,才能制造出可以匹敌人类智慧的智能机器。

定义三:AI 就是与人类行为相似的计算机程序

和仿生学派强调对人脑的研究与模仿不同,实用主义者从不觉得人工智能的实现必须遵循什么规则或理论框架。“黑猫白猫,逮住耗子就是好猫。”在人工智能的语境下,这句话可以被改造成,“简单程序,复杂程序,聪明管用就是好程序。”

也就是说,无论计算机以何种方式实现某一功能,只要该功能表现得与人在类似环境下的行为相似,就可以说,这个计算机程序拥有了在该领域内的人工智能。这一定义从近似于人类行为的最终结果出发,忽视达到这一结果的手段。另一种对人工智能的近似定义则更强调人工智能的实用色彩:AI 就是可以解决问题并获得最大收益的计算机程序。

略懂些编程的人都知道,几乎所有程序设计语言都提供了类似 if … else … 的分支结构,那么,与 if … else … 相关的一个哲学问题是,程序根据某个条件进行判断并完成相应操作的时候,这个“判断”以及随后的“决定”是由计算机自己做出的,还是由编程序的人做出的?如果是由计算机自己做出的,那能不能说所有执行了 if … else … 语句的计算机程序都是人工智能?如果相反,那计算机根据运行时的情况做决策时,人又在哪里呢?

哲学思辨容易陷入这样的两难境地,但实用主义者根本不把这当回事——执行 if … else … 的程序是否有智能,完全要看那个程序是不是做了和人相似的有智能的事。像 Dendral 这样的专家系统就是靠大量 if … else … 来模仿人类专家的判定规则,这当然属于人工智能的范畴,而普通的数值计算程序即便用了 if … else …,也不能被称作智能。

实用主义者推崇备至的一个例子是麻省理工学院于 1964 到 1966 年间开发的“智能”聊天程序 ELIZA。那个程序看上去就像一个有无穷耐心的心理医生,可以和无聊的人或需要谈话治疗的精神病人你一句我一句永不停歇地聊下去。当年, ELIZA 的聊天记录让许多人不敢相信自己的眼睛。可事实上,ELIZA 所做的,不过是在用户输入的句子里,找到一些预先定义好的关键词,然后根据关键词从预定的回答中选择一句,或者简单将用户的输入做了人称替换后,再次输出,就像心理医生重复病人的话那样。ELIZA 心里只有词表和映射规则,它才不懂用户说的话是什么意思呢。

这种实用主义的思想在今天仍有很强的现实意义。比如今天的深度学习模型在处理机器翻译、语音识别、主题抽取等自然语言相关的问题时,基本上都是将输入的文句看成由音素、音节、字或词组成的信号序列,然后将这些信号一股脑塞进深度神经网络里进行训练。深度神经网络内部,每层神经元的输入输出信号可能相当复杂,复杂到编程者并不一定清楚这些中间信号在自然语言中的真实含义,但没有关系,只要整个模型的最终输出满足要求,这样的深度学习算法就可以工作得很好。在研究者看来,深度学习模型是不是真的跟人类大脑神经元理解自然语言的过程类似,这一点儿都不重要,重要的是,整个模型可以聪明地工作,最终结果看起来就像人做的一样。

定义四:AI 就是会学习的计算机程序

没有哪个完美主义者会喜欢这个定义。这一定义几乎将人工智能与机器学习等同了起来。但这的确是最近这波人工智能热潮里,人工智能在许多人眼中的真实模样。谁让深度学习一枝独秀,几乎垄断了人工智能领域里所有流行的技术方向呢?

1980 到 1990 年代,人们还在专家系统和统计模型之间摇摆不定,机器学习固守着自己在数据挖掘领域的牢固阵地远远观望。短短十几年过去,从 2000 到 2010 年,机器学习开始逐渐爆发出惊人的威力,并最早在计算机视觉领域实现了惊人的突破。2010 年至今,使用深度学习模型的图像算法在 ImageNet 竞赛中显著降低了对象识别、定位的错误率,领先的算法已经达到了比人眼更高的识别准确率(ImageNet)。2015 年,语音识别依靠深度学习获得了大约 49% 的性能提升(http://googleresearch.blogspot.ch/2015/09/google-voice-search-faster-and-more.html)。机器翻译、机器写作等领域也在同一时期逐渐被深度学习渗透,并由此获得了大幅改进。

“无学习,不AI”,这几乎成了人工智能研究在今天的核心指导思想。许多研究者更愿意将自己称为机器学习专家,而非泛泛的人工智能专家。Google 的 AlphaGo 因为学习了大量专业棋手棋谱,然后又从自我对弈中持续学习和提高,因此才有了战胜人类世界冠军的本钱。微软的小冰因为学习了大量互联网上的流行语料,才能用既时尚、又活泼的聊天方式与用户交流。媒体上,被宣传为人工智能的典型应用大多都拥有深度学习的技术基础,是计算机从大量数据资料中通过自我学习掌握经验模型的结果。

这一定义似乎也符合人类认知的特点——没有哪个人是不需要学习,从小就懂得所有事情的。人的智慧离不开长大成人过程里的不间断学习。因此,今天最典型的人工智能系统通过学习大量数据训练经验模型的方法,其实可以被看成是模拟了人类学习和成长的全过程。如果说人工智能未来可以突破到强人工智能甚至超人工智能的层次,那从逻辑上说,在所有人工智能技术中,机器学习最有可能扮演核心推动者的角色。

当然,机器目前的主流学习方法和人类的学习还存在很大的差别。举个最简单的例子:目前的计算机视觉系统在看过数百万张或更多自行车的照片后,很容易辨别出什么是自行车,什么不是自行车,这种需要大量训练照片的学习方式看上去还比较笨拙。反观人类,给一个三四岁的小孩子看一辆自行车之后,再见到哪怕外观完全不同的自行车,小孩子也十有八九能做出那是一辆自行车的判断。也就是说,人类的学习过程往往不需要大规模的训练数据。这一差别给人类带来的优势是全方位的。面对繁纷复杂的世界知识,人类可以用自己卓越的抽象能力,仅凭少数个例,就归纳出可以举一反三的规则、原理甚至更高层次上的思维模式、哲学内涵等等。最近,尽管研究者提出了迁移学习等新的解决方案,但从总体上说,计算机的学习水平还远远达不到人类的境界。

如果人工智能是一种会学习的机器,那未来需要着重提高的,就是让机器在学习时的抽象或归纳能力向人类看齐。

定义五:AI 就是根据对环境的感知,做出合理的行动,并获得最大收益的计算机程序

针对人工智能,不同的定义将人们导向不同的研究或认知方向,不同的理解分别适用于不同的人群和语境。如果非要调和所有看上去合理的定义,我们得到的也许就只是一个全面但过于笼统、模糊的概念。

维基百科的人工智能词条采用的是 Stuart Russell 与 Peter Norvig 的定义(Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Third edition),他们认为,人工智能是有关“智能主体(Intelligent agent)的研究与设计”的学问,而“智能主体是指一个可以观察周遭环境并作出行动以达致目标的系统”(https://zh.wikipedia.org/wiki/人工智能)。

坦率地说,这个定义将上面几个实用主义的定义都涵盖了进去,既强调人工智能可以根据环境感知做出主动反应,又强调人工智能所做出的反应必须达致目标,同时,不再强调人工智能对人类思维方式,或人类总结的思维法则(逻辑学规律)的模仿。

基本上,偏重实证是近来人工智能研究者的主流倾向。如前所述,在今天这个结果至上的时代里,没有多少人愿意花心思推敲人工智能到底该如何定义。有那个时间,还不如去跑几个深度学习的新模型,发几篇深度学习新算法的论文来得合算。