11.4 表 征
绝大多数联结主义者和非联结主义者都会赞同这样的说法,即想要对人类认知能力作充分的解释,就需要将认知看作部分地涉及表征“操作”(生成、转换和删除)。那么认知功能的联结主义模型就必须能够模拟这个过程。正如我们在第二部分中提到的,应用联结主义模型时存在两个问题:
(Q1)
联结主义模型“操纵”(生成、转换和删除)表征的类别?
(Q2)
联结主义模型的表征如何表征它们所表征的事物——什么决定了所表征的内容?
两个问题都被称为表征难题。需要注意的是,表征难题Q1中的“表征”为复数(the problem of representations),表征难题Q2中的“表征”为单数(the problem of representation)。回答第一个问题需要知道联结主义模型表征的(1)结构和(2)它的主要程式及特征;对第二个问题的回答可以让我们知道(a)在什么的条件下,某事物才可说是一种表征,即表达了某物,以及(b)表征的内容确切地由什么决定。
问题1:联结表征的种类
在众多的联结主义著作中,对于表征的操作(生成、转换和删除)本质,提出了很多方案。但由于一些术语比较模糊,而使这个问题变得复杂。为了能够清楚地给予说明,我们采用下面的约定(再次需要注意,既然并不是所有人都赞同这些表达,我们也不必过于严格,尤其是在阐述他人观点时):
几个术语
定位式(定点)表征:单个单元的激活,表示某一范围内的某个元素,如一个具体概念、性质或者个体。
准分布式表征:一组单个单元的激活样式,表示某一范围内的某个元素,并且这些单元并不参与其他表征。
(完全)分布式表征:一组单个单元的激活样式,表示某一范围内的某个元素,并且这些单元也同时参与其他表征。
定位式表征
定位式表征的基本观点是,一个具体单元专用于某一具体“概念”。前面的NETtalk网络的输入单元就是这样,一个单个单元专用于表征一个字母,这样的程式是直觉和简单的。定位式表征是非常简明和容易理解的。但作为一种认知模型却有着严重缺陷,并且不能在神经硬件上直接实现。
定位式表征的缺陷
因为表征是直接在神经硬件中实现的,因此定位式表征面临的首要难题是神经死亡:脑每天都会死亡成百上千的神经元,如果脑采用的是定位式表征,那么每天也必然会消失一些不确定的概念,但是我们几乎从没有注意到一些概念突然消失,比如说“祖母”。费尔德曼(Feldman,1989:75)认为,这个缺陷可将某一表征分布到至少三个到四个神经元中才能消除[2]。第二个缺陷是并没有足够的神经元表征人所接触到的所有事物,包括所有的概念以及概念间的关系。例如,视觉系统需要感知六维空间的信息,即使每个维度在最低水平的106个像点上只处理10个值,还至少需要1012个神经元——这实在太多了(参见Feldman,1989)。最后一个缺陷是,每学习一个新的概念,都需要找到一个与先前所有概念关系连接正确的节点,或者重组网络中相关的所有的连接关系。因此,这种程序(经常)在生物学和计算科学中受到质疑(参见Rumelhart and McClelland,1986a,第3章)。
分布式表征
即使我们同意定位式表征满足直觉的特征,然而在神经水平上却不可实现,计算也不充分,因此需要给概念表征添加更多单元解决这个问题。NETtalk输出单元就是一个显著的例子。在那里,音素表征分布在多个不同特征的单元中,这些具有不同特征的单元能够同时参与表征众多不同音素。
技术性补充 简单程式和它的难题:思考这个简单例子,如何表征一架飞机上的位置点(或者在视线范围内的一个虫子)。有两组可用的单元,一组表示在X轴上的位置,另一组表示在Y轴上的位置,这样我们或许就能够表征点2的位置。
也就是说,点2的位置可以用一对矢量表示:〈X:0100〉,〈Y:1000〉。如果想要也表征点3,就必须使矢量变复杂。
我们可得到:2=〈x:0001〉,〈y:0010〉;3=〈x:0001〉,〈y:0010〉。
绑定难题(The binding problem)
2′=〈x:0001〉,〈y:0010〉与3相同(或者看看对角线上的值)。这样的“串扰(crosstalk)”的产生称作绑定难题。
解决方案1:合取编码(conjunctive coding)
一种解决方法是对每一对可能的X和Y
个单元。因此,点2的节点为(b,h),它的重影2′是节点(d,f)。点3与它的重影3′的节点与之类似。这就解决了在这个简单例子中的绑定难题。但随数值的增加,很快会加重计算负荷。
如果我们在操作上将这种表征系统精确地定义为:点在平面移动一定标准间隔而产生的不同编码数目——那么为精确地获得某一具体点的表征,需要合取编码的数目与这个点数值的平方根成比例(参见Rumelhart and McClelland,1986a:90)。显然,这并不是最佳方案。
解决方案 2:粗编码(coarse coding)
“粗编码”是一很有前景的技术。使用这种方法,将单元视作二维圆环,多个单元环在输入域相互交叉。使用大的单元环好,还是小的单元环好呢?凭直觉,也许会选择后者。但事实上是前者更有效,因为表征的精确度与单元环的数量(n)以及它们的半径(r)相关:a=n×r(“=”指“成正比”)。所以增大单元环的半径也就增加了精确度(参见Rumelhart and McClelland 1986a:91)。如果交叉点(普遍特征)在空间中的分布较为广泛,那么这种类型的表征会表现得更好。但如果单元间靠近得过于紧密,又会有被编码为是同一组单元的危险。这种风险是获得精确度必须要承担的。
微特征
我们将在第12章中讨论,按照斯莫琳斯基的观点,联结主义模型是介于经典概念层(例如,框架)和神经层间的操作(参见Smolensky,1988a)。他称之为“次概念”层,也就是“直觉处理器”层。在这个层次上,“表征是基于众多单元参与的复杂激活样式,每个单元都能够参与若干种样式”(1988a:6)。样式作为整体才具有概念解释或者语义特征,并不涉及构成它们的单元:“那些单元并没有概念的语义特征:它们属于次概念”(1988a:6)。那么,样式在语义特征中所起到的作用是什么?目前还没有一种一般性的答案,因为每种模型都有其将激活样式与概念解释相联系的独特程序。在实际操作中也有一些总的应用策略。其中一种是借助某领域内高层次概念描述中的分类,如向节点指派语音或者图像特征。另一种是在使用多维排列、层级聚类分析等训练方法时,分析隐层单元的表征形成过程。
对于第一种方法,需要注意到模型适用领域的高-层次描述可以是常识性的。例如:
咖啡的联结表征,是装有咖啡的杯子的表征减去没有咖啡的杯子的表征……事实上,除激活样式外余下的都属于激活特征,例如,具有扁平表面的棕色液体,具有曲线边缘和底面的棕色液体,与瓷器相关、热的、有烧焦气味的棕色液体。这就表示了咖啡,在某种意义上——咖啡是在杯子里的内容。(1988a:16)
再来看第二种方法。对隐层单元的分析说明,网络能够形成有关类别的表征,这种类别对于“处在刺激中”是有意义的,但显现得并不是非常清晰。这些类别在NETtalk网络的隐单元层分析中发现是一种潜在的固定排序。
至此,我们已经将联结表征分为定位式(定点)和分布式,并注意到在某些模型中对于一些信息来说是定位式(NETtalk:字母以及他们的独有特征),而对于另一些信息来说是分布式(NETtalk:单词和音素)。还存在其他一些可能的表征种类:
类型1:有关这种类型的示例是我们刚提到的斯莫琳斯基的“咖啡”。某一样式可表征,比如,一只杯子;它的构成节点可表征有关这个概念的微特征。NETtalk的输入层和输出层也符合这一类型。
类型2:有关这种类型的示例是NETtalk的隐单元层,它的激活样式表征元音和辅音,但所有的单个节点并没有解释。
类型3:有关这种类型的示例是将在第13章中讨论的命题网络,样式表征命题,但其构成节点并没有特殊的语义值。
类型4:有关这种类型的示例是递归网络。在递归网络中,表征从网络随时间变化采集调整不同结构关系的指令中获得。也就是斯莫琳斯基所说的“张量空间(tensor product)”表征。
采用分布式表征的一些优点
在联结主义模型中,分布式表征比之定位式表征具有很多优点,我们将在后面两章讨论。正是由于分布式表征的这些优点,才引起人们对联结主义机器的关注。我们在这里对这些优点略作了解,无疑是有益的。分布式表征被人们普遍认可的优点是:具有内容寻址性、样式完备性、(自发)归纳能力、容错性,以及网络受到部分损坏时功能渐次衰减和较强的再学习能力等。所有这些优点彼此依赖,而非完全独立。如我们在第6章中讨论的,“内容寻址性”与定位寻址性相比较——材料的储存是依据它所表征的内容,而非(任意的)地址。如果被存储的信息(在内容上)与所期望的信息接近,那么可以直接对之提取。“样式完备性”,是指采用分布式表征的系统能够正确地识别部分缺省的输入。“自发归纳”,是指系统能够激活与目标节点相关的节点的能力,具体特征越具有“普遍”性,越能激活更多的节点。“容错性”,是指系统能够兼容错误信息,或者即使输入信息有误,也能找到正确的答案或者最适合的答案。“渐次衰减”,是指系统总会出现程度不同的损坏情况,但系统并不会崩溃,而是表现为整体在不同系统性能上,如速度或精确度,有所下降。最后,“较强的再学习能力”,是指如果系统受到破坏,如它产生了大量噪音,那么再次对其训练,可以以比先前更快的速度重新学习,甚至会提高先前训练所忽略的节点表现——也就是说,再训练时系统提高了“归纳”能力。
问题2:联结表征的本质
我们已经介绍了三种表征的承载者:输入单元、输出单元和隐层单元;获得表征效力的三个来源:程序员指派、学习和先天固有。程序员指派表征似乎没必要讨论,因为它只是简单地把表征本质难题退回了一步:程序员所指派的表征用什么(如何)表达其所表征?这一问题,当解释单元会去做什么时就变得清楚了,这一问题的意义就是在探明当给定模型信息时它做了什么。通过深入了解模型行为如何能被解释,可以知道赋予机器的表征所倾向于具有的内容。程序员所指派的语义,最终要么归结于模型通过学习获得,要么归结于模型先天固有。最值得关注的是通过学习获得的表征——机器自身对刺激形成的表征(或者通过无监督学习偶然发现,或者有监督学习)。明显地,输入单元和输出单元是通过程序员指派语义,而隐层单元则通过训练获得语义。