6.hALT

这个例子说明了编译pSs程序存在的一些困难。这个例子中的错误提示是,需要对产生式精确地编写,这样才能正确地使用。注意到,如果p5和p6的指令得到修正,那么“西瓜”就成为最后的条件,这样就不会出现错误了。

在工作空间中,有多种对于相互冲突产生式的消解方法。例如,可在匹配过程中增加一种测量方法,确定哪一个最为合适。或者,根据每一个产生式先前的激活情况,使最活跃的(或依据频率,或依据新近发生)产生式发生激活(有关讨论和检测,参见Anderson,1983)。

产生式系统与冯·诺依曼机

值得注意的是,产生式系统的结构有很多不同于NMs的地方,通常被认为是其优点。首先,与TMs和Neumanns机相比,除了解释器,产生式系统是非分离的、外部的控制结构;除了冲突消解,有且只有条件与工作空间的内容相匹配,产生式才会被激活。这就使系统具有了并行加工的特点,但正如我们看到的,这同样也使pSs对具体的系列动作的反应,出现了困难:机器规则,对于想要得到的目标算法结构很难满足(我们还将在很多联结主义结构中遇到类似的问题)。第二,pSs依据工作空间对信息的描述进行操作,而非依据完全或相对地址——它是“内容”寻址而非“定位”寻址。试想一下,警察到某地(匿名端)逮捕那里的所有人(定位寻址),和寻找与犯罪现场留有的指纹相匹配的人这两种抓捕罪犯方式的不同。其实,冯·诺依曼机也可通过hash编码方式实现内容寻址。内容定位处,或者说内容本身,是输入参数和探测器的逻辑-运算函数[5]。然而,这些技术只对信息的强约束形式有效。甚至,即使对信息发生作用,这些方法也需要通过“碰撞函数”避免hash编码产生多重或错误的地址。这就使冯·诺依曼机在降解过程(degradation)中变得非常不稳定和繁琐。而pSs通过运用匹配-子循环的测试使降解过程更为通畅。第三,有学者认为pSs比之vNMs更具强模块化优势,“因为产生式系统具有强模块化优势,那么必然存在一种统一地使之得到扩充,而不会使分布变更扩展至整个现有系统的方法”(pylyshyn,1979:82)。豪格兰德(haugeland,1985:162)走得更远,他说:“一定程度上,生产式系统的‘模块性’是其他任何结构无法比拟的。144模块就是某一能完成某项完备定义任务的独立子系统,并且它能以简约的方式与系统内其他子系统相互交流……产生式系统……当条件满足时就自行激活,不论其他产生式所知或者其决定条件是什么”。pS中的产生式类似于vNM中的指令,但产生式的增加或消减(例如,在程序某处需要作出些许变更)比之诺依曼指令更为自由——具有冲突消解功能。但是,我们将看到pSs的这种模块性优势也令其具有很多缺点。

pSs的缺陷主要有:(1)效率低(既然它需要执行每一个满足条件的动作,那么就很难快速地完成预先确定的一系列步骤);(2)模糊性(很难使之实现表达或建构算法结构)。这两个缺陷主要源于产生式的模块性和统一性——不能通过子路径递层调用其他产生式,而这一点诺依曼程序是可实现的。

6.5 魔域混战场:鬼蜮模型

最后我们要介绍一种机器——鬼蜮模型(pandemonium),与其把它看作是一种普遍计算结构,不如说它是关于模式识别与学习的一种模型。尽管这种模型是在联结主义兴起的多年以前提出的,但它却包含了很多当代联结主义的普遍观点,同时它也是基于与联结主义相同的思考而产生的。因此,鬼蜮模型同时具有数字与联结主义模型的部分特征。塞尔弗里奇(Selfridge)说道:“这种模型背后的主旨是并行加工。这是因为:首先,使用并行方式处理数据比较容易,并且也更为贴近真实的‘自然’处理方式;其次,相对独立的准模块集合,比起所有部分都是以某种复杂的方式直接联结起来的机器来说,出现错误时更容易得到修正”(1959:513)。因此,“鬼蜮模型……似乎并不像以前众多观点认为的,具有各种固有限制或缺乏弹性”(1959:513)。

结 构

在简化的鬼蜮模型中,包含一个判断“鬼”(我们知道,模型的名字毕竟是panDEMONium)的部分,它负责监听所有的认知“鬼”。每个认知鬼都注视着输入数据,并试着识别与它专有特征或属性相近的数据。数据越接近,认知鬼的喊叫声越大,145判断鬼便会对喊声最响的那个认知鬼进行选择。

例如,如果数据是字母表中的一些字母,1—26只认知鬼,每只鬼只专注于其中的一个字母。因此,尽管输入的d,c和l都相似,但它毕竟是d,所以d-鬼喊得会最响,“很多时候,一种模式等价于某组特征的逻辑函数,这组特征中每一个都可能是很多其他模式的组成部分,它所缺失的特征其他模式可能也缺失”(Selfridge,1959:516)。所以,塞尔弗里奇对理想化的鬼蜮模型作了修正,增加了计算鬼层。这样,认知鬼需要加上计算鬼的加权和。计算鬼层独立于目标,必须经过适当的设计(通过自身演化或实验者安排)才可使之能够学习。

