http://survivor99.com/gevolution/zny/book/4-2.htm
4.2 神经元网络
生理层的研究主要由神经生理学、心理学和人工神经网络几个领域组成。由于我们对生理层的要求倾向于对更高层次的说明,因而比较关心尽可能简化的模型,所以较偏重于人工神经网络的一些研究成果。人工神经元网络(以下简称“神经网”)的研究发端于20世纪40年代,1943年心理学家Mcculloch和数学家Pitts合作提出了形式神经元的数学模型。现串行机的奠基人冯·诺依曼(Von Neumann)在50年代就已注意到计算机与人脑结构的差异,对类似于神经网的分布系统做了许多研究。50年代末,Rosenblatt设计了感知器(Perceptron),试图用神经网模拟动物和人脑的感知和学习能力,这是从工程上实现神经网的早期例子。1962年,人工智能创始人之一的明斯基(M.Minsky)和Papert以感知器为名出版了一本书,从数学上深入分析了感知器的原理,指出了它的局限性,加之当时串行计算机正处于全盛发展期,早期人工智能也显示了“成功”的兆头,使得神经网的研究一度处于低潮,当然在这个低潮时期,也有一些人作出了出色的研究。从80年代开始,经典的符号主义人工智能的局限性逐步明朗化,而神经网的研究又出现了一些重要的突破,例如Hopfield网络声称可以解决著名的“旅行商最优路径问题”(Trauelling salesman problem,TSP),为研究者展现出征服指数爆炸的诱人前景。1986年Rumelhart和McClelland提出了多层神经网的反向传播(Back propagating,BP)学习算法,打破了明斯基的结论所造成的悲观气氛,使得大批的研究者涌入了神经网的研究领域,从而迎来了神经网研究的全盛时期。时至今日,我们可以说,神经网的研究已经进入了成熟的阶段。这里所说的“成熟”并不意味着已有的研究成果十分令人满意,我们可以用神经网为所欲为,而是意味着我们对于神经网可以干什么和不可以干什么有了比较清醒的认识,对于神经网理论上的局限性已经有所理解。从全局的和普遍的角度看,在神经网的领域里,我们仍然匍匐于指数爆炸的雷区之中。明斯基的悲观结论基本上是正确的,在神经网中我们所关心的几乎所有问题在普遍意义上都是指数爆炸的(在专业术语中称为NP完全问题及NP困难问题)。TSP问题的解法没有普遍意义,BP算法对于大规模的复杂问题同样无能为力。这种悲观的结论仅仅说明,只用神经网的原理去实现高度的智能是不可行的,不应该把人脑看成一个均匀的巨大的神经网。反之,神经网作为认知系统的基本原件,以支持更上层的理论则是可行的,此时我们只需要对神经网课以较低的要求,即解决小规模的简单问题,而把由小智能积累成大智能的任务留给更高层次的理论去解决,那么我们就用不着和指数爆炸正面冲突了。从这一点出发,我们在神经网领域中所关心的问题就会有一些特色,与一般的神经网研究的重点有所不同。
我们所关心的一个问题是,在神经网中处理的基本信息形式是什么。对此有两个可选择的方案,一个是模式,一个是符号。人脑的神经网中所处理的信息到底是模式还是符号,这种本体论的提问方法是没有多大意义的。对于神经网中的同一组信息,我们都是既可以把它看成符号,也可以看成模式的,问题仅在于怎样看对于理论的展开更为有利。由于这种看法的不同,就出现了符号主义和连接主义、逻辑主义和格式塔学派的区别。例如,对于一个神经元,我们既可以把它看成完成某种逻辑运算的门电路,也可以看成对于某一类特定模式起反应的分类器。对于一个字母A,既可以看成是一个符号,也可以看成一个特殊的图形,加上一定的读音,图形和声音都是模式。字母“A”在计算机中用ASCII码表现为十六进制的41,可以把它看成一个数字(符号),即十进制的65,也可以看成一个二进制的0和1的排列,即01000001,是一个模式。从认知的角度出发,我们在神经元和神经网这个层次上倾向于用模式作为基本信息形式。这种选择出于以下几点理由:第一,我们从外界直接获得的信息是模式信息,如果认为思考是一个符号处理过程,二者之间的变换,特别是变换过程的学习将会遇到
很多困难,这些困难实际上是由符号处理这个多余的假定造成的,我们见到一个字而读出它的发音只需要完成从图形模式到口腔及声带肌肉运动模式的变换,中间并不一定需要经过模式与符号的变换与反变换过程。第二是模式之间存在着自然的类似关系;例如可以在模式空间中定义欧几里德距离或是模式向量夹角余弦之类的类似关系,从而定出所有模式之间的“自然的”相似程度。虽然这种“自然的”相似程度未必符合认知主体的主观要求,但可以以此为基础逐渐修改到合乎要求。但是对于符号来说,原则上不存在“自然的”类似关系,符号之间的一切关系要依赖人为的定义,因此以符号为基础的系统,通常难以具备自组织和自学习的能力。当然我们选择模式作为信息的基本形式,并不仅仅出于以上的两个浅层理由。更深层的背景是,我们认为人和其他生物的生存目标并不是追求合乎逻辑的真理,而是追求生存本身;思维的基本任务不是认识客观事物的本来面目,而是找到最佳的活法;思考的基本方式不是逻辑演绎,而是利害的权衡。有人认为基于符号和逻辑运算的计算机之所以显得比人脑僵化和死板,是由于人所常用的概念具有模糊性,例如年青和年老的区别,热水和温水的区别,都没有确定的分界,从而主张采用模糊(Fuzzy)逻辑以使计算机
接近人脑。但是人脑与符号系统的最重要的区别并不在于概念的边缘是否清晰,而在于概念的相对性和主观性,例如人们常随着自身的年龄增长而把划分年青与年老的界限提高,人的皮肤的皱纹多少也会使人看起来显老的程度与实际年龄有很大差别,像这种多因素的相对概念用模糊逻辑处理并无太大的优越性,因为模糊逻辑与普通的二值逻辑一样属于绝对的体系。权衡是多因素的相对比较,而模式是表达多因素信息的有效形式。
从认知的分层理解的立场来看,上述“连接主义”倾向只是我们在生理层和心理层所持的态度,对于其他层次可以视需要而采用不同的观点。例如在生理层之下的物理层中,神经元及神经网在原则上都可以用理想的图灵机或现实的冯·诺依曼型计算机在任一精度上进行完全的模拟。因此,“图灵机可以模拟人脑”这个命题可以接受。在这个意义上,我们有理由把人脑看成一个“物理符号系统”。在心理层之上的文化层中,例如当我们讨论语言与逻辑的关系时,把语言看成一个符号系统当然是很方便的。经典人工智能和“符号主义者”们的失误并不在于对符号的重视,而在于对符号所组成的其他更复杂的信息形式的无视。由于看不到生理层与心理层的存在,把文化层直接还原到物理层,导致了不像智能的人工智能。举一个简单的例子就可以说明文化层与物理层的区别:计算器可以进行加减乘除的计算,儿童在学过算术之后也可以作算术运算,谁也不会否认作算术题对于人来说是一种智能活动,但是计算器的算术运算与人的算术运算显然具有不同的原理。谁也不会认为儿童在学过算术之后在大脑的某个部位组织出一个与计算器相同的神经电路。人学习算术是一个复杂得多的过程,首先是一个文化过程,学习算术需要文化环境,起码的文化交流能
力(广义的语言),还要有心理因素:必要的基础知识,必要的理解能力,学习的愿望,记忆的能力,以及掌握技能(算法)的能力等等,所有这些,都是计算器所不具备的。从这种层次的区别,我们可以知道人所进行的逻辑思维与计算机的“逻辑思维”在原理上是不同的,人的逻辑思维是一种文化现象,依靠着心理层的形象思维(模式联想)的支持,所谓逻辑思维通常是指运用语言组成的智能模型所进行的思维过程,这种过程与计算机中的逻辑运算共同之处不多,可以说,人不能够进行计算机那种“纯粹的逻辑思维”。因此,我们不能认为造出计算机就意味着掌握了人脑的逻辑思维的规则,正如造出计算器不意味着知道人作算术的过程一样。由此可知,所谓人的逻辑思维是建立在形象思维基础之上的一种后天技能,把人的思维看成是逻辑思维与形象思维两种同等地位的思维方式的组合,甚至根据某些实验断定左脑和右脑分别进行形象思维和逻辑思维,都是过于简单化的想法。从认知的阶层理论出发,我们就很容易理解诺尔曼所说的“我们确实是个物理符号系统,但不仅仅是个物理符号系统”这句话的具体意义。也就是说,认知系统最终一定可以还原成物理符号系统,但是这种还原必然是多层
次的,需要通过很多不同层次的概念才能逐步完成。要想理解人的认知过程,只有符号处理的机制是不够的,还要加上其他各层次的机制。
从认知的阶层性理论出发,我们可以探讨在生理层次之中,为了支持上层的功能,神经网应具有哪些最低限度的基本功能。或者说,在已经经过详尽研究的众多的神经网模型和功能之中,我们选择哪一些作为支持上层机制的基础。从原则上来说,为作为基础而选择的模型或功能应该是尽可能简单而通用的。用细胞来作比喻的话,研究单细胞生物的细胞与研究复杂生物组织中的细胞所关心的重点不同,像草履虫这样的单细胞生物,我们需要知道它的摄食、消化、排泄、运动方式等一系列功能,但是对于人的肌肉组织中的肌肉细胞,我们通常只关心它接受神经信号收缩的功能,这样已足以说明肌肉的运动。这就如同在机器的总装配图中,我们不必去表现零件的细节,只着重表现零件与整机工作原理有关的功能和各零件之间的关系。按照这样的简化原则,对于神经网我们只讨论以下的四个功能:模式联想、函数逼近、上下通讯、串并行变换。
在讨论模式联想的功能之前,我们先对模式的概念作一个简单的说明,模式通常是指具有一定的空间或时间分布的信息,当然也有一些模式并不一定在实际的时空之中,但也总可以在人为的时空之中给予表现。这个特点是与符号的最大区别,通常我们认为符号是不具有时间和空间分布的,如同几何学上的点。当不止一个的符号连成一串时,我们可以把这个符号串看成一个模式,因此符号与模式是密切相关的。模式的另一个特点与分类和识别有关,即模式往往带有某一类的时空分布信息的含意,这个问题比较复杂,放在模式识别的部分讨论。对于具有时间或空间分布的信息,往往可以用时间或空间坐标的函数来表现。由于神经元的离散性,加之任何认知主体的感觉信息输入都不可能也不需要有无限的分辨率,对于函数表现的模式可以进行离散化而不失其普遍性,即在时空中间只取有限个坐标的表现。把有限个坐标与自然数对应,模式可以表现为函数值的有顺序的集合,可以称之为数组或有限维向量。当数组中的各元素取不同的值时就表现不同的向量,即不同的模式,所有向量的集合称为向量空间,或称为模式空间。对于一个神经元来说,各输入端的输入信可以组成一个模式(向量),各输入端的权值也可以组成一个模式。对于神经网来说,各神经元的兴奋度分布也可以看成模式,各输出端的输出值也构成一个模式。
模式联想的功能可以用联想存储器来实现,联想存储器可在两个或两个以上的模式之间建立稳定的联系,当神经网输入某个模式或与之相近的模式时,在输出端可以得到与之相对应的另一个模式,就完成了模式联想的功能。在神经网中建立模式联想能力的过程称为学习过程,也就是联想存储的过程,即通过学习把模式联想关系存储到神经网之中,此时神经网相当于一个联想存储器。几乎所有类型的神经网都可以用作联想存储器,例如感知器,BP网,Hopfield网等等,因此可以说建立模式联想是神经网的一个基本功能。各种神经网的学习算法有所不同,这里不作详细介绍,只考虑模式联想的共同特性。联想存储器与通常计算机中的存储器最大的不同之处在于,它不像计算机的存储器那样靠地址来寻找内容,而是靠内容来寻找内容,即所谓的内容寻址,从一个模式联想出另一个模式,而且允许输入模式含有一定的噪声或残缺,而计算机的地址是不允许有丝毫差错的。
我们注意到一个数组可以切分成若干段,成为几个短的数组,若干个数组也可以连接起来构成一个长的数组,那么一个联想存储器的输入或输出模式也都可以分为若干段,赋予不同的意义。输人中的任一段模式的改变,都可能影响整个模式,使输出发生变化。这意味着可以由输入的某些部分控制整个联想的结果,这些部分可以是场合(Context)或者情绪之类的模式信息。如果我们存储的联想关系中输出的模式与输入的模式相同,就构成了自联想存储器,此时输入一个有失真或残缺的模式可以得到正确而完整的模式,从而可能用任何一小段模式的输入把整个模式的其他各段联想出来,这意味着一种双方向或多方向的联想,也就是把几个模式连接成一个大的模式存到自联想存储器中,那么输入其中的任何一个或几个模式,都可以把其他模式联想出来。
对于存储了若干对模式联想关系的神经网来说,输入若干个模式,将会联想出若干个输出模式与输入模式一一对应。这种关系可以看成一个函数关系,也可以称之为映射或变换。从这个观点出发,神经网的学习或联想存储的过程可以看成是函数逼近或生成映射关系的过程。联想存储与函数逼近的机制相似,但这两种看法体现的要求有所不同。联想存储往往要求存储的多个联想关系之间尽可能隔离而互不干扰,即强调各采样点的孤立性,或者说是侧重分化的;而函数逼近则往往侧重于泛化,力求用较少的采样点逼近函数,而可以自动进行内插和外插,使未知的输人模式也能得到适当的输出模式。如果所要逼近的函数比较简单,例如线性变换,学习是很容易的,但是如果要逼近的函数是复杂的非线性变换,虽然从理论上多层神经网可以实现任意复杂的非线性变换,但其学习过程是指数爆炸的。
如果我们把神经网看成是大规模的神经网群体的一个部件,神经网之间的通讯就显得比较重要了。为了把这种复杂的通讯关系整理得较为清晰,我们把神经网的输入和输出各分为两大部分,一部分是通向上层神经网的,另一部分通向下层神经网。这样不管神经网的内部结构和功能如何,从外部通讯角度看,它具有四类通道,即向上层的感觉输出,向下层的控制输出,上层来的控制输入和下层来的感觉输入。对于这样的外部特性,我们称之为四端神经网。每一类通道都可以包括不只一个其他神经网的模式信息通道,在多数情况下,这种通道是双方向的,即包括感觉与控制两个方面。对于神经网之间的上下层比较,可以采用这样的原则:相对接近末梢的感觉和控制端而远离中枢神经的算下层,而远离末梢接近中枢的算作上层。就像火车车次的规定一样,从北京开出的火车为单号车次,是下行列车,而开回北京的是双号车次,算作上行。下行列车先到的车站可以定义为后到车站的上层车站。对于神经网也可以定义上行的信息为感觉信息,下行的信息为控制信息。按这样的定义二环路上的车站都是同层的,但是可以在每次任务中分出不同的层次,例如有一辆车在从市内开往市外的下行途中在二环路上行驶了一段,那么在这个任务中可以认为先经过的站是后经过的站的上层站。这就像在计算机的操作系统中,控制显示器和键盘的程序与控制磁盘的程序同层,当键盘输入汉字需要参照词典而调用磁盘文件时,磁盘控制程序是下层,反之,当磁盘读写出现问题在显示器上显示错误信息,要求键盘输人处置方式时,显示器和键盘的控制程序是磁盘控制程序的下层。这是上下层关系依存于任务的相对性。
串并行变换不是神经网的典型功能,但是认知主体有时需要处理分布于时间轴上的模式,例如听觉、运动视觉和时间序列的动作等等,而神经网通常处理的是同时的空间模式,因而时间模式与空间模式之间的串并行变换就成为认知系统所必需的功能。串并行变换最典型的模型是计算机中的移位寄存器,如图4.3所示。图中每一个方格代表一位的寄存器,可以
存放一位数字,在时钟的驱动下,移位寄存器每收到一个时钟脉冲就从左边的串行输入端取一个数字放在D1,而把D1中原有的数字存人D2,依此顺移,D6的数字从串行输出端送出。这样在并行输出口总是出现前六个时钟串行输入的串并行变换结果。如果把并行输出口改为并行输入口,在并行输入一组数字后,用6个时钟脉冲按同样原理可以在串行输出端得到并串行变换的结果。这样就完成了时间模式和空间模式之间的相互变换。用具有延时特性的神经元也可以构成串并行变换器。假定每一个神经元都在输入信号之后经过相同的延迟时间在输出端产生与输人相同的输出,把这些神经元一个接一个的串连起来,每一个神经元的输出接到下一个神经元的输入,就可
以完成串并行变换的功能。第一个神经元输入串行模式之后经过若干个延迟时间,这一串神经元各自的输出端就可以得到并行模式。
利用神经网的模式联想功能,也可以产生或识别复杂的串行模式。例如有一个按时间顺序排列的模式串P1,P2,…,PN。可以在联想存储器中存入这样的联想关系:P1→ P2,P2→ P3,…,PN-1→PN,把联想存储器的输出反馈到输入,此时只要输入P1,联想存储器就会联想出P2,P2再返回输入端联想出P3,从而按时问顺序联想出整个的模式串,如果模式串是首尾相接的,即PN=P1,那么联想可以循环下去,直到发生控制中断。这样产生的模式串,可以作为运动的控制信息。同样的神经网也可以用作模式串的识别,此时需要再加一个比较器,当输人口输入一个模式串时,每输人一个模式,都可以在神经网的输出口得到对下一个模式的预测,用预测模式与下一个输入模式在比较器中进行比较,得出差异,根据差异积累值的大小,可以判断输入模式串与存储模式串是否一致,实现识别的功能。
下面我们分析一个具体的神经网模型——二多层神经网,以讨论回避指数爆炸的策略。二多层神经网的模型示于图4.1(a)。二多层神经网是一个前馈网络,由输入层和输出层组成。与普通的二层神经网不同的是,其输出层的神经元排有前后顺序,顺序靠后的神经元接受所有顺序在前的神经元的输出作为其输入,而后方的神经元对前方的神经元没有影响。其学习算法是这样的:假定其输入层有N个神经元,输出层有M个神经元,并按从1到M进行前后顺序的编号。学习时使用L个N维输人数组和与之对应的L个M维输出数组作为学习样本。学习按照输出神经元的顺序逐个神经元进行,先对第一个输出神经元进行学习,选M维输出数组的第一个元素与之对应,学习时采用二层神经网的学习算法。如果样本中的第一个输出元素与输入之间的关系不是线性可分的,那么学习失败,再依次选别的元素作为第一个输出神经元的学习样本,直到学习成功并记下第一个神经元对应哪一个输出元素。此后再对第2、第3直至第M个输出神经元进行类似的学习,仍然采用二层神经网的学习算法,所不同的是,前面已经学习过的输出神经元的输出同时作为输入参加学习。如果学习途中遇到某个神经元在未学习的输出元素中找不到一个与输入和前输出构成线性可分关系的元素,则学习由于失败而中止。图4.4(b)是一个可以学习成功的实例,4个输人模式是(0,0)(0,1)(1,0)(1,1),与之对应的4个输出模式是(0,0)(0,1(0,0)(1,0)。输出模式的第一个元素是逻辑与(AND),是线性可分的,因此作为第一个输
出神经元可以学习成功,第二个元素是异或(XOR),对输入而言不是线性可分的,但是加上A ND作为第二个输出神经元的第三个输入时,XOR就成为线性可分的了,因此也可以学习成功。二多层神经网由于总是使用二层神经网的学习算法。因此学习收敛很快,不会遇到指数爆炸问题,但同时又是一个多层网,可以解决线性不可分的复杂非线性问题。当然二多层神经网并不是在任何情况下都能顺利学习的,它还存在着两个难题。但是我们在这里讨论二多层神经网并不是为了提出神经网的新的学习算法,而是为了说明一些重要的观点提供一个简单的模型。第一个难题是,我们怎样判断一个输出神经元的学习是否成功?从理论上讲,二层网只能解决线性可分的问题,因此如果一个输出神经元用二层网的学习算法学习线性不可分的问题则肯定失败。但是判断一个逻辑函数是否线性可分在理论上是一个指数爆炸的问题,这就是第一个难题的困难之所在。但是这个理论上的困难在实际上并不是太大的问题,如同计算机的操作系统原则上无法判断用户程序是否陷入了无限循环,但却可以对用户程序设定最大CPU时间,当用户程序运行超过这一时间时中断用户程序并通知用户。由于二层神经网的学习算法对于线性可分的问题通常收敛比较快,所以可以规定一个不太多的学习次数限制,在限制次数之内学习不收敛者算作学习失败。第二个问题是比较重要的,就是二多层神经网学习的成功依赖于输出端的学习模式必须满足一种苛刻的条件,即至少有一个元素是线性可分的,而其他元素必须由更浅层的元素经过线性可分的步骤积累起来。在图4.4(b)的例子
中,这个问题可以表现为我们怎么知道学习XOR问题需要AND作为前提条件呢?这个问题的回答只能是“不知道”,因为把线性不可分的函数化为多层线性可分的函数显然属于指数爆炸的问题。这个问题也可以用一般的多层前馈网模型来表现,如果可以把一个复杂的线性不可分的问题分解成若干个线性可分问题的组合,就可以逐层地用双层网学习算法逐步完成多层网的学习,但是这个分解通常是困难的。
在充分认识上述困难的基础之上,我们可以得到认知科学中关于获得知识的一个重要的原理,我们称之为“短桥原理”。“短桥”是一个形象化的比喻。我们把知识看成是无知的大海中的岛屿,而认知即获得知识的过程,就相当于到达新的岛屿,增加可到达岛屿的数量。我们的认知能力受到指数爆炸的限制,不可能一下子走得很远,这就意味着我们所能建造的桥梁的跨度是有限的。我们只能建造短桥到达邻近的岛屿,这就是“短桥原理”。很多短桥连接起来,可以形成一个长桥,但是每次所能修建的只能是一个短桥。短桥原理是广义进化范式在认知科学中的表现,正如在进化过程之中,只能依靠小创造的积累来实现大创造一样,在认知过程中,任何新的知识都只能在充分的接近旧知识的基础上才能得到。对于任何认知系统来说,不是所有问题都是能够解决的,能够解决的问题局限于已有知识的有限距离之内。因此能够解决一切问题的“通用问题求解系统”(GPS)是不可能实现的。从这个观点出发来看二多层神经网模型,就可以明白这个模型的意义不在于能否解决特定的具体问题,而在于它虽然只能解决线性可分的简单问题,但在每解决一个问题之后,它的知识都会增加,解决问题的能力增大,使得原来线性不可分的一些问题进入线性可分的范围。就如同图4.4(b)的例子在解决了A ND问题之后使得XOR
问题转化为线性可分的问题。这也是认知科学与传统人工智能在观点上的区别,我们建立一个认知系统主要不是关心它有多强的智能,而是关心它能否自己提高智能。冯·诺依曼在讨论计算机与人的不同点时指出,计算机的逻辑深度很深而人类思考的逻辑深度是很浅的。这是由于计算机所进行的运算通常是由人规定好而不需要学习和变更的,而人的有意识的思考则总是伴随着学习过程,为了回避指数爆炸,不可能处理逻辑深度很深的问题,而在无需意识参与的固定化了的人脑信息处理过程之中,所处理的逻辑深度同样是很深的,例如视觉和听觉等信号的处理,是相当复杂而多重的过程。而在有意识的思考之中,例如要理解一个数学定理的证明,则要求证明的每一步都不能跳跃过大,否则就很难理解了。二多层神经网也是如此,学习完成之后可以处理复杂的线性不可分的问题,但每次的学习都限制在线性可分的浅层逻辑范围之内。
二多层神经网模型和“短桥原理”便我们注意到这样一个事实,即我们能否学习或创造某种知识受到我们过去所学到的或已经创造出的知识的制约。我们所拥有的浅层知识越丰富,学习或创造更深一层知识的能力也就越强,但是由于认知系统资源的限制,浅层知识不可能无限的扩展,因此对浅层知识的选择就成为至关重要的问题了,这种选择决定了认知系统未来的学习能力。但是由于通常未来的学习和创造的目标是未知的,而且即使知道也不能由深层知识的信息来判断出对浅层知识的需要,因而为知识的选择建立价值体系就显得非常重要,这就是我们特别重视价值体系的原因。人类之所以拥有比其他动物远为丰富的感情世界,就是由于复杂的学习过程对感情的评价体系有着更高的需求。
No comments:
Post a Comment