在人工智能研究开辟这些领域之前,人们无疑是把这些功能看成人类特有的智能。不管人们以后关于“真正思维”的概念发生什么变化,都改变不了这样的事实,人工智能的研究深化了我们对思维过程的认识,扩大了我们的思维功能。
机器翻译初看起来是件简单的工作,只要查阅字典重排词序就可以了。实际上却要复杂得多。这种困难不仅仅是缺乏有关成语之类的知识,而且涉及到有关领域的思维模式以及在这种模式中运算的符号。运用有关领域的模型进行翻译的方案也由于含义的模糊性和多义性而很快搁浅了。因此这仍然是悬而未决的问题。
计算机下棋也比人们最初的估计因难得多。已经弄清楚,人们在自己头脑中表示棋势并不是只要记住每个棋子在什么位置以及下棋的那些规则就可以了。它还涉及到对几个棋子之间关系的理解以及关于启发式的知识,而这些是和更高层次的块有关的。
阿瑟·萨谬尔的下棋程序采用动态和静态两种方法来估价每一步的局势。静态方法是采用一个数学函数,有几个变量描述一种局势的特点,从而随时可以在实际上计算出来。而动态方法则是构造一棵“树”,即由每一步后可能走的步构成的树。萨谬尔的程序就是依据这些方法的估价来确定下棋的战略,决定走哪一步棋。这两种方法又是相互依存的,每一种方法的改进都使另一种方法受惠。
那么能否用这种程序来下象棋呢?根据实践得出的结论是,用这种程序下象棋的困难要比人们最初的设想大得多。
说到计算机创作音乐,究竟谁是真正的创作者呢?是计算机还是人?这是人的智能,计算机不过是创作的工具罢了。
回顾人工智能的早期历史,人们最早作出的努力之一便是企图实现定理的机器证明。将问题进行归纳是其中一项重要的技术。也可以将整体的问题转化为局部的问题。然而这种方法并非总能保证成功的。如果我们把对问题的探索看成是在问题空间中逼近确定的目标,那么这就是一种抽象的概念性空间。当你认识到如果直接奔向目标会遇到抽象的“篱笆”时,你可以采取两种行动:(1)你以某种随机的方式离开目标,希望能够发现—道隐藏的“门”;(2)试图去发现能够表示问题的新“空间”,在这新空间中在你和目标之间没有抽象的篱笆隔开。这虽然是一种理想的方法,但如何选择一个好的空间来表达问题却是一个非常复杂的问题。
数学也是人工智能可以研究的一个有趣领域。每个数学家都有一种感觉,在数学的各种思想之间可以有某种度量。这就是说数学的成果构成了一张巨大的网,而两者之间往往有许多环节。有时数学中的两个定理很接近,给出其中一个很容易证明另一个,或者两者很相似,甚至是同构的。但这只是一种主观的感觉,能否有一种客观的标准呢?有时在不同分支中的两个定理似乎是不相干的,但是以后的进展改变了人们的这种看法。如果我们能够把对数学中紧密程度的感觉编制成程序,那么也许我们可以创造出一位原始的“人工数学家”来。
人工智能有着广泛的应用,而它的核心问题就是如何表达知识。在人工智能研究的早期,人们假设知识是以一条一条句子贮存起来的,而要把知识以一条一条地移到程序中去的最好方法就是发展一种简单的方法把事实翻译成小小的被动的数据。每个事实是一条数据,当程序用到它时能够提取出来。象棋程序就是一个例子,它把棋势进行编码,然后有效地贮存在“记忆”中,需要时用子程序来调用。
然而心理学家们早就发现,人类是以一种更为复杂的方式来贮存事实的。最近人工智能研究者又重新证实了这一点。他们现在面临着如何使知识“块化”的问题,和程序型知识与陈述型知识之间差异的问题。这些问题又与在反省中能够理解与不能理解的知识之间的差异有关。
其实,假设所有的知识编码成被动的数据是与计算机设计最基本的事实相矛盾的。如何进行加法、减法、乘法等等运算并不是编码成数据贮存在记忆中的,而是表现在硬件的线路连接方式上。
重要的是在原则上说明这一点。不管是以数据的方式还是以程序的方式来处理信息,只要我们不考虑处理的效率,那么用一种方式可以做到的,用另一种方式也能做到。但是理智似乎在告诉我们,一种方式比另一种方式更为优越。
也许我们可以从自然界的生物获得一点启示。为什么在蛋白质中表现出来的遗传信息要在DNA中编码呢?答案是:将同样的信息以几种不同的形式用于不同的目的是非常有用的。将遗传信息以模具和数据的形式段存在DNA中有一个优越性就是很容易将两个个体的基因组合成一个新的基因型。如果信息只是贮存在蛋白质中是很难做到达一点的。把信息贮存在DNA中的另一个原因就是这样很容易转录或转译到蛋白质里。当它不需要时并不占据很多地方,一旦需要时就可以作为模具使用。
如何以最好的方式进行知识的表达和运算,关于这种思维活动的研究有许多学派。其中很有影响的一派认为是用形式化的概念来表达,当然这种表达的基本运算也就采用形式化的演绎推理。
但是人还有一种能力就是能对类似的情况进行比较,我们可以把这称为类比的认识。这在人的智力中占有重要的地位。
当然,人类的记忆也是极为复杂的。有的知识经过编码后贮存在复杂的系统内,却可能没有一种程序,一种规则或者其他提取数据的方法可以使你把它提取出来。这时我们就会说它被遗忘了。因为提取它的方法暂时或者永远失效了。但是所谓遗忘,往往是在较高的层中失去了线索,并不意味着所有的信息都丧失了。这些信息完全可能在较低的层次上依然存在。
我们再来看看计算机程序是怎样做到某种程度的“理解”。 |