人工神经网络(四)感知器学习规则推导

目前我们接触到的感知器学习规则,数学建模之后,我们知道如何调整权值,使得感知器的切分符合我们的预期输入,下面我们就用一个小推导,看看感知器是如何进行权值调整的:

理论

判定边界 判定边界由那些使得净输入n为零的输入向量确定:
n=1WTP+b=w1,1p1+w1,2p2+b

为了使该实例更加具体,现将权值和偏置值设置为:
w1,1=1,w1,2=1,b=-1
那么判定边界是
n=1WTP+b=w1,1p1+w1,2p2+b=p1+p2-1=0
上式在输入空间中定义了一条直线。为了画这条直线,必须找到该直线穿过轴p1和p2的点。为了求该直线在轴p2上的截矩,令p1=0,为了求该直线在轴p1上的截矩,令p2=0
这里写图片描述

这里写图片描述

据此可得到如图所示的判定边界
这里写图片描述

为了确定边界的哪一边对应的输出为1,我们只需检测输入空间的一个点。对于输入p=[2 0]T,网络的输出为
这里写图片描述

所以,对于判定边界右上方的区域网络输出为1。在图4-4中用阴影表示该区域。另外,也可用图解的方法找到该网络相应的判定边界。首先必须注意的是该边界与1w垂直(如图所示,稍后有说明为什么垂直):

这里写图片描述

图中的判定边界有下式定义:
1WTp+b=0

为什么是垂直呢:
先不加入b判断:
WT的向量表达式为(过原点W1,W2):
向量公式

切线公式为:
w1p1+w2p2=0
=>
w1x+w2y=0
y=-(w1/w2)x
特征:
y=-(w1/w2)x 对比 y=w2/w1x
因为两斜率乘积等于-1.所以两个线肯定垂直
垂直

实例:

  {p1,t1}, {p2,t2},…, {pQ,tQ}                           

其中pq是网络的输入,tq是该输出相应的目标输出。

1.测试问题

在该测试问题中,输入/目标对为:
建模

此问题可以用图4-8说明,图中目标输出为0的两个输入向量用空心圆圈○表示,目标输出为1的输入向量用黑色圆圈●表示。
图示:
图示

为了简化其学习规则的开发,这里首先采用一种没有偏置值的网络。于是网络只需调整两个参数w1,1和w1,2 (如图所示)。

建模

由于在网络中去掉了偏置值,所以网络的判定边界必定穿过坐标轴的原点(如图所示)。
这里写图片描述

图4-11给出了这些判定边界相应的权值向量(记住权值向量与判定边界垂直)。
这里写图片描述

学习规则的构造

    在训练开始时,为网络的参数赋一些初始值。这里仅需对其两个权值进行初始化。这里将1W的两个元素设置为如下两个随机生成的数:

1WT=[1.0 -0.8]
现在将输入向量提供给网络。开始用p1送入:
这里写图片描述

第一次调整

可以看出判决边界初始的权值向量导致了对向量p1错误分类的判决边界。我们需要调整权值向量,使它更多地指向p1,以便在后面更可能得到正确的分类结果。
一种调整方法是令1W=p1。
另一种调整方法是将p1加到1W上。这一规则可以表述为:
如果t=1,且a=0,则1Wnew=1Wold+p
在上述问题中应用这个规则,将会得到新的1W值:
这里写图片描述
此操作如图4-14所示。
这里写图片描述

第二次调整

现在考虑另一个输入向量,并继续对权值进行调整。不断重复这一过程,直到所有输入向量被正确分类。
设下一个输入向量是p2。当它被送入该网络后,有
这里写图片描述

p2的目标值t2等于0,而该网络的世纪输出a是1。所以一个属于类0的向量被错误划分为类1了。
既然现在的目的是将1W从输入向量所指的方向移开,因此可以将式(4.23)中的加法变为减法
如果t=0且a=1,则1Wnew=1Wold-p
如果在测试问题中应用该规则,可求出
这里写图片描述

结果如图4-15所示。
这里写图片描述

第三次调整

现在将第三个输入向量p3送入该网络:
这里写图片描述
可以看出,这里1w所形成的判定边界也错误划分了p3。所以按照式子对1w进行修正:
这里写图片描述

如图4-16表明该感知机最终可以对上述三个输入向量进行正确的分类。
这里写图片描述

规则:如果感知机能够正确工作,则不用改变权值向量:
如果t=a,则1Wnew=1Wold
下面是涵盖了实际输出值和目标输出值所有可能组合的三条规则:

如果t=1,且a=0,则1wnew=1wold+p
如果t=0,且a=1,则1wnew=1wold-p
如果t=a,则1wnew=1wold

统一的学习规则

    式中的三条规则可以统一表示为一个表达式。首先将感知机的误差定义为一个新的变量e:

e=t-a
现在可将式中的三条规则重写为:
如果e=1,则1wnew=1wold+p
如果e=-1,则1wnew=1wold-p
如果e=0,则1wnew=1wold

可以将上述三条规则统一成一个表达式:
1wnew=1wold+ep=1wold+(t-a)p
将上式中的p用偏置值的输入1替换,得到感知机的偏置值学习规则: bnew=bold+e

多神经元感知机的训练

由以上给出的感知机规则,修改单神经元感知机的权值向量。我们能把这个规则按照如下方法推广到如图4-1所示的多神经元感知机。权值矩阵的第i行用下式进行修改:
1wnew=1wold+eip
而偏置向量的第i个元素则按下式进行修改:
binew=biold+ei
Wnew=Wold+epT

bnew=bold+e

小结

判定边界
iWTp+bi=0
感知机学习规则
Wnew=Wold+epT
bnew=bold+e
其中e=t-a。

猜你喜欢

转载自blog.csdn.net/xvshu/article/details/78294325