资源预览内容
第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
第9页 / 共91页
第10页 / 共91页
亲,该文档总共91页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章前馈神经网络模型v前馈神经网络:由一层或多层非线性处理单元组成。相邻层之间通过突触权阵连接起来。由于前一层的输出作为下一层的输入,因此此类神经网络为前向神经网络。在前向神经网络结构中输入输出之间包含着一层或多层隐含层。前向神经网络可以看成是一种一组输入模式到一组输出模式的系统变换,这种变换通过对某一给定的输入样本相应的输出样本集的训练而得到,为了实现这一行为,网络的权系数在某种学习规则下进行自适应学习,也就是有导师指导学习。内容提要l感知器l多层感知器l自适应线性元模型lBP算法第一节感知器线性阈值单元l线性阈值单元是前向网络(又称前馈网络)中最基本的计算单元,它具有n个输入(x1,x2,xn),一个输出y,n个连接权值(w1,w2,wn),且xiwiy感知器简介l 1958年,美国心理学家Frank Rosenblatt提出一种具有单层计算单元的神经网络,称为Perceptron,即感知器。感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递的层次型神经网络。感知器研究中首次提出了自组织、自学习的思想,而且对所能解决的问题存在着收敛算法,并能从数学上严格证明,因而对神经网络研究起了重要推动作用。l 感知器的结构与功能都非常简单,以至于在解决实际问题时很少采用,但由于它在神经网络研究中具有重要意义,是研究其它网络的基础,而且较易学习和理解,适合于作为学习神经网络的起点。l 感知器模型结构l感知器的模型结构如图所示。感l知器是指只有一层处理单元的感l知器,如果包括输入层在内,应l为两层。图中输入层也称为感知l层,有n个神经元节点,这些节点l只负责引入外部信息,自身无信l息处理能力,每个节点接收一个l输入信号,n个输入信号构成输l入列向量X。输出层也称为处理层,有m个神经元节点,每个节点均具有信息处理能力,m个节点向外部输出处理信息,构成输出列向量O。两层之间的连接权值用权值列向量Wj表示,m个权向量构成单层感知器的权值矩阵W。3个列向量分别表示为:感知器模型结构 j=1,2, ,m 感知器模型结构 感知器的功能 一个最简单的单计算节点感知器具有分类功一个最简单的单计算节点感知器具有分类功能。其分类原理是将分类知识存储于感知器的权能。其分类原理是将分类知识存储于感知器的权向量(包含了阈值)中,由权向量确定的分类判向量(包含了阈值)中,由权向量确定的分类判决界面将输入模式分为两类。决界面将输入模式分为两类。感知器的功能 (1)设输入向量设输入向量X=(x1 ,x2)T输出:输出:则由方程则由方程 w1jx1+w2jx2-Tj=0 确定了二维平面上的一条分界线。确定了二维平面上的一条分界线。ojx1-1x2感知器的功能 w1j x1+w2j x2 Tj = 0w1j x1 = Tj - w2j x2x1 = (Tj -w2j x2) / w1j = - ( w2j/ w1j ) x2 +Tj / w1j = a x2 +c 感知器的功能 (2)设输入向量设输入向量X=(x1,x2,x3)T输出:输出:则由方程则由方程 w1jx1+w2jx2+w3j Tj=0 确定了三维空间上的一个分界平面。确定了三维空间上的一个分界平面。 x2ojx1x3-1感知器的功能 w1j x1+w2j x2 +w3j x3 Tj = 0 x1 = a x2 +b x3 +c 感知器的功能 (3) 设输入向量设输入向量X=(x1,x2,,xn)T则由方程则由方程 w1jx1+w2jx2+wnj Tj=0 (3.6) 确定了确定了n维空间上的一个分界平面。维空间上的一个分界平面。 输出:输出:w1jx1+w2jx2+wnj Tj=0 (3.5)例一 用感知器实现逻辑“与”功能 x1x2y000010100111逻辑逻辑“与与”真值真值表表例一 用感知器实现逻辑“与”功能 感知器结构感知器结构wix1+w2x2 -T=0 0.5x1+0.5x2-0.75=0例二 用感知器实现逻辑“或”功能 x1x2y000011101111逻辑逻辑“或或”真值表真值表例二 用感知器实现逻辑“或”功能 感知器结构感知器结构wix1+w2x2 -T=0 x1+x2-0.5=0思考 l分界线的方程是什么?l感知器的模型如何表示?数学表达式?感知器的局限性 lRosenblatt已经证明,如果两类模式在分布空间中可以找到一个超平面将它们分开,那么感知器的学习过程就一定会收敛。否则判定边界就会振荡不休,永远不会稳定,这也正是单层感知器所无法克服的缺陷,所以它连最简单的异或(XOR)问题也解决不了。“异或异或”的真值表的真值表x1x2y000011101110感知器的局限性 l关键问题就是求感知器的学习 式中,当实际输出与期望值相同时,权值不需要调整。感式中,当实际输出与期望值相同时,权值不需要调整。感知器学习规则代表一种有导师学习。知器学习规则代表一种有导师学习。感知器的学习规则 感知器学习规则的训练步骤:感知器学习规则的训练步骤:(1) 对各权值对各权值w0j(0),w1j(0),wnj(0),j=1, 2,m (m为计算层的节点数)赋予较小的非零随机数;为计算层的节点数)赋予较小的非零随机数;(2) 输入样本对输入样本对Xp,dp,其中,其中Xp=(-1,x1p,x2p,x,xn np p), dp为期望的输出向量(教师信号),上标为期望的输出向量(教师信号),上标p代表代表 样本对的模式序号,设样本集中的样本总数为样本对的模式序号,设样本集中的样本总数为P, 则则p=1,2,P,P;感知器的学习规则 (3)计计算算各各节节点点的的实实际际输输出出ojp(t)=sgnWjT(t)Xp, j=1,2,.,m;(4)调整各节点对应的权值,调整各节点对应的权值,Wj(t+1)= Wj(t)+djp-ojp(t)Xp, j=1, 2,m, 其中其中为学习率,用于控制调整速度,太大为学习率,用于控制调整速度,太大会影响训练的稳定性,太小则使训练的收敛速度变慢,会影响训练的稳定性,太小则使训练的收敛速度变慢, 一般取一般取0 011;(5)返回到步骤返回到步骤(2)输入下一对样本,周而复始直到对所有输入下一对样本,周而复始直到对所有 样本,感知器的实际输出与期望输出相等。样本,感知器的实际输出与期望输出相等。感知器的学习规则的训练步骤 1.初始化:权值初始化为一个较小的随机非零值。2.将一模式送入输入神经元,并给出理想输出值。3.计算神经网络模型的实际输出:4.调节权值: 5.转2,直到这次迭代完所给定的所有输入样本。6.计算结束判据。条件符合,结束;否则转2。感知器的学习 例三例三 单计算节点感知器,单计算节点感知器,3个输入。给定个输入。给定3对训练样对训练样本对如下:本对如下:X1 = (-1,1,-2,0)T d1 = 1X2 = (-1,0,1.5,-0.5)T d2 = 1X3 = (-1,-1,1,0.5)T d3 =1 设初始权向量设初始权向量W(0)=(0.5,1,-1,0)T,=0.1=0.1。注意,注意,输入向量中第一个分量输入向量中第一个分量x0恒等于恒等于-1,权向量中第一个分,权向量中第一个分量为阈值,试根据以上学习规则训练该感知器。量为阈值,试根据以上学习规则训练该感知器。感知器的学习 解:第一步解:第一步 输入输入X1,得得 WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5 o1(0)=sgn(2.5)=1 W(1)= W(0)+d1- o1(0) X1 =(0.5,1,-1,0)T+0.1(-1-1)(-1,1,-2,0)T =(0.7,0.8,-0.6,0)T感知器的学习 第二步第二步 输入输入X2,得,得 WT(1)X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T=-1.6 o2(1)=sgn(-1.6)=-1 W(2)= W(1)+d2- o2(1) X2 =(0.7,0.8,-0.6,0)T+0.1-1-(-1)(-1,0,1.5,-0.5)T =(0.7,0.8,-0.6,0)T由于由于d2= o2(1),所以,所以W(2)= W(1)。感知器的学习 第三步第三步 输入输入X3,得,得 WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T=-2.1 O3(2)=sgn(-2.1=-1W(3)= W(2)+d3- o3(2) X3 =(0.7,0.8,-0.6,0)T+0.11-(-1)(-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T第四步第四步 返回到第一步,继续训练直到返回到第一步,继续训练直到dp- op=0,p=1,2,3。第二节多层感知器多层感知器简介l多层感知器(Multilayer Perceptron)是一种在输入层与输出层之间含有一层或多层隐含神经元的具有正向传播机制的神经网络模型。l多层感知器克服了单层感知器的许多局限, 单层感知器只能实现线性可分问题和简单布尔函数,多层感知器可以实现线性不可分问题和任意布尔函数。多层感知器的结构 输入层隐含层输出层多层感知器的分类能力l一个单层感知器构成一个半平面判定区域,一个两层感知器可以构成任意无边界的空间区域,这些判定区域有的是凸多边形,有的是无边界的凹区域。凸区域是多层感知器中第一层各个神经元所构成的半平面判定区域(即判定区域)相交而成。多层感知器性能等价问题l第一层中的神经元就像一单层感知器,所形成的凸区域的边数最多和第一层神经元个数一样多。一个三层感知机能够形成任意复杂的判定区域,也能把那些相互渗透的区域分开。例子一l1、用单层感知器实现简单逻辑运算。 (1) (与)等价于 ,即 (2) (或)等价于 ,即 (3) (非) 等价于 ,即 例子二n2、用两层感知器实现异或运算。例子三l试用单个感知器神经元完成下列分类,写出其训练迭代过程,画出最终的分类示意图。x1w1yx2w2fn01第三节第三节自适应线性元模型自适应线性元模型l自适应线性元件于1961年由美国的Widrow教授提出。适用于信号处理中的自适应滤波、预测和模式识别。自适应线性元模型结构自适应线性元模型数学描述l输入输入该模型是一自适应阈值逻辑单元。图中x0,x1k,x2k,xnk为该自适应线性元在t时刻的外部输入,用向量表示为: Xk(x0,x1k,x2k,xnk)T这个向量称为自适应线性元的 输入信号向量或输入模式向量。自适应线性元模型数学描述l连接权值连接权值与输入向量Xk相对应有一权值向量: Wk=(w0k,w1k,w2k,wnk)T其中Wk每一元素与输入向量 Xk中的每一元素相对应。w0k为基权,称为门限权,它 用来调整自适应线性元的阈值。自适应线性元模型数学描述l输出输出模拟输出二值输出自适应线性元模型数学描述l理想输出理想输出l在图中的自适应线性元中有一特殊的输入dk,即理想输出。l该输出是用来将理想响应信号送入自适应线性元中,在自适应线性元中通过比较yk和理想响应dk,并将差值送入最小均方差(LMS)学习算法机制中来调整权向量Wk,使得yk和所期望的输出dk相一致。LMS学习过程(图示)l与单层感知器的差别在于:输出分为模拟和数字两个部分。数字部分与感知器单元完全相同,可进行线性分割模拟部分是作为误差调节之用,对单个Adaline,其误差为模拟输出和要求响应输出差。LMS学习过程(文字说明)1.样本数i=0,连接权值随机初始化一个较小的不等于0的值;2.提交第i个学习样本;3.计算神经网络的输出;4.计算实际输出和理想输出的误差;5.按照权值修改规则修改神经网络权值;6.i+;i=N?;否,转2。7.计算学习结束判据;8.学习结束否?9.达到要求学习结束,否则转1。LMS学习算法权值修改规则l其中: 为当前的误差(即理想输出与模拟实际输出之间的差值), 称为学习速度(Learning Rate)。ADALINE学习算法实质分析 的取值l 的选择决定了学习算法收敛的稳定性和收敛的速度。 l稳定性要求:0 2。但是 过大可能会修正过度,一个比较好的选择范围是:0.1 1LMS算法的几何解释 ADALINE模型计算能力分析l若ADALINE输入为二值,它可以完成一定的逻辑功能。l若有n个输入,即则有2n个可能的输入模式。在一般的逻辑实现中,依照所期望的输出响应,可以将个输入模式划分成和两类。每一个自适应线性元模型可以完成某一种逻辑功能,因而我们也可以把自适应线性元看成是一逻辑部件。ADALINE模型计算能力分析l每个自适应线性元的功能也主要由各个权值所确定。l每个自适应线性元只能实现逻辑空间上的线性划分。ADALINE模型学习过程举例l网络模型x1=1.2x2=2.7x0=1w1=0.344w2=1.1w0=1d=2.3y =4.57E=-2.27w0=0.870w1=0.5w2=0.749y =3.305E=-1.05ADALINE模型的学习曲线l结束判据结束判据总体误差降低到某个预设的极小值;迭代了一定的次数。第四节第四节BPBP模型模型l感知器神经网络的学习规则和最小均方差(LMS)学习算法只能训练单层神经网络,而单层神经网络只能解决线性可分的分类问题。多层神经网络可以用于非线性分类问题。但需要寻找训练多层网络的学习算法。lBP算法-适于多层网络的学习算法。lBP网络广泛应用于函数逼近、模式识别/分类、数据压缩等。l80%90%的人工神经网络采用BP网络或者它的变化形式,它也是前馈网络的核心部分,体现了人工神经网络最精华的部分。lBP神经元与其他神经元类似,不同的是BP神经元的传输函数为非线性函数,常用的有S型函数。lBP网络的信息从输入层流向输出层,是一种多层前馈神经网络。BP网络的学习l在确定了BP网络的结构以后,要通过输入和输出样本集对网络进行训练,亦即对网络的阈值和权值进行学习和修正,以使网络实现给定的输入输出映射关系。lBP网络学习分两个阶段:第一个阶段是输入已知学习样本,通过设置的网络结构和前一次迭代的权值和阈值,从网络的第一层向后计算各神经元的输出第二个阶段是对权和阈值进行修改,从最后一层向前计算各权值和阈值对总误差的影响(梯度),据此对各权值和阈值进行修改。以上两个过程反复交替,直到达到收敛为止。l由于误差逐层往回传递,以修正层与层之间的权值和阈值,所以称该算法为误差反向传播算法,这种误差反传学习算法可以推广到有若干个中间层的多层网络,因此该多层网络常称之为BP网络。BP学习算法概述lBP算法的基本过程初始化阶段前馈阶段权值调整阶段学习精度计算学习结束判断BP学习算法描述(初始化阶段)l对所有神经元的阈值及连接权值取一个较小的非零随机值。l设一个较小的数作为学习期望达到的最终学习精度。该值作为学习过程的结束判断条件。BP学习算法描述(前馈阶段)l给定输入样本和理想输出。l对p 层的神经元i,按下式计算p 层中神经元i的活跃值,也即输出到 p+1 层的输出值。BP学习算法描述(权值调整阶段)l利用下面公式,从输出层开始向输入层方向进行权值调整:权值调整中的误差项求解l输出层误差项求解l隐含层误差项求解实际输出理想输出BP学习算法描述(权值调整)实际输出理想输出l输出层误差项求解l隐含层误差项求解神经元阈值的修改l若把层p中神经元的阈值看成是层p-1中神经元到某一个附加的常数输入联接权值,也可以按照类似的方法进行该神经元阈值的修改。实际输出理想输出BP学习算法描述(计算累计误差)l按下式计算当前学习样本的误差:实际输出理想输出BP学习算法描述(结束条件判断)l在当前迭代周期内,样本学习完否?没有学习完,转前馈阶段;l计算所有样本的累积误差:l判 E 否?是,学习过程结束,否则转前馈阶段。BP算法存在的问题l(1)从数学上看它是一个非线性优化问题,这就不可避免地存在有局部极小问题;l(2)学习算法的收敛速度很慢,通常要几千步迭代或更多;l(3)网络运行还是单向传播,没有反馈。目前的这种模型并不是一个非线性动力系统,而只是一个非线性映射;l(4)网络的隐节点个数选取尚无理论上的指导,而是根据经验选取的;l(5)对新加入的样本要影响到已经学完的样本,刻画每个输入样本的特征的数目也要求必须相同。BP算法的改进-变步长l在BP算法中步长是不变的,这是因为E是一个十分复杂的非线性函数,很难通过最优求极小的方法得到步长,同时如果每一步都要求计算输出,则计算量变得很大。l推荐一种步长调整的方法,如下l步长调整方法:先设一初始步长,若一次迭代后误差函数E增大,则将步长乘以小于1的常数,沿原方向重新计算下一个迭代点,若一次迭代后误差函数E减小,则将步长乘一个大于1的常数,这样既不增加太多的计算量,又使步长得到合理的调整。l另外,有加入动量项的改进方法,有加入 因子的改进算法。BP网络的设计考虑-输入输出层l1、输入输出层的设计l输入输出的维数完全根据使用者的要求来设计,若BP网络用作分类器,其类别数为m个,那么输出一般取m个神经元,其训练样本集中的x属于第j类,要求输出为l即第j个输出为1,其他输出为0。l输入的神经单元可以根据需要求解的问题和数据表示的方式而定如果输入的是电压波形,那么输入单元可根据电压波形的采样数值和采样点数来决定输入单元的维数,也可以用一个单元输入,但输入样本为采样的时间序列。若输入为图像,则输入单元可以为图像像素,也可为图像处理后的图像特征。即问题确定,输入输出单元层数确定。BP网络的设计考虑-隐层l1989年,Robert证明了:对于任何在闭区间内的一个连续的函数都可以用一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的n维到m维的映射。BP网络的设计考虑-隐单元数的选择l隐单元数的选择是一个复杂的问题,没有很好的解析式表示,可以说隐单元数与问题的要求,输入输出单元的多少都有直接关系。l对BP网络,若隐单元数太少,可能不能训练出来,或网络不强壮,不能识别以前没有看到的样本,容错性差,但隐单元数太多又使学习时间过长,误差不一定最佳。l所以,隐单元数求解由下面公式参考:l式中k为样本数,n1为隐单元数,n为输入单元数l其中m为输出神经元数,n为输入神经元数, 为110之间的常数 l用作函数逼近的BP网络:中间层的单元数与要逼近的函数的精度和函数本身的波动情况有关。l要求逼近精度高,要求逼近三角函数或多项式的项数就要增加,因而隐单元的个数也高。同样函数在闭区间内波动越多,要求三角函数的频率也高,从而项数也多,隐单元数也多。l另外,使隐单元数目可变。初始时放入足够的隐单元,而后把学习后那些不起作用的隐单元逐步去掉,一直到不可收缩为止。也可以放入较少的隐单元,学习一定次数后,不成功在增加隐单元个数,直到达到合理隐单元数。BP网络的设计考虑-初始值的选取l由于系统是非线性的,初始值的选取对于学习是否到达局部最小和是否能收敛的关系很大。一个重要的要求是希望初始权在输入累加时使每个神经元的状态接近于零,这样可保证,一开始时,不落入局部极小。权一般取随机数,而且权的值要求比较小,这样可以保证每个神经元一开始都在他们转换函数最大的地方进行。应用l反传(BP)算法广泛使用在神经网络实际应用领域中,其有效性的到了许多问题的证明,如XOR问题、语音合成和识别等。反传算法实际上是使系统朝误差梯度下降的方向移动,把非线性感知机系统决策能力和LMS的误差函数沿梯度下降结合了起来。应用举例l数字识别目的是要求识别09这十个数字。网络模型:l输入1616256个神经元l隐层25个神经元l输出1个神经元。训练样本l不同字体、字号的样本集l函数逼近映射设计具有求sin和cos函数功能的神经网络模型。l数据压缩用BP网络学习正琁函数y(k)=0.8*sin(x)+1.2*x2
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号