学 习

鬼蜮模型这样的设计就是为了使它能够学习。塞尔弗里奇描述了两种鬼蜮模型的学习程序。第一种是通过“特征加权(feature weighting)”进行学习,146“认知鬼为使在整个鬼蜮模型中的得分最高,可修正指派到次鬼层的权值”(1959:518)。之后,塞尔弗里奇还讨论了几种修正特征-权值规则的可行方法。第二种学习程序是“次鬼选择(subdemon selection)”,“第一种程序采用特征-权值适当修正的策略使权值得到优化,但我们并不能保证那些选择的次鬼是适当的。次鬼选择能够产生新的竞争次鬼用以替换效率低下的次鬼,也就是那些对提高分数没有太大帮助的次鬼”(1959:521)。塞尔弗里奇设想,控制同样受鬼本身变化的支配,“原则上,我们认为控制操作自身要服从于鬼,如同特征-权值和次鬼选择,受其本身变化的支配”(1959:523)。最后,塞尔弗里奇认为,到目前为止,他对鬼蜮模型的描述“都需要以人的持续监控为基础,当机器出错时必须及时告知机器”(1959:523)。但我们或许想知道,机器是否能够凭借自身提高它的表现(学习)能力呢?“我认为可以这样做到,即模型必须具备一种极其明确的正误判断标准,有且仅有一个认知鬼的输出比所有其他的认知鬼更符合目标结果”(1959:523)。塞尔弗里奇简述了鬼蜮模型机器对莫尔斯码147的识别,或者更精确地说是“它能够区分,以手动键盘输入的莫尔斯码的点和线”(1959:524),但他并没有对此作进一步的解释。

塞尔弗里奇和奈瑟(Selfridges and Neisser,1960)报告了CENSUS的最初实验结果。CENSUS是一种具有鬼蜮模型结构的机器,能够识别10个手写字母:A,E,I,L,M,N,O,R,S,T。输入被投射到32×32(1024)像素的“图片”(输入储存)上。CENSUS能够应用28个特征来计算图片上显示的是哪一个字母的概率。根据塞尔弗里奇和奈瑟的研究,CENSU的识别正确率只比人类低10%。但若要进一步扩展机器的功能,至少还存在三个重要难题:首先,如何从潦草的文字中识别出不同字母;其次,如何运用学习提高其判断正确率;第三,如何利用学习获得其自身的特性。它现有的这些功能还都仅限于程序设计者的预想范围之内。如,他们在文章的结束语中写道:“我们仅仅是在猜想,这种限制如何可能得以克服。除非如此,‘人工智能’终将会被误认为不会具有独立智能”(1960:68)。甚至20年以后,联结主义到来的时代——20世纪80年代早期,这种误解始终没有消除。

鬼蜮模型、感知器和联结主义

我们容易发现,鬼蜮模型对于联结主义的发展所起到的重要作用。鬼蜮模型与感知器一样,都采用高度互相联结的并行加工单元从而实现模式识别。尽管每个单元都仅处理少量的信息,但是通过局部的相互作用,能在整体上作出正确的判断。而且,与感知器一样,系统也通过使用各种学习方法使联结权值发生变化,从而能够进行学习。也许鬼蜮模型的独特之处,在于控制鬼和它们如何进行选择的假设。在感知器或当代联结主义理论中与这些概念存在哪些相似之处,尚不完全清楚。

6.6 结构分类(Ⅰ)

一种建构分类的方法是依据某些通用原则为基础,先判断哪些范畴可能会被用到,然后对各个系统进行考察,之后找出它们最符合哪种范畴。这种方法存在的风险是,可能并没有按照它们本身内在的某种维度进行划分。148另一种建构分类的方法是先对样本(来自不同类别)进行观察,然后尝试概括范畴的维度。这种方法的风险是,可能会从数据中得出某些互斥的推论。我们前面已经考察了一些典型标准结构,是否存在一种根本性的对之进行分类的方法呢?显而易见,对于一种(数字)计算设备来说,至少全部包含三个重要部分,即表征、存储和控制:任何(数字)计算设备必须能够储存表征,并且都必须能够通过某种具体方法对状态进行转换——控制。因此,这三个维度可作为结构划分的基础。我们现在暂时先不考虑表征,只对存储和控制进行总结。

如果机器的所有控制都只源于唯一部位的操作,控制称为定位式,否则则为分布式。如果机器的存储是组织化的,想要寻找一个地址必须先经过另一个地址,那么说它的存储是间接的,否则为直接的(或随机的)。如果数据的储存和读取只在某固定地址中,那么说存储是定位寻址;如果数据依据内容进行储存和读取,那么存储就是内容寻址。

由于这些结构特征的原因,对应机器的计算也就有了某些限制。需要强调的是,图灵机和冯·诺依曼机的计算是串行的,而pSs是部分并行,鬼蜮模型则几乎全部为并行计算。

注释

