3 搜索+评估=智能?

3

搜索+评估=智能?

本书暂时不会涉及具体的编程讲解,在那之前,我们首先要弄清楚一个(更为本质的)问题——什么是“智能”?

“智能”的定义是什么?这个问题颇具争议性,人工智能的专业研究人员也尚未有定论(因此,人工智能一词至今也没有明确的定义)。

我将在本书中以PONANZA的开发为基础,斗胆对“智能”一词进行简单阐述。这些结论有据可依,但大多基于我自己的解读,望读者理解。

智慧行为(不单指电脑将棋)大体表现为以下两种行为——“搜索”和“评估”。

几乎所有的智慧行为都至少占了“搜索”和“评估”中的一个,或二者兼有。也就是说,人类及所有动物其实无时无刻不在进行着“搜索”和“评估”(图1-2)。

图1-2 支撑智能的两大支柱

这两种行为究竟是什么?我们来逐一说明。

搜索_<生物为什么会拥有智慧呢?>

从进化论的角度来解释,是因为智慧的发展有利于生物的生存。

智慧可以帮助生物“预测未来”。去哪里可以吃到食物?怎么做才能有助于繁殖后代?拥有了智慧,我们才可以对未知世界作出预测并有序地生活,这与漫无目的、顺其自然的结果是截然不同的。

那么,如何推测未来?有多种方法可供选择,其中最为直接的方法是对未来进行仿真。

此处的仿真,是指“抛开主观意识和价值判断,对事物的发展进行推测”。举例来说,假设有两个“1”,此时:

1+1=2 1-1=0 1×1=1 1÷1=1

计算以上问题时,我们并不会加上自己的主观意识和价值判断。因此,基于现有状况机械地推测今后的变化,这一方式即被称为仿真。

我们可以利用智能的“搜索”功能,对未来进行正确的仿真。诸如“1+1=3”之类的预测便不能被称为正确的仿真。

在日常生活中,我们会下意识地进行搜索=仿真。过马路时,我们会认真观察交通情况。在没有“不可以超速”的价值判断的限制下,若不能马上判断出对面来车的行驶速度,我们的生命极有可能受到威胁。

在电脑将棋和人工智能的世界里,对未来的正确仿真被称为“搜索”。对于将棋来说,这一过程则被称为“推算”。

那么,搜索行为可以保证电脑将棋水平的提高吗?

我们之前说过,电脑擅长“单纯的计算”。在程序员的努力下,电脑可以通过“单纯计算”的叠加来预测将棋形势的发展。

因此,为了正确预测,电脑需要对大量的棋局进行搜索。从现有棋局出发,全面考虑所有的可能落子点,再考虑落子之后可能出现的所有局面。

然而,这个方法并不好用。即便按照此方法运作,电脑将棋的水平也依旧低于人类。其原因在于,将棋中可能出现的棋局数大约有10

226

个。这样浩大的工程,即便对于电脑而言,也几乎是不可能完成的任务。

10

226

,即1之后有226个0,我们可能很难想象这个级别的数字的大小。Google的公司名称源于数学单位Googol=古戈尔,即1之后有100个0。据推测,宇宙内可观测的所有原子数量尚不足1古戈尔。可见,比1古戈尔还大出许多的10

226

是多么庞大的数字。

电脑所进行的棋局推算(搜索)量远远超过人类。普通的笔记本电脑每秒可以处理几百万个棋局,我做研究时所使用的电脑则可以处理这个数字的100倍。但即便如此,这对于10

226

来说也仅仅是沧海一粟。

评估_

我们无法搜索完将棋中可能存在的所有棋局。那么,将棋程序要如何从有限的资源中选择下一步该走的那一着棋呢?

对于人类而言,接下来的步骤不难想象。没错,制订目标然后再对其展开搜索。这里的“制订目标”便是指支撑智能的另一种行为:“评估”。(图1-3)

图1-3 实施评估的意义

左:不考虑其他,直接搜索。若不将大量资源进行切割,则很难得出与右图相同的答案。

右:搜索后,仅对评价结果较高的部分进行进一步搜索,比直接搜索全部资源更加高效。

让我们来看一个例子。棒球运动中,击球手在投手投球的瞬间便会条件反射般在脑中“搜索”信息,判断是否挥棒、球路在哪边、什么类型的球,等等,搜索完毕后再决定——对较易击中的高路来球是进行挥棒还是观望不动。

但仅凭“搜索”,击球手是无法完美应对所有投球动作的。比如,在判断出对方来球大幅偏离好球区的一瞬间,击球手必须立即放下球棒;而在此之前,击球手则需做好准备,以防投手朝一垒跑垒员投出牵制球。此时继续“搜索”意义不大,击球手更迫切需要的是立即对是否需要击球进行“评估”。

只要评估正确,我们便可以针对相对应的区域进行搜索。棒球运动中,部分运动员在击球时会选择将注意力完全集中于投手,但倘若投手可供预测的动作有限,那么此时优先搜索其他更有价值的信息显然才是更正确的做法。

日常生活中,我们一直在重复着搜索与评估。广泛尝试,选择其中看上去最为有利的一个,之后再进行下一步操作。所有的智慧行为几乎都是这个过程的累积、重复和叠加。