Download presentation
Presentation is loading. Please wait.
1
第4章 感知器(Perceptron)
2
感知器是由美国计算机科学家罗森布拉特(F.Roseblatt)于1957年提出的。
单层感知器神经元模型图: 图4.1 感知器神经元模型
3
F.Roseblatt已经证明,如果两类模式是线性可分的(指存在一个超平面将它们分开),则算法一定收敛。
感知器特别适用于简单的模式分类问题,也可用于基于模式分类的学习控制中。 本节中所说的感知器是指单层的感知器。多层网络因为要用到后面将要介绍的反向传播法进行权值修正,所以把它们均归类为反向传播网络之中。
4
4.1 感知器的网络结构 根据网络结构,可以写出第i个输出神经元(i=1,2,…,s)的加权输入和ni及其输出ai为:
5
感知器的输出值是通过测试加权输入和值落在阈值函数的左右来进行分类的,即有:
阈值激活函数如图4.3所示。
6
4.2 感知器的图形解释 由感知器的网络结构,我们可以看出感知器的基本功能是将输入矢量转化成0或1的输出。这一功能可以通过在输人矢量空间里的作图来加以解释。 感知器权值参数的设计目的,就是根据学习法则设计一条W*P+b=0的轨迹,使其对输入矢量能够达到期望位置的划分。
7
以输入矢量r=2为例,对于选定的权值w1、w2和b,可以在以p1和p2分别作为横、纵坐标的输入平面内画出W
以输入矢量r=2为例,对于选定的权值w1、w2和b,可以在以p1和p2分别作为横、纵坐标的输入平面内画出W*P+b=w1 p1十w2 p2十b=0的轨迹,它是一条直线,此直线上的及其线以上部分的所有p1、p2值均使w1 p1十w2 p2十b>0,这些点若通过由w1、w2和b构成的感知器则使其输出为1;该直线以下部分的点则使感知器的输出为0。 所以当采用感知器对不同的输入矢量进行期望输出为0或1的分类时,其问题可转化为:对于已知输入矢量在输入空间形成的不同点的位置,设计感知器的权值W和b,将由W*P+b=0的直线放置在适当的位置上使输入矢量按期望输出值进行上下分类。
8
图4.4 输入矢量平面图(此图横坐标有问题)
9
4.3 感知器的学习规则 学习规则是用来计算新的权值矩阵W及新的偏差B的算法。
4.3 感知器的学习规则 学习规则是用来计算新的权值矩阵W及新的偏差B的算法。 感知器利用其学习规则来调整网络的权值,以便使该网络对输人矢量的响应达到数值为0或1的目标输出。 输入矢量P,输出矢量A,目标矢量为T的感知器网络,其学习规则为:
10
如果第i个神经元的输出是正确的,即有:ai=ti,那么与第i个神经元联接的权值wij和偏差值bi保持不变;
如果第i个神经元的输出是0,但期望输出为1,即有ai=0,而ti=1,此时权值修正算法为:新的权值wij为旧的权值wij加上输人矢量pj;类似的,新的偏差bi为旧偏差bi加上它的输入1; 如果第i个神经元的输出为1,但期望输出为0,即有ai=1,而ti=0,此时权值修正算法为:新的权值wij等于旧的权值wij减去输入矢量pj;类似的,新的偏差bi为旧偏差bi减去1。 感知器学习规则的实质为:权值的变化量等于正负输入矢量。
11
[dW,dB]=learnp(P,A,T);
对于所有的i和j,i=l,2,…,s;j=1,2,…,r,感知器修正权值公式为: (4-5) 上述用来修正感知器权值的学习算法在MATLAB神经网络工具箱中已编成了子程序,成为一个名为1earnp.m的函数。只要直接调用此函数,即可立即获得权值的修正量。此函数所需要的输人变量为:输入、输出矢量和目标矢量:P、A和T。调用命令为: [dW,dB]=learnp(P,A,T);
12
4.4 网络的训练 感知器的训练过程如下: 在输入矢量P的作用下,计算网络的实际输出A,并与相应的目标矢量T进行比较,检查A是否等于T,然后用比较后的误差量,根据学习规则进行权值和偏差的调整; 重新计算网络在新权值作用下的输入,重复权值调整过程,直到网络的输出A等于目标矢量T或训练次数达到事先设置的最大值时训练结束。
13
感知器设计训练的步骤可总结如下: 1)对于所要解决的问题,确定输入矢量P,目标矢量T,并由此确定各矢量的维数以及确定网络结构大小的神经元数目:r,s和q; 2)参数初始化: a)赋给权矢量w在(—l,1)的随机非零初始值; b)给出最大训练循环次数max_epoch; 3)网络表达式:根据输人矢量P以及最新权矢量W,计算网络输出矢量A; 4)检查:检查输出矢量A与目标矢量T是否相同,如果是,或已达最大循环次数,训练结束,否则转入5); 5)学习:根据(4.5)式感知器的学习规则调整权矢量,并返回3)。
14
4. 5 感知器神经网络应用的局限性 首先,感知器的输出只能取0或1。 其次,单层感知器只能对线性可分的向量集合进行分类。
15
4. 6 感知器神经网络设计实例 [例4.1]考虑一个简单的分类问题。 设计一个感知器,将二维的四组输入矢量分成两类。
输入矢量为:P=[ ; ]; 目标矢量为:T=[1.0 l ],
16
代数求解法
17
当采用感知器神经网络来对此题进行求解时,网络结构图如图4.5所示。
由此可见,对于单层网络,网络的输入神经元数r和输出神经元数s分别由输入矢量P和目标矢量T唯一确定。网络的权矩阵的维数为:Ws×r,Bs×1权值总数为s×r个,偏差个数为s个。 在确定了网络结构并设置了最大循环次数和赋予权值初始值后,设计者可方便地利用MATLAB,根据题意以及感知器的学习、训练过程来编写自己的程序。
18
练习演示percepl.m 和percep2.m
19
4.7 作业 1. 熟悉 net的属性 及与感知器相关的函数。 2 设P =[ -1,1,-1,1, -1,1,-1,1;
-1,-1,1,1,-1,-1,1,1; -1,-1,-1,-1,1,1,1,1] T = [0 ,1,0 ,0,1,1,0,1] 请画出感知器网络结构图,并编写MATLAB程序解该分类问题。 如 T = [ 0,0,0,0,1,1,1,1; 0,0,0,0,1,1,1,1]
20
4.8 感知器的局限性 由于感知器的激活函数采用的是阀值函数,输出矢量只能取0或1,所以只能用它来解决简单的分类问题;
4.8 感知器的局限性 由于感知器的激活函数采用的是阀值函数,输出矢量只能取0或1,所以只能用它来解决简单的分类问题; 感知器仅能够线性地将输入矢量进行分类。 感知器还有另外一个问题,当输入矢量中有一个数比其他数都大或小得很多时,可能导致较慢的收敛速度。
Similar presentations