神经网络原理注:由last,next,序数词要求不定式作定语,2.感知器•神经生理学和神经解剖学的研究表明,大脑中实际的神经网络一般具有层次结构,同时结点间的连接很多属于前馈连接,同时这种前馈连接构成的网络(前馈网络)学习过程比较容易,所以首先讨论前馈网络模型。•1958年心理学家FrankRosenblatt及其合作者首先研究了这种前馈层次网络模型,将其称为感知器(Perception)。2.1感知器概述•感知器实例–简单感知器两层感知器2.1感知器概述•在感知器模型中,输入图形x=(x1,x2,…,xN)通过各输入端点分配给下一层的各结点,这下一层称为中间层,它可以是一层或多层,最后通过输出层结点得到输出图形y=(y1,y2,…,yn)。•在这种前馈网络模型中,没有层内联接,也没有隔层的前馈联接,每一个结点只能前馈联接到其下一层的所有结点。•由于在早期对于含有隐蔽层的多层感知器没有可行的训练算法,所以初期研究的感知器是一层感知器(或称简单感知器,通常简称为感知器)。2.1感知器概述•感知器的学习是有指导的学习,其训练算法的基本原理来源于Hebb学习律•基本思想:逐步地将样本集中的样本输入到网络中,根据输出结果和理想输出之间的差别来调整网络中的权矩阵•感知器特别适合简单的模式分类问题,可解决线性划分问题。•感知器神经元是在MP模型基础上加上了学习功能,其权值可根据设计目的加以调节。2.1感知器概述•感知器的神经元结构就是MP模型:•输入与输出的关系:......1p2prpnba1w2wrw1bpwnrjjj10001)(nnnfa2.2感知器的网络结构•一般感知器结构是单层神经网络,其激活函数为二值函数(符号,阈值):1p2prp11wsrw1b2bsb1a2asa1n2nsn..................1112.2感知器的网络结构•权值与偏差•一组输入与输出:srssrrrs212222111211ssbbbB211rrpppP211ssaaaA2112.2感知器的网络结构•多组输入与输出:rqrrqqqrpppppppppP212222111211sqssqqqsaaaaaaaaaA212222111211],,,[111sssqsBBBB,2.2感知器的网络结构•输入与输出的关系-矩阵形式:-分量形式:qsqrrsqsBPWN)(qsqsNFAirjjtijitbpwn1qt,,2,10001)(ititititnnnfa2.3感知器的图形解释•神经元模型:-任意一组参数W和B,在输入矢量空间中,可决定一条(超)直线或(超)平面等,在该直线或平面上方输出为1;在其下方输出为0;-处理单元实际上是输入信息的分类器,判决输入信息属于两类中的哪一类(A或B类)。0001)()*(1nnbpwfbPWfarjjj2.3感知器的图形解释–当输入向量为两个分量时,它构成平面上的两维集,此时判决界是一条直线。当s=1和r=2时,有它是在p1Op2平面的一条直线,上方输出1(A类),下方为0(B类);或相反。0bPW02211bpwpwbPWp2p12.3感知器的图形解释–当输入向量为三个分量时,它构成三维信号集,此时判决界是一个平面。–当输入向量为多个分量时,它构成多维信息空间,此时判决界是一个多维面。2.4感知器的学习规则学习规则-用于计算新的权值矩阵W和偏差B的算法感知器的学习规则:1)若第i个神经元的输出正确,即ai=ti,则与第i个神经元连接的权值wij和偏差bi保持不变;2)若第i个神经元的输出是不正确的,则按如下改变权值和偏差:a.若ai=0,但ti=1,则权值修正的算法:wij=wij+pj,bi=bi+1b.若ai=1,但ti=0,则权值修正的算法:wij=wij-pj,bi=bi-12.4感知器的学习规则•学习规则伪代码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-X2.4感知器的学习规则•样本集:{(X,Y)|Y为输入向量X对应的输出}•输入向量:X=(x1,x2,…,xn)•理想输出向量:Y=(y1,y2,…,ym)•激活函数:F•权矩阵W=(wij)•实际输出向量:O=(o1,o2,…,om)o1多输出感知器x1x2o2omxn…………输入层输出层2.4感知器的学习规则•学习规则统一表达:感知器修正权值公式分量表示:矩阵表示:设E=T-A为误差矢量,oror学习的收敛性:该算法属于梯度下降法,有解时收敛。jiiijpatw)(1)(iiiatbTEPWWTEPWEBBEB感知器神经网络的构建-运用MATLAB•newp()-建立一个感知器•sim()-仿真一个神经网络•init()-初始化一个神经网络•learnp()-感知器权值学习举例2.5网络的训练网络的训练过程:1.输入:P,T网络结构的选取,并计算相关的量2.初始化:W,B目标(期望)误差,参数如权值和偏差的初始化[(-1,1)中的随机值],最大循环迭代次数;3.计算:A计算网络的实际输出矢量。4.检查或比较:A与T,E与误差门限比较网络的输出误差和与期望误差相比较;若小于期望误差或达到最大迭代次数,训练结束5.学习:计算新W和B,并返回到3.2.5网络的训练数字识别:1.输入:0,1,2,3,4,5,6,7,8,9预处理:将数字(图形、声音等)转化为数组(数字信号),常用方法是“抽样+量化+编码”3→[111001111001111]目标输出:3→011,或3→0011,或3→[001000000];2.网络训练:确定网络结构,参数、学习等。1111001111001112.5网络的训练例1设计一个感知器,对输入数据分成两类。已知输入矢量P=[-0.5-0.50.30;-0.50.5-0.51]目标矢量T=[1.01.000]◊分析:选择2-1型感知器,权矩阵W1*2,偏差B=w3,则可能的一组解:005.03.005.05.005.05.0323213213212313132113/8.00网络的训练◊Matlab算法程序:r=2,s=1,q=4网络简化结构:u=1,2,3,41w2wbup1up21ua2.5网络的训练例2.多个神经元分类:输入矢量P=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;1.21.81.60.60.80.50.20.8-1.5-1.3];相应的10组二元目标矢量为:T=[1110011100;0000011111];•一个问题:训练失败的原因:一是参数选择不当;二是问题不能用感知器解决。2.5网络的训练小结:•当r=1和s=1时,感知器是以点为分割界;•当r=2时,在输入矢量平面以线为分割界:s=1,分割线为一条线;s=2,分割线为二条线。•当r=3时,以面为分割界,分割面数为神经元数s2.5网络的训练•讨论–经过有限次迭代可使误差达到最小。–收敛的速度(迭代次数)与初始条件W(0)、b(0)有关,收敛后的权值也不是唯一的。–在实际中b并不指定,可以作为偏置加权同其它加权一样参与训练调整。2.6感知器的局限性1.输出与输入的映射关系简单,只能进行简单分类;2.只能解决线性可分问题,不能解决线性不可分问题,例如典型的“异或”问题;3.对有些问题,例如当输入样本中存在奇异样本,训练速度慢。例3在例1中加入一个新的输入矢量:P=[-0.5-0.50.30-0.8-0.50.5-0.510];T=[11000];训练结果:训练失败2.7“异或”问题-感知器实现逻辑“与”的功能•逻辑“与”的真值表2.7“异或”问题–感知器实现逻辑“与”的功能•因只有两个输入,构成二维空间。2.7“异或”问题–感知器实现逻辑“与”的功能•通过真值表中的4个输入输出对,训练调节对应的加权W1、W2和阈值θ,可得表示“与”功能的感知器。2.7“异或”问题-感知器在表示能力方面存在局限性,很多功能不管如何调节加权和阈值,也不能被识别或表示。-Minsky和Papert发现感知器的不足的主要依据:感知器不能实现简单的“异或”逻辑功能。-逻辑“异或”的真值表2.7“异或”问题–感知器不能实现逻辑“异或”的功能•因只有两个输入,构成二维空间。2.7“异或”问题–感知器不能实现逻辑“异或”的功能•要实现“异或”功能,要求A类和B类在直线两边,这显然不可能,因为它是线性不可分的。•这意味着不管如何改变参数W1、W2和θ都不能使单层感知器产生“异或”功能。•对于线性不可分的功能,训练中找不到一条直线(或多维判决界面)将A和B两类分开,使得加权总是来回摆动,不能收敛到一个确定的判决界,此时训练不收敛。•要想用感知器表示某种功能,必须知道这种功能是否是线性可分的。–遗憾的是,并没有通用的办法来确定这种线性可分性(尤其是当输入分量很大时)。2.8解决线性可分性限制的办法•对“异或”问题可利用两层网络解决:例如取T=[0110]1p2pa10101100P21111W5.05.01B]1,1[2W]5.0[2B,,2.8解决线性可分性限制的办法则101100105.15.05.25.05.05.15.05.05.05.05.05.05.05.05.05.011200110)1*1(1FFBPWFA01105.05.05.05.05.05.05.05.01001)21*2(2FFBAWFA本章小节•感知器是目前研究得最为透彻的网络之一;•感知器在解决线性分类问题非常有效;•感知器的训练对突变矢量是敏感的;但多层感知器可解决该情形问题。