[1]“判定难题”是指存在着哪些一般步骤,可用于判断某些系统内的某一任意公式是否为系统公理。

[2]我们将这些机器称之为“冯·诺依曼机”,是因为这种结构的机器起源于冯·诺依曼1945年的EDVAC报告。虽然图灵(Turing,1946)也因为他的一些重要观点赢得此项荣誉,但是我们不能同时有两种图灵机。

[3]心-身问题,即心理现象与生理现象关系的问题,后文还会继续阐述。

[4]149为方便理解,左列数字是采用十进制表示的寄存器序号(计算机中的地址)。

[5]例如,输入参数中间的2 bit信息可表示其内容的地址,或者将异或逻辑用于两个半个字符串,或者将输入字符串截断为两个等长的字符串,然后进行算术加和。

【思考题】

引言

什么是算法/有效步骤与程序?

什么是计算机的“结构”?

两种机器的强等价与弱等价分别指什么?

图灵机(TMs)

图灵机的主要构成是什么?

它们是如何组织的?

图灵机是如何操作的?

图灵机如何编程?

描述图灵机的输入、输出以及计算过程。

图灵机循环指什么?

什么是图灵定理?

什么是丘奇-图灵论题?

为什么丘奇-图灵论题是论题而不是定理?

把定理和论题放在一起对认知科学有什么影响?

冯·诺依曼机(vNMs)

vNM的主要构成是什么?

它们是如何组织的?

vNM循环指什么?

vNM如何编程?

150模拟人的认知组织结构,vNM比TM有哪些优势?

“冯·罗依曼瓶颈”指的是什么?

为什么会产生这个问题?

产生式系统(pSs)

pS的主要构成是什么?

它们是如何组织的?

pS如何编程?

重写书中产生式示例,避免原示例所存在的错误?

pS是如何并行加工的,又是如何串行加工的?

pS与TMs和vNMs有何区别?

赞成或反对pSs的都有哪些观点?

鬼蜮模型

鬼蜮模型的“基本模式”指什么?

鬼蜮模型的一般结构是什么?

鬼蜮模型使用哪两种学习程序?

鬼蜮模型和联结主义系统有哪些相似?

结构类别(I)

定位与分布控制的区别是什么?

间接(相关的)存储与直接(随机的)存储的区别是什么?

存储定位寻址与内容寻址的区别是什么?

哪种机器是串行计算的?

哪种机器是部分串行计算,部分并行计算的?

哪种机器几乎是全部并行计算的?

【推荐读物】

概论

对没有专业背景的人来说,关于计算导论性的介绍读物,可见Glymour(1992)第12章和White(2000)。Boolos and Jeffrey(1989)是较清晰的关于计算的逻辑导论著作。haugeland(1985)第4章是可读性较强的关于机器结构的非技术性导论。

图灵机

关于图灵的生平和职业生涯可见hodges(1983)。对图灵机比较全面和完整的介绍可见penrose(1989)第2章。Barwise and Etchemendy(1999)是关于TMs软件及测试的导论。Davis(1958)是最早全面研究图灵机的文献之一,他的选集(1965)包括计算和决策领域的经典著作。对图灵机的经典介绍可见Minsky(1967),特别是第6章和第7章。较早关于图灵机和其他系统的比较研究,可见Gross and Lentin(1970),最新的比较研究见于Odifreddi(1989)第一部分。在Dawson(1998)第2章中,包含了对图灵机及其与认知科学关系的重要评论。

丘奇-图灵论题

Copeland(1996b)是一篇简明且内容充实的研究文献。1987年出版的Notre Dame Journal of Formal Logic 28(4)专门讨论了丘奇-图灵论题。Copeland(1997)讨论了机器的计算功能类别是否等同于图灵机计算的问题(作者认为不是),并叙述了丘奇-图灵论题的普遍(非)公式化问题,以及应用认知科学的非公式化问题。Gandy(1988)详细记录了丘奇-图灵论题的起源和历史发展过程。

冯·诺依曼机

关于冯·诺依曼机的历史著作很多。Augarten(1984)第4章介绍了可储存程序机器的历史,记录了从ENIAC到UNIVAC的发展过程,还包括有一个关于计算发展重要标志事件的记录。关于ENIAC和IAS机器的技术性讨论,可见Metropolis et al.(1980),特别是第四部分。有关冯·诺依曼生平和职业生涯的介绍,可见heims(1980)第2章和第14章,Aspray(1990)第1章和第2章。关于寄存机(冯·诺依曼机)理论的简明论述,可见Minsky(1967)第11章,Clark and Cowell(1976)第1-3章。

产生式系统

Minsky(1967)第13章中对post系统有很好的介绍。Newell and Simon(1972,“历史遗补”)包含pSs的简明历史导论。Barr,Cohen,and Feigenbaum(1981,III,C4)也包含着对pSs的讨论。有关pS结构应用于多种专家系统的研究见Kurzweil(1990),有关pS结构用于模拟心理功能见该书第8章。

鬼蜮模型

除了文中提到的文献外,关于鬼蜮模型描述及其应用的深入探讨还可参见Dennett(1991)。