(约翰·麦卡锡)
下棋程序的关键之一是如何减少计算机需要考虑的棋步。麦卡锡经过艰苦探索,终于发明了著名的 - 搜索法,使搜索能有效进行。 - 搜索法说核心就是,算法在采取最佳招数的情况下允许忽略一些未来不会发生的事情。说的有点抽象,我们来举个十分简单的例子。
假如你面前有两个口袋和一个你的敌人,每个口袋放着面值不等的人民币,你来选择口袋,你的敌人决定给你这个口袋里哪张面值的钱。假设你一次只能找一只口袋,在找口袋时一次只能从里面摸出一次。当然你希望面值越大越好,你的敌人自然希望面值越小越好。假如你选择了第一个口袋。现在我们从第一个口袋开始,看每一张面值,并对口袋作出评价。比方说口袋里有一张5元的和一张10元的。如果你挑了这只口袋敌人自然会给你5元的,10元的就是无关紧要的了。
现在你开始翻第二个口袋,你每次看一张面值,都会跟你能得到的最好的那张面值(5元)去比较。所以此时你肯定就去找这个口袋里面面值最小的,因为只要最少的要比5元好,那么你就可以挑这个口袋。假如你在第二个口袋摸出一张1元的,那么你就不用考虑这个口袋了,因为如果你挑了这个口袋,敌人肯定会给你1元面值的,那当然要选择最小面值的5元的那个口袋啦。
(基于 - 剪枝算法的智能五子棋)
虽然有点绕,不过我觉得你应该大概已经理解了这个思路。这就是 - 搜索法,因为这种算法在低于或者超过我们搜索中的 或者 值时就不再搜索,所以这种算法也称为 - 剪枝算法。这种算法至今仍是解决人工智能问题中一种常用的高效方法。当年IBM的深蓝国际象棋程序,因为打败世界冠军卡斯帕罗夫而闻名世界,它靠的正是在30个IBM RS/6000处理器的并行计算机上运行的 - 搜索法。
但是需要注意的是,前不久的谷歌AlphaGo,由于棋盘是19x19的,几乎所有的交叉点都可以走子,初始的分支因子为361,这对于常规的 - 搜索来说太令人生畏了,所以别看名字里面带了一个 (Alpha,有可能这个名字是为了纪念麦卡锡的 - 搜索算法),AlphaGo采用的是却是蒙特卡洛搜索树(MCTS),它是一种随机采样的搜索树算法,它解决了在有限时间内要遍历十分宽的树而牺牲深度的问题。
后来麦卡锡有从达特茅斯搬到了MIT,在那里他又做出了三项十分重要的贡献。第一个是他定义了高级语言Lisp语言,从此Lisp语言长期以来垄断着人工智能领域的应用,而且人们也有了可以拿来用的得力工具了,但是稀少而且昂贵的计算资源仍是问题。于是麦卡锡和他的同事又发明了分时技术。然后,麦卡锡发表了题为“有常识的程序”的文章,文中他描述了一种系统,取名为意见接收者,任务是使用知识来搜索问题的解,这个假想也被看成是第一个完整的人工智能系统。
同年,明斯基也搬到了MIT,他们共同创建了世界上第一座人工智能实验室——MIT AI Lab实验室。尽管后来麦卡锡和明斯基在某些观点上产生了分歧导致他们的合作并没有继续,但这是后话。
(MIT AI Lab实验室)
二、人工智能的诞生
好了,前期的一些大人物介绍完了,让我们一起回到1956年那个意义非凡的夏天。
那年,28岁的约翰·麦卡锡,同龄的马文·明斯基,37岁的罗切斯特和40岁的香农一共四个人,提议在麦卡锡工作的达特茅斯学院开一个头脑风暴式的研讨会,他们称之为“达特茅斯夏季人工智能研究会议”。参加会议的除了以上这四位,还有6位年轻的科学家,其中包括40岁的赫伯特·西蒙和28岁的艾伦·纽维尔。在这次研讨会上,大家讨论了当时计算机科学领域尚未解决的问题,包括人工智能、自然语言处理和神经网络等。人工智能这个提法便是这次会议上提出的,上文也有提到。在这个具有历史意义的会议上,明斯基的SNARC,麦卡锡的 - 搜索法,以及西蒙和纽维尔的“逻辑理论家”是会议的三个亮点。前面已经对明斯基的SNARC,麦卡锡的 - 搜索法有所介绍,下面我们再来看一下西蒙和纽维尔的“逻辑理论家”又是什么。
西蒙和纽维尔均是来自卡内基梅隆大学(当时还叫卡内基技术学院)的研究者,他们的研究成果在这次盛会上十分引人注意。“逻辑理论家”是西蒙和纽维尔研究出来的一个推理程序,他们声称这个程序可以进行非数值的思考。然后在这次研讨会之后不久,他们的程序就能证明罗素和怀特海德的《数学原理》第二章的大部分定理。但是历史往往对新鲜事物总是反应迟缓,他们将一篇与逻辑理论家合著的论文提交到《符号逻辑杂志》的时候,编辑们拒绝了他们。
我们现在来看看这个研讨会的成果,或者说叫意义。遗憾的是,由于历史的局限,这个世界上最聪明的头脑一个月的火花碰撞,并没有产生任何新的突破,他们对自然语言处理的理解,合在一起甚至不如今天一位世界上一流大学的博士毕业生。但是这次研讨会却让人工智能领域主要的人物基本上全部登常在随后的20年,人工智能领域就被这些人以及他们在MIT、CMU、斯坦福和IBM的学生和同事们支配了。