第4章感知机学习规则4.1目的4.2理论和实例4.2.1学习规则4.2.2感知机的结构4.2.3感知机学习规则4.2.4收敛性证明4.3小结4.4结束语4.1目的本章将介绍一种用于训练感知机网络的算法,使感知机能够学习求解分类问题。为此,这里将从介绍什么是学习规则开始,然后讨论如何设计感知机网络的学习规则。本章最后将对单层感知机网络的优点和局限性进行讨论。4.2理论和实例4.2.1学习规则学习规则所谓学习规则就是修改神经网络的权值和偏置值的方法和过程(也称这种过程是训练算法)。学习规则的目的是为了训练网络来完成某些工作。大致可以将其分为三大类:1.有监督的学习训练集目标{p1,t1},{p2,t2},…,{pQ,tQ}2.增强学习3.无监督的学习4.2.2感知机的结构Wb+输入硬极限层PR×1S×RS×1nS×1SS×1aR1a=hardlim(Wp+b)图4-1感知机网络该网络的输出由下式给出:a=hardlim(Wp+b)(4.2)首先考虑如下权值矩阵:(4.3)我们将构成W的第i个行向量定义为:(4.4)据此,可将权值矩阵W重写为:(4.5)RSSSRRRiii(4.6)由于hardlim传输函数(如图4-2)的定义是:(4.7)ai=hardlim(ni)=hardlim(iWTP+bi)其他如果,00,1hardlim(n)ana=hardlim(n)n=Wp+b图4-2hardlim传输函数所以,如果权值矩阵的第i个行向量与输入向量的内积大于等于-bi,该输出为1,否则输出为0。因此网络中的每个神经元将输入空间划分为两个区域。1.单神经元感知机该网络的输出由下式所决定:a=hardlim(n)=hardlim(Wp+b)=hardlim(1WTP+b)=hardlim(w1,1p1+w1,2p2+b)(4.8)∑输入两输入神经元a=hardlims(Wp+b)p1p2W1,1W1,2bna图4-3两输入/单输出的神经元感知机判定边界判定边界由那些使得净输入n为零的输入向量确定:n=1WTP+b=w1,1p1+w1,2p2+b(4.9)为了使该实例更加具体,现将权值和偏置值设置为:w1,1=1,w1,2=1,b=-1(4.10)那么判定边界是n=1WTP+b=w1,1p1+w1,2p2+b=p1+p2-1=0(4.11)式(4.11)在输入空间中定义了一条直线。为了画这条直线,必须找到该直线穿过轴p1和p2的点。为了求该直线在轴p2上的截矩,令p1=0:(4.12)为了求该直线在轴p1上的截矩,令p2=0:)0(11112,12时当pwpb(4.13)据此可得到如图4-4所示的判定边界。为了确定边界的哪一边对应的输出为1,我们只需检测输入空间的一个点。对于输入p=[20]T,网络的输出为(4.14))0(11121,11时当pwpb110211lim)lim(1hardbPhardaWT所以,对于判定边界右上方的区域网络输出为1。在图4-4中用阴影表示该区域。另外,也可用图解的方法找到该网络相应的判定边界。首先必须注意的是该边界与1w垂直(如图4-5所示):图4-5中的判定边界有下式定义:1WTp+b=0(4.15)下面将运用上述一些概念设计出能够实现“与门”逻辑功能的感知机网络。与门的输入/目标对为:该问题可以用图4-6的方式进行描述。该图依据输入向量的目标显示输入空间。目标值为1的输入向量用黑色圆圈表示,而目标值为0的输入向量用空心圆圈表示。设计的第一步是选择一个判定边界。我们希望有一条直线将黑色圆圈和空心圆圈分割在两个区域。能够实现这种划分的线有无穷条。不过似乎较为合理的选择是直线刚好处于这两类输入的正中(如图4-7所示)。0,0011tp0,1022tp0,0133tp1,1144tp●○下面将选择一个与判定边界垂直的权值向量。这里选择(如图4-7所示)。最后,为了求解偏置值b,可以从判定边界上选取一个满足式(4.15)的点。如果选p=[1.50]T,代入式(4.15),有:(4.17)现在可以通过选择上述的输入/目标对来对网络进行测试。如果选择p2作为网络的输入,则输出为(4.18)221W30305.1221bbbbpWT(4.16)01lim31022limlim21)(hardhardb)(hardapWT可以看出,网络的实际输出等于目标输出t2。2.多神经元感知机对于如图4-1所示的多神经元感知机而言,每个神经元都有一个判定边界。第i个神经元的判定边界定义为iWTp+bi=0(4.19)由于单神经元感知机的输出只能为0霍1,所以它可以将输入向量分为两类。而多神经元感知机则可以将输入分为许多类,每一类都由不同的输出向量来表示。由于输出向量的每个元素可以取值0或1,所以共有2S种可能的类别,其中S是多神经元感知机中神经元的数目。4.2.3感知机学习规则这里学习规则将提供一组能够正确反映网络行为的实例:{p1,t1},{p2,t2},…,{pQ,tQ}(4.20)其中pq是网络的输入,tq是该输出相应的目标输出。1.测试问题在该测试问题中,输入/目标对为:此问题可以用图4-8说明,图中目标输出为0的两个输入向量用空心圆圈○表示,目标输出为1的输入向量用黑色圆圈●表示。1,2111tp0,2122tp0,1033tp为了简化其学习规则的开发,这里首先采用一种没有偏置值的网络。于是网络只需调整两个参数w1,1和w1,2(如图4-9所示)。由于在网络中去掉了偏置值,所以网络的判定边界必定穿过坐标轴的原点(如图4-10所示)。∑a=hardlims(Wp)p1p2W1,1W1,2na图4-9测试问题的网络输入无偏置值神经元图4-11给出了这些判定边界相应的权值向量(记住权值向量与判定边界垂直)。2.学习规则的构造在训练开始时,为网络的参数赋一些初始值。这里仅需对其两个权值进行初始化。这里将1W的两个元素设置为如下两个随机生成的数:1WT=[1.0-0.8](4.21)现在将输入向量提供给网络。开始用p1送入:(4.22)参考图4-12可以看出判决边界初始的权值向量导致了06.0lim218.00.1limlim11)(hardhardb)(hardapWT对向量p1错误分类的判决边界。我们需要调整权值向量,使它更多地指向p1,以便在后面更可能得到正确的分类结果。一种调整方法是令1W=p1。另一种调整方法是将p1加到1W上。这一规则可以表述为:如果t=1,且a=0,则1Wnew=1Wold+p(4.23)在上述问题中应用这个规则,将会得到新的1W值:(4.24)此操作如图4-14所示。2.10.2218.00.1111pWWoldnew现在考虑另一个输入向量,并继续对权值进行调整。不断重复这一过程,直到所有输入向量被正确分类。设下一个输入向量是p2。当它被送入该网络后,有(4.25)p2的目标值t2等于0,而该网络的世纪输出a是1。所以一个属于类0的向量被错误划分为类1了。既然现在的目的是将1W从输入向量所指的方向移开,因此可以将式(4.23)中的加法变为减法如果t=0且a=1,则1Wnew=1Wold-p(4.26)如果在测试问题中应用该规则,可求出(4.27)14.0lim212.10.2limlim21)(hardhard)(hardapWT8.00.3212.10.2112pWWoldnew结果如图4-15所示。现在将第三个输入向量p3送入该网络:(4.28)可以看出,这里1w所形成的判定边界也错误划分了p3。所以按照式(4.26)对1w进行修正:(4.29)18.0lim108.00.3limlim31)(hardhard)(hardapWT2.00.3108.00.3113pWWoldnew如图4-16表明该感知机最终可以对上述三个输入向量进行正确的分类。第三条规则:如果感知机能够正确工作,则不用改变权值向量:如果t=a,则1Wnew=1Wold(4.30)下面是涵盖了实际输出值和目标输出值所有可能组合的三条规则:(4.31)3.统一的学习规则式(4.31)中的三条规则可以统一表示为一个表达式。首先将感知机的误差定义为一个新的变量e:e=t-a(4.32)现在可将式(4.31)中的三条规则重写为:如果e=1,则1wnew=1wold+p如果e=-1,则1wnew=1wold-p(4.33)如果e=0,则1wnew=1wold如果t=1,且a=0,则1wnew=1wold+p如果t=0,且a=1,则1wnew=1wold-p如果t=a,则1wnew=1wold可以将上述三条规则统一成一个表达式:1wnew=1wold+ep=1wold+(t-a)p(4.34)将上式中的p用偏置值的输入1替换,得到感知机的偏置值学习规则:bnew=bold+e(4.35)4.多神经元感知机的训练由式(4.34)和式(4.35)给出的感知机规则,修改单神经元感知机的权值向量。我们能把这个规则按照如下方法推广到如图4-1所示的多神经元感知机。权值矩阵的第i行用下式进行修改:1wnew=1wold+eip(4.36)而偏置向量的第i个元素则按下式进行修改:binew=biold+ei(4.37)感知机规则Wnew=Wold+epT和bnew=bold+e4.2.4收敛性证明∑...W1,1W1,Rnab1P1P2P3...pR输入硬极限神经元a=hardlim(1WTp+b)图4-17单神经元感知机这个感知机的输出可由下式得到:a=hardlim(1wTp+b)网络提供了正确反映网络行为的下述实例:{p1,t1},{p2,t2},…,{pQ,tQ}其中每个目标输出tq取值0或1。1.记号bwx11pzqqn=1wTp+b=xTzxnew=xold+ez其中z′(k-1)是如下集合中的一个元素:{z1,z2,…,zQ,-z1,-z2,…,-zQ}现假设存在对所有Q个输入向量进行正确分类的权值向量,并将这一解记为X*。对该权值向量,假设如果tq=1,那么x*Tzqδ0以及如果tq=0,那么x*Tzq-δ02.证明假设算法的初始权值向量为0,也即x(0)=0。那么迭代k次后,得到x(k)=x(k-1)+z′(k-1)求迭代k次后的权值向量和最终的权值向量解x*之间的内积,可得x*Tx(k)=x*Tz′(0)+x*Tz′(1)+…+x*Tz′(k-1)x*Tx(k)kδ上界:下界:x(k)=z′(0)+z′(1)+…+z′(k-1)*)(*))(*()(22222xkxkxxkxTkkx)(222222**)()(xxkkxkk或请注意该证明是建立在下面三条关键假设基础之上的:1)问题的解存在。2)仅在输入向量被错误分类时才改变权值。3)输入向量长度的上界存在。3.局限性线性可分性4.3小结感知机的结构Wb+输入硬极限层PR×1S×RS×1nS×1SS×1aR1a=hardlim(Wp+b)a=hardlim(Wp+b)