1第三章感知器和自适应线性元件(1)2主要内容感知器与人工神经网络的早期发展;线性可分问题与线性不可分问题;Hebb学习律;Delta规则;感知器的训练算法自适应线性元件33.1感知器与人工神经网络的早期发展3.2感知器的学习算法3.2.1离散单输出感知器训练算法3.2.2离散多输出感知器训练算法3.2.3连续多输出感知器训练算法3.3线性不可分问题3.3.1异或(Exclusive–OR)问题3.3.2线性不可分问题的克服实现!问题的发现与解决!43.1感知器与人工神经网络的早期发展感知器是由美国计算机科学家罗森布拉特(F.Roseblatt)于1957年提出的。感知器可谓是最早的人工神经网络。单层感知器是一个具有一层神经元、采用阈值激活函数的前向网络。通过对网络权值的训练,可以使感知器对一组输人矢量的响应达到元素为0或1的目标输出,从而实现对输人矢量分类的目的。感知器简介53.1感知器与ANN的早期发展McCulloch和Pitts1943年,发表第一个系统的ANN研究——阈值加权和(M-P)数学模型。1947年,开发出感知器。1949年,提出Hebb学习律。单输出的感知器(M-P模型)x2x1oxn…1962年,Rosenblatt宣布:人工神经网络可以学会它能表示的任何东西63.1感知器与ANN的早期发展o1多输出感知器x1x2o2omxn…………输入层输出层7单层前向感知器收敛定理:F.Roseblatt证明,如果两类模式是线性可分的(指存在一个超平面将它们分开),则算法一定收敛。感知器特别适用于简单的模式分类问题,也可用于基于模式分类的学习控制中感知器简介8单层前向感知器神经元模型2020/1/139单层前向感知器网络结构ni第i个神经元加权输入和ai第i个神经元输出,i=1,2,…,s•感知器的基本功能是将输入矢量转化成0或1的输出•根据输出值通过测试加权输入和值落在阈值函数的左右对输入数据进行分类10单层前向感知器--功能解释11这一功能可以通过在输人矢量空间里的作图来加以解释以输入矢量r=2为例•对选定的权值w1、w2和b,可以在以p1和p2分别作为横、纵坐标的输入平面内画出W*P+b=w1p1十w2p2十b=0的轨迹•它是一条直线,此直线上及其线以上部分的所有p1、p2值均使w1p1十w2p2十b>0,这些点通过由w1、w2和b构成的感知器的输出为1;该直线以下部分的点通过感知器的输出为0单层前向感知器--功能解释12单层前向感知器--功能解释2020/1/1313当采用感知器对不同的输入矢量进行期望输出为0或1的分类时,其问题可转化为对已知输入矢量在输入空间形成的不同点的位置,设计感知器的权值W和b感知器权值参数设计目的,就是根据学习法则设计一条W*P+b=0的轨迹,使其对输入矢量能够达到所期望的划分单层前向感知器--网络学习与训练14学习规则用来计算新的权值矩阵W及新的偏差B的算法假定输入矢量P,输出矢量A,目标矢量为T的感知器网络单层前向感知器--网络学习与训练1iiijiiijatbpatw15单层前向感知器--网络学习与训练如果第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减去116单层前向感知器--网络学习与训练上述用来修正感知器权值的学习算法在MATLAB神经网络工具箱中已编成了子程序,成为一个名为1earnp.m的函数。只要直接调用此函数,即可立即获得权值的修正量。此函数所需要的输人变量为:输入、输出矢量和目标矢量(P、A和T)调用命令为:[dW,dB]=learnp(P,A,T)17单层前向感知器--网络学习与训练训练思想在输入矢量P的作用下,计算网络的实际输出A,并与相应的目标矢量T进行比较,检查A是否等于T,然后用比较后的误差量,根据学习规则进行权值和偏差的调整重新计算网络在新权值作用下的输入,重复权值调整过程,直到网络的输出A等于目标矢量T或训练次数达到事先设置的最大值时训练结束18单层前向感知器--网络学习与训练训练算法对于所要解决的问题,确定输入矢量P,目标矢量T,并确定各矢量的维数及神经元数目:r,s和q;(1)参数初始化a)赋给权矢量w在(—l,1)的随机非零初始值;b)给出最大训练循环次数max_epoch;(2)初始化网络表达式。根据输人矢量P以及最新权矢量W,计算网络输出矢量A;(3)检查过程。检查输出矢量A与目标矢量T是否相同。如果是,或已达最大循环次数,训练结束,否则转入(4)(4)学习过程。根据感知器的学习规则调整权矢量,并返回(3)19单层前向感知器--局限性由于感知器的激活函数采用的是阀值函数,输出矢量只能取0或1,所以只能用它来解决简单的分类问题感知器仅能够线性地将输入矢量进行分类当输入矢量中有一个数比其他数都大或小得很多时,可能导致较慢的收敛速度感知器的学习是有导师学习感知器的训练算法的基本原理来源于著名的Hebb学习律基本思想:逐步地将样本集中的样本输入到网络中,根据输出结果和理想输出之间的差别来调整网络中的权矩阵203.2感知器的学习算法二值网络:自变量及其函数的值、向量分量的值只取0和1。权向量:W=(w1,w2,…,wn)输入向量:X=(x1,x2,…,xn)训练样本集:{(X,Y)|Y为输入向量X对应的输出}213.2.1离散单输出感知器训练算法2020/1/1322算法3-1离散单输出感知器训练算法1.初始化权向量W;2.重复下列过程,直到训练完成:2.1对每个样本(X,Y),重复如下过程:2.1.1输入X;2.1.2计算o=F(XW);2.1.3如果输出不正确,则当o=0时,取W=W+X,当o=1时,取W=W-X样本集:{(X,Y)|Y为输入向量X对应的输出}输入向量:X=(x1,x2,…,xn)理想输出向量:Y=(y1,y2,…,ym)激活函数:F权矩阵W=(wij)实际输出向量:O=(o1,o2,…,om)233.2.2离散多输出感知器训练算法o1多输出感知器x1x2o2omxn…………输入层输出层24算法3-2离散多输出感知器训练算法1.初始化权矩阵W;2.重复下列过程,直到训练完成:2.1对每个样本(X,Y),重复如下过程:2.1.1输入X;2.1.2计算O=F(XW);2.1.3forj=1tomdo执行如下操作:ifoj≠yjthenifoj=0thenfori=1tonwij=wij+xielsefori=1tondowij=wij-xi算法思想:将单输出感知器的处理逐个地用于多输出感知器输出层的每一个神经元的处理。第1步,权矩阵的初始化:一系列小伪随机数。25算法3-2离散多输出感知器训练算法第2步,循环控制。方法1:循环次数控制法:对样本集执行规定次数的迭代改进——分阶段迭代控制:设定一个基本的迭代次数N,每当训练完成N次迭代后,就给出一个中间结果26算法3-2离散多输出感知器训练算法方法2:精度控制法:给定一个精度控制参数精度度量:实际输出向量与理想输出向量的对应分量的差的绝对值之和;实际输出向量与理想输出向量的欧氏距离的和“死循环”:网络无法表示样本所代表的问题2020/1/1327算法3-2离散多输出感知器训练算法方法3:综合控制法:将这两种方法结合起来使用注意:精度参数的设置。根据实际问题选定;初始测试阶段,精度要求低,测试完成后,再给出实际的精度要求。28算法3-2离散多输出感知器训练算法用公式wij=wij+α(yj-oj)xi取代算法3-2第2.1.3步中的多个判断yj与oj之间的差别对wij的影响由α(yj-oj)xi表现出来好处:不仅使得算法的控制在结构上更容易理解,而且还使得它的适应面更宽293.2.3连续多输出感知器训练算法30算法3-3连续多输出感知器训练算法1.用适当的小伪随机数初始化权矩阵W;2.初置精度控制参数ε,学习率α,精度控制变量d=ε+1;3.Whiled≥εdo3.1d=0;3.2for每个样本(X,Y)do3.2.1输入X(=(x1,x2,…,xn));3.2.2求O=F(XW);3.2.3修改权矩阵W:fori=1ton,j=1tomdowij=wij+α(yj-oj)xi;3.2.4累积误差forj=1tomdod=d+(yj-oj)21、Minsky在1969年证明,有许多基本问题是感知器无法解决2、很难从样本数据集直接看出问题是否线性可分6、未能证明,一个感知器究竟需要经过多少步才能完成训练。313.3.1异或(Exclusive–OR)问题323.3线性不可分问题g(x,y)y01x00111033用于求解XOR的单神经元感知器xyo单神经元感知器的图像ax+by=θ1yx1(0,0)(1,1)34线性不可分函数变量函数及其值xyf1f2f3f4f5f6f7f8f9f10f11f12f13f14f15f16000000000011111111010000111100001111100011001100110011110101010101010101R.O.Windner1960年35线性不可分函数自变量个数函数的个数线性可分函数的个数144216143256104465,536188254.3*10994,57261.8*10195,028,134用多个单级网组合在一起,并用其中的一个去综合其它单级网的结果,我们就可以构成一个两级网络,该网络可以被用来在平面上划分出一个封闭或者开放的凸域来一个非凸域可以拆分成多个凸域。按照这一思路,三级网将会更一般一些,我们可以用它去识别出一些非凸域来。解决好隐藏层的联接权的调整问题是非常关键的363.3.2线性不可分问题的克服3.4.1Adline简介3.4.2网络结构3.4.3网络学习3.4.4网络训练3.4.5应用举例3.4.6局限性373.4、自适应线性元件自适应线性元件(AdaptiveLinearElement简称Adaline)由威德罗(Widrow)和霍夫(Hoff)首先提出自适应线性元件的主要用途是线性逼近一个函数式而进行模式联想。它与感知器的主要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1它采用的是W-H学习法则,也称最小均方差(LMS)规则对权值进行训练383.4.1Adline简介神经元(a)与网络(b)393.4.2网络结构W-H学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则采用W-H学习规则可以用来训练一定网络的权值和偏差使之线性地逼近一个函数式而进行模式联想(PatternAssociation)定义一个线性网络的输出误差函数目的是通过调节权矢量,使E(W,B)达到最小值所以在给定E(W,B)后,利用W-H学习规则修正权矢量和偏差矢量,使E(W,B)从误差空间的某一点开始,沿着E(W,B)的斜面向下滑行403.4.3学习规则根据梯度下降法,权矢量的修正值正比于当前位置上E(W,B)的梯度,对于第i个输出节点有:或表示为413.4.3学习规则η为学习速率。在一般的实际运用中,实践表明,η通常取一接近1的数,或取值为:自适应线性网络还有另一个潜在的困难,当学习速率取得较大时,可导致训练过程的不稳定采用W-H规则训练自适应线性元件使其能够得以收敛的必要条件是被训练的输入矢量必须是线性独立的,且应适当地选择学习速率以防止产生振荡现象423.4.3学习规则自适应线性元件的网络训练过程