2.2 人工智能的经典问题
2.2.1 图灵测试
在一篇1950年发表的著名论文Computing Machinery and Intelligence中,数学家图灵(1912—1954年)(图2-1)详细讨论了“机器能否拥有智能”的问题。有趣的是,作为计算机科学与人工智能领域共同的先驱,图灵成功定义了什么是机器,但却不能定义什么是智能。正因如此,图灵设计了一个实验,即图灵测试。图灵测试的核心想法是要求计算机在没有直接物理接触的情况下接受人类的询问,并尽可能把自己伪装成人类。如果“足够多”的询问者在“足够长”的时间里无法以“足够高”的正确率辨别被询问者是机器还是人类,就认为这个计算机通过了图灵测试。图灵把该测试看作人工智能的一个充分条件,主张认为通过图灵测试的计算机应该被看作是拥有智能的。
假设有一台计算机,其运算速度非常快,记忆容量和逻辑单元的数目也超过了人脑,而且还为这台计算机编写了许多智能化的程序,并提供了合适种类的大量数据,那么,是否就能说这台机器具有思维能力?
图灵测试是这样进行的,如果一个人(代号C)使用测试对象皆理解的语言去询问两个他不能看见的对象任意一串问题。这里的对象,一个是正常思维的人(代号B)、一个是机器(代号A)。如果经过若干询问以后,C仅根据通过这个仪器提问收到的答案辨别出哪个是计算机,哪个是人。如果C不能区别出机器和人,那么根据图灵的理论,就可以认为这个机器A是智能的,则此机器A通过图灵测试,如图2-2所示。
图2-1 艾伦·麦席森·图灵
图2-2 图灵测试
这就是著名的“图灵测试”(Turing Testing)。当时全世界只有几台计算机能够通过,其他所有计算机根本无法通过这一测试。图灵称,要分辨一个想法是“自创”的思想还是精心设计的“模仿”是非常难的,任何自创思想的证据都可以被否决。他试图解决长久以来关于如何定义思考的哲学争论,提出了一个虽然主观但可操作的标准:如果一台计算机表现、反应和互相作用都和有意识的个体一样,那么它就应该被认为是有意识的。
因此,图灵采用“问”与“答”模式,即观察者通过控制打字机向两个测试对象通话,其中一个是人,另一个是机器。要求观察者不断提出各种问题,从而辨别回答者是人还是机器。图灵还为这项测试亲自拟定了几个示范性问题:
问:请给我写出有关“第四号桥”主题的十四行诗。
答:不要问我这道题,我从来不会写诗。
问:34957加70764等于多少?
答:(停30秒后)105721。
问:你会下国际象棋吗?
答:是的。
问:我在我的K1处有棋子K;你仅在K6处有棋子K,在R1处有棋子R。轮到你走,你应该下哪步棋?
答:(停15秒钟后)棋子R走到R8处,将军!
图灵指出:“如果机器在某些现实的条件下,能够非常好地模仿人回答问题,以至提问者在相当长时间里误认它不是机器,那么机器就可以被认为是能够思维的。”
从表面上看,要使机器回答按一定范围提出的问题似乎没有什么困难,可以通过编写特殊的程序来实现。然而,如果提问者不遵循常规标准,编写回答的程序是极其困难的事情。例如,提问与回答呈现出下列状况:
问:你会下国际象棋吗?
答:是的。
问:你会下国际象棋吗?
答:是的。
问:请再次回答,你会下国际象棋吗?
答:是的。
你多半会想到,面前的这位是一部笨机器。如果提问与回答呈现出另一种状态:
问:你会下国际象棋吗?
答:是的。
问:你会下国际象棋吗?
答:是的,我不是已经说过了吗?
问:请再次回答,你会下国际象棋吗?
答:你烦不烦,老提同样的问题?
那么,你面前的这位,大概是人而不是机器。上述两种对话的区别在于,第一种可明显地感到回答者是从知识库里提取简单的答案,第二种则具有分析综合的能力,回答者知道观察者在反复提出同样的问题。图灵测试没有规定问题的范围和提问的标准,如果想要制造出能通过试验的机器,以当前的技术水平,必须在计算机中储存人类所有可以想到的问题,储存对这些问题的所有合乎常理的回答,并且还需要理智地做出选择。
那么,一台机器要通过图灵测试,它需要有下面的能力。
1)自然语言处理:实现用自然语言与计算机进行交流。
2)知识表示:存储它知道的或听到的、看到的。
3)自动推理:能根据存储的信息回答问题,并提出新的结论。
4)机器学习:能适应新的环境,并能检测和推断新的模式。
5)计算机视觉:可以感知物体。
6)机器人技术:可以操纵和移动物体。
图灵测试具有远大的发展意义,它考虑的是一个智能只能由其他智能来识别,代表着机器对人类知识体系/交互的理解程度。如果机器能理解人,再有高效的控制系统,那总有一天能让人类完全脱离体力劳动,生存不再那么困难,可以做自己想做的事情。事实上,每个人对于智能的理解都不同,有些人可能觉得会解数学题就是智能了,有些人还要求智能有自我学习的能力……图灵测试显然没有展开讨论这些情况。作为计算机科学与人工智能领域共同的先驱,图灵成功定义了什么是机器,却不能定义什么是智能。这也反映了一个困局:我们试图创造智能,但我们连智能应是怎样都不知道。测试一个系统是否具有强智能应该有更好的准则,但目前我们首先要做的是去理解更广义的智能。