第三章常用神经网络3.1前馈型人工神经网络前馈神经网络是神经网络中的一种典型分层结构,信息从输入层进入网络后逐层向前传递至输出层。
根据前馈网络中神经元转移函数、隐层数以及权值调整规则的不同,可以形成具有各种功能特点的神经网络。
例如,如果转移函数采用线性阈值函数或符号函数且只有一个输出层(无隐层),或有一个以上的隐层,则分别称为单层感知器和多层感知器;如果转移函数采用非线性连续有界函数且只有一个输出层(无隐层),或有一个以上的隐层,则分别称为单层BP网络和多层BP网络。
3.1.1 线性阈值单元组成的前馈网络这类前馈网络的转移函数采用线性阈值函数或符号函数。
1.单层感知器1958年,美国心理学家Frank Rosenblat提出一种具有单层计算单元的神经网络,称为Perception,即感知器。
感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递。
感知器研究中首次提出了自组织、自学习的思想,而且对所能解决的问题存在着收敛算法,并能从数学上严格证明,因而对神经网络的研究起了重要推动作用。
单层感知器的结构与功能都非常简单,以单层感知器(图3-1神经元基本模型(即MP基本模型。
1)图3-1为第j(j=1,2,…mx n)T,通过一个阈值函数f(从数学观点来说,等于0时,输出为1神经元的连接权值w ji当输入为X,对于jnii jijx ws=∑=1其输出为:2 )(1j ni i ji j x w f y θ+=∑= (3-1)转移函数f (•)是阈值函数(即单位阶跃函数),故: ⎪⎪⎩⎪⎪⎨⎧<+≥+=∑∑==0,00,111j ni i jij ni i jij x wx wy θθ (3-2)通过转移函数,其输出只有两个状态,“1”或“0”,所以,它实际上是输入模式的分类器,即可以辨识输入模式属两类中的那一类。
当单层感知器模型只有1个输出结点时,称为简单感知器,其实就是MP 模型。
对于输出结点为的简单感知器,若输入向量的维数n=2,则向量X 用两维平面上的一个点来表示。
设被观察的模式只有A 、B 两类,则:(3-3)A 、B 两类分别属于集合R 1 (A ∈R 1)、R 2(B ∈R 2),且R 1与R 2是 线性可分的,如图3-2所示。
利用简单感知器的计算式(3-3)可以实现逻辑代数中的一些运算: (1)当取w 1=w 2=1, θ=-1.5时, 完成逻辑“与”的运算功 能,即 x 1∧x 2;(2)当取w 1=w 2=1, θ=-0.5时,完成逻辑“或”的运算功能, 即x 1∨x 2;(3)当取w 1= -1,w 2=0, θ= 1时,完成逻辑“非”的运算功能,即x 。
若x 1与x 2分别取布尔值,逻辑运算列入表3-1中。
表3-1 逻辑运算表若净输入为零,便得到一条线性的模式判别函数:⎩⎨⎧→→=++=+=∑=类类B A x w x w f x w f y i i i 01)()(212211θθ图3-2 线性可分两维模式302211=++θx w x w设 w 1=w 2=1 θ= -1.5 则 x 1有输入样本取为“0”和“1输入样本记为(x 1,x 2):(0,0),(0,1),(1,0),(1,1),用表“*图3-3a 所示。
若θ=-0.5,其他相同,则直线 x 1+x 2-0.5=0进行“或”运算,可分性如图3-3 b 所示。
2)单层感知器的学习方法感知器的学习是有导师的学习,样本向量X 输入到感知器中,感知器的各处理单元按(3-1)式计算,得到实际输出yj,算法就是前面介绍的感知器学习算法,一单层多结点感知器模型,(1(2)输入样本对{X p ,d p },样本对数望的输出向量(导师信号);(3)将X p )s g n(p j jp X W y = (j=1,2,…,m (4)计算各结点对应的权值:jp jp j j y d t W t W [)()1(-+=+∆η其中η为学习率,一般取0<η<1,取值太大影响训练稳定性,太小则使训练的收敛速度变慢。
(5)返回步骤(2),输入下一对样本,周而复始直到d jp =y jp 即d jp -y jp =0为止。
例3-1 单神经元感知器有3个样本对,分别如下:X 1=[1 -2 0 1 ]T d 1=-1 X 2=[0 1.5 -0.5 -1]T d 2=-1 X 3=[-1 1 0.5 -1]T d 3= 1设初始权向量W o =[1 -1 0 0.5], η=0.1,试根据上面的学习规则训练感知器。
解:(1)输入X 1,得4 s 1=W o X 1=[1 -1 0 0.5]⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-1021=2.5y 1=s gn (2.5)=1∆W 1=η(d 1-y 1)X 1T= 0.1(-1-1)[1-2 0 1]=[-0.2 0.4 0 0.2]W 1=W O +∆W 1=[1 -1 0 0.5]+[-0.2 0.4 0 0.2]=[0.8 -0.6 0 0.7] (2)输入X 2,得s 2=W 1X 2=[0.8 -0.6 0 0.7] ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--15.05.10= -1.6 y 2=sgn (-1.6)= -1由于y 2=d 2 故∆W 2=0 , W 2=W 1+∆W 2=W 1(3)输入X 3, 得S 3=W 2X 3=[0.8 -0.6 0 0.7] ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-15.011= -2.1故y 2=sgn (-2.1)= -1所以 ∆W 3=η(d 3-y 3)X 3T =0.1[1-(-1)][-1 1 0.5 -1]=[-0.2 0.2 0.1 -0.2]W 4 =W 3+∆W 3=[0.8 -0.6 0 0.7]+[-0.2 0.2 0.1 -0.2]=[0.6 -0.4 0.1 0.5](4)重复以上三个步骤,即重新输入X 1、X 2和X 3并调整向权量,直到d p -y p =0(p=1,2,3)为止。
通过Rosenlatt 证明,当输入样本是线性可分时,不论初始权向量如何,经有限次修改,最终能找到一个权向量把n 维空间的两类模式用n-1维的超平面线性分开。
必须指出:初始值W 1不同,训练的结果W 也不同,但都能满足误差为零的要求;另外,收敛的速度与η值有关。
3) 单层感知器的局限性1969年Minsky 和Papert 出版了《感知机》这本书,他们指出了简单感知器的局限性问题,只能解决一阶谓词逻辑和线性分类问题,不能解决高级阶谓词和非线性分类问题,如“异或”(XOR )问题。
例如,表3-2给出一组通过异或计算样本,要求经过学习,感知器能产生相应的输出。
假定简单的感知器能解这个问题,那么,根据式(3-3),须满足下列四个不等式:5θθθθθθθθ-<+→<+⨯+⨯->→>+⨯+⨯->→>+⨯+⨯<→<+⨯+⨯2121121221210110010100000w w w w w w w w w w w w从上述可以看出,4个等式无法同时满足,主要是2、3、4式是矛盾的。
即无法使权重分别都大于-θ,同时权重和又小于-θ,即这组权重不存在。
现在用简单的几何图形来说明感知器的分类问题。
当[x 1,x 2]T =[1,0]T 及[0,1]T 时,y=1,图(3-5)中用“*”表示;当[x 1,x 2]T =[0,0] T 及[1,1]T 时,y=0,图(3-5)用“o ”表示。
这个四方形顶点,不存在一条直线将*与o 分开,所以简单感知器无法实现异或问题,这就是简单感知器的局限性。
Minsky 和Paret 认为要解决高阶谓词和非线性问题,必须引入含有隐层单元的多层感知器。
6)5.111()5.111()5.011(21212211-⨯+⨯=+⨯-⨯-=-⨯+⨯=y y f z x x f y x x f y 该感知器的输入层和隐含层的连接;实际上就是在模式空间中用两个超平面去划分样本,如图3-7所示,两条直线为:5.1:5.0:212211=+=+x x L x x L不难看出,输出层相当于一个逻辑“与”运算,这就构成了图3-7所示的两条直线内的区域,从而解决了“异域”这种非线性分类问题。
可以想象到,单隐层神经元数目的增加,可以在两维平面上构建任意的凸域。
所谓凸域,就是双表3-3直观形象地给出了不同隐层感知器的分类能力。
表3-3中,将转移函数限定为符号函数或单位跳跃函数,以便于直观描述感知器的分类能力。
表3-3 不同隐层数感知器的分类能力73.1.2 非线性单元组成的前馈网络这类前馈网络的转移函数采用非线性连续有界可导函数。
1、误差反向传播算法(BP 算法)的基本思想含有隐层的多层前馈网络能大大提高网络的分类能力,但长期以来没有提出解决权值调整的有效算法。
1986年,Rumelhart 和Mccelland 领导的科学家小组在《Parallel Distributed Processing 》一书中,对具有非线性转移函数的多层前馈网络的进行了详尽的分析,提出了误差反向传播(Error Back Proragation ,简称BP)算法,实现了Minsky 关于多层网络能够进行XOR 分类的设想。
由于具有非线性连续有界可导转移函数的多层前馈网络的训练经常采用误差反向传播算法,因此人们也常把这种前馈网络直接称为BP 网络。
BP 算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传人,经各隐层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段;误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信导,此误差信导即作为修正各单元权值的依据。
这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。
权值不断调整的过程,也就是网络的学习训练过程。
此过程一直进行到网络输出的误差2、单层BP 网络图3-10是一单层BP 函数。
当网络实际输出j y 与期望输出j d 误差E :∑∑∑∑====-=-=-=mj ni i ji j m j j m j j j x w f d f d y d E 121112)]([21[21)(21式(3-4沿负梯度方向调权值,即权值调整量与负梯度成正比,即:)...2,1;...2,1(n i m j w E w jiji ==∂∂-=∆η(3-5)8)1,0(∈η为比例系数。
由于BP 算法使权值调整沿负梯度方向变化,故该算法常被称为误差的梯度下降算法。
现推导BP 算法:输出层第j 单元的净输入:i ni jij x ws ∑==1(3-6)输出层第j 单元的输出为:)(j j s f y = (3-7)式(3-5)可写成:jij jjiw s s E w E∂∂⨯∂∂=∂∂ (3-8)式(3-8)中,定义误差信号为jj s E ∂∂-=δ,由式(3-6)i jij x w s =∂∂式(3-8)可写成:i j jix w Eδ-=∂∂,于是式(3-5)可写为:i j ji x w ηδ=∆ (3-9a )式(3-9a )为BP 算法调整权值的元素式,也可写成向量式:T T T T m j jm ji j j X X w w w W ηδδδδη==∆∆∆=∆]......[]......[11 (3-9b )式(3-9b )中,Tn i x x x X ]......[1=,]......[1m j δδδδ=调整后的权矩阵为(k 为迭代次数):T T X k W W k W k W ηδ+=∆+=+)()()1( (3-10)式(3-9a )可进一步展开:jj jjj s y y E s E ∂∂⨯∂∂-=∂∂-=δ (3-11)式(3-11)第一项:)(])(21[12j j mj j j j j y d y d y y E--=-∂∂=∂∂∑= (3-12)式(3-11)第二项:)()](['j j jjj s f s f s s y =∂∂=∂∂ (3-13) 将式(3-11)、(3-12)、(3-13)代入(3-9a )得到输出层BP 算法的最终形式:i j j j i j ji x s f y d x w )()('-==∆ηηδ (3-14)比较(3-14)与(2-13)可知,BP 算法采用的就是δ学习规则。