人工智能的产生为何如此艰难
现在我们了解到,计算机可以非常迅捷而精准地执行简单的指令,另外,只要输入精准定义过的指令,它就能够做决策。我们可以顺理成章地得出结论,某些需要计算机为我们处理的事务可以用非常简单的方式进行编码,可有些功能则不然。要理解人工智能的产生为何如此艰难,为什么如此难以定义何为人工智能真正的“进步”,我们需要了解一下到底哪些问题是容易用编程来解决的,而哪些问题则很难用编程解决,以及为什么。图1展示了我们希望计算机能够完成的任务,以及它们的难易程度及实现时间。
排在最前面的是计算。让计算机做计算是最简单不过的,因为所有的基础运算(加、减、乘、除)都可以用非常简单的步骤来运行——你在学校里都学过,哪怕现在已经不记得了。这些步骤可以直接编译成计算机程序,早期的计算机本身就是为了解决计算问题而生的(1948年,图灵加入曼彻斯特大学团队,为计算机“曼彻斯特宝贝”编写的第一条程序就是执行长除法。在解决了20世纪最深刻的数学问题之一以后,又回到了学校里学过的基础数学上来,这对图灵而言定然是一次奇特的经历)。

接下来是排序,是指把一系列随机的数字按照升序排列,或者一系列姓名按照字母顺序排列。这听起来一点儿都不人工智能,事实上排序的步骤并不复杂。然而,传统的笨办法慢得令人发指。一直到1959年,快速排序法才被发明出来,排序这个老大难问题才算得到了一个有效率的解决方法(快速排序法诞生后50年内,都没出现比它更优秀的排序算法)[8] 。
然后我们要讨论需要攻克重重难关才能解决的问题。下棋就是重大挑战之一,它也是人工智能故事中非常重要的一环。事实上,有一种简单粗暴的方式可以玩好棋类游戏,基于一种名为搜索 的技术,我们将在下一章详细讨论它。问题在于,尽管基于搜索进行编程是最简单不过的事情,但它除了能适应一些简单的游戏以外毫无用处,因为它需要占用太多内存,消耗太多时间——哪怕我们把整个宇宙的每一个原子都用来建造计算机,它也承担不起用“简单粗暴”的搜索方式来下一盘围棋或者象棋。为了让搜索具有可行性,我们需要增加一些额外的东西——就如我们在下一章即将看到的那样,至此,人工智能开始登场。
我们知道有办法解决问题,但是在实践技术中却无法实施——因为它们需要的计算资源太过庞大。这种情况在人工智能研究领域司空见惯,围绕着怎么处理这类问题,人们也进行了大量的研究。
不过列表中接下来的问题并非此类,人脸识别、自动翻译和实时可用的口语翻译与棋类游戏不一样,传统的计算机技术无法为我们提供解决这类问题的方法,我们需要探索全新的解决方案。当然,在列表上,这类问题已经通过一种名为机器学习的方式得到了解决,我们将在后续章节深入了解有关机器学习的内容。
接下来是一个吸引人的话题,无人驾驶汽车。驾驶对人类而言是一件很简单的事情,开车并不是一项需要高智商的技能。但事实证明,让电脑来控制汽车简直困难重重。主要的问题在于,汽车需要知道它所处的位置以及周围环境。想象一下,一辆无人驾驶的汽车来到纽约繁忙的十字路口,数不尽的汽车从它身边呼啸而过,还有行人、自行车、道路施工、交通标志和各种标线。还有可能遇到下雨、下雪或者大雾,这让周围情况变得更加复杂(在纽约,这三种气象甚至可能同时出现)。这种情况下,难点并不在于你要做什么(减速、加速、左转或者右转等),而是要弄清你的周围发生了什么,即将发生什么——确认你的位置,周围有哪些车辆,它们的位置,它们会朝哪个方向行驶,行人的位置,行人的移动轨迹,等等。如果充分掌握了所有信息,那么你决定接下来该怎么做就非常容易了。(我们会在稍后的章节里面讨论无人驾驶的细节。)
然后就是我们真不知道该怎么解决的问题了:计算机怎么去理解一个复杂的故事,并且回答有关它的问题?计算机如何能把类似小说这种细致入微的文本翻译到信达雅的程度?计算机如何看图说话——不光是识别图中的人物,而是要诠释图中发生的事情?计算机如何能创作出一个有趣的故事,或者解读一件艺术品,比如一幅画?最后,仍然回到我们的“宏伟梦想”上,计算机如何拥有类似人类的智能?
因此,人工智能的进步意味着让计算机能够越来越多地完成图1中所列举的任务,这些任务难以完成的原因通常有两种。第一种是我们虽然知道理论上有某种可以解决问题的方法,但实际上却行不通,因为它需要太过漫长的运算时间,占用太高的内存,像象棋和围棋这样的棋类游戏就属于这一类。第二种是我们不知道解决问题的方法是什么(例如人脸识别),要解决这类问题,我们需要一些全新的东西(例如机器学习)。几乎所有当代的人工智能研究都关注着这两类问题之一。
现在,我们来看看图1中最困难的问题——通用的、人类水准的智能机器这一宏伟梦想。毫无疑问,这一挑战吸引了无数人的关注。而其中最早的以及最有影响力的思想家之一,就是我们的老朋友,艾伦·图灵。






本书评论