《【教学课件】第三章前馈型神经网络模型.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章前馈型神经网络模型.ppt(140页珍藏版)》请在三一办公上搜索。
1、1,第三章 前馈型神经网络模型,2,第三章 前馈型神经网络模型,3.1 感知器(Perception)3.2 多层前馈型神经网络 3.3 误差逆传播算法(BP算法)3.4 误差逆传播算法(BP算法)的若干改进3.5 使用遗传算法(GA)训练前馈型神经网络方法3.6 前馈型神经网络结构设计方法,3,3.7 基于算法的前馈型神经网络在识别问题中的应用 3.8 自适应线性元件 3.9 径向基函数神经网络,4,3.1 感知器(Perception),3.1.1 单层感知器3.1.2 感知器的收敛定理 3.1.3 多层感知器网络3.1.4 感知器用于分类问题的算例,5,3.1.1 单层感知器,一、单层感
2、知器网络 单层感知器神经网络,输入向量为X=(X1,X2,Xm),输出向量为Y=(Y1,Y2,Yn)。感知器的输入向量为XRn,权值向量为WRn单元的输出为Y1,-1。其中:其中,X=(X,-1),W=(W,)。,6,w21,wmj,w22,wmn,w12,w11,xm,x1,x2,w1n,w2m,wmj,wij,w2j,w1j,yj,xi,x1,x2,xm,图3.1 单层感知器网络 图3.2 最简单的感知器,wm1,7,二、单层感知器的学习算法 令Wn+1=,Xn+1=-1,则,具体算法如下:初始化 给Wi(0)各赋一个较小的随机非零值。这里Wi(t)为t时刻第i个输入的权值(1in),Wn
3、+1(t)为t时刻的阈值。输入样本X=(X1,X2,Xn,T),T 称为教师信号,在两类样本分类中,如果XA类,则T=1;如果XB类,则T=-1。,8,计算实际输出 修正权值 Wi(t+1)=Wi(t)+(T-Y(t)Xi i=(1,2,n,n+1)其中,01用于控制修正速度,通常不能太大,会影响Wi(t)的稳定,也不能太小,会使Wi(t)的收敛速度太慢。转到直到W对一切样本均稳定不变为止。用单层感知器可实现部分逻辑函数,如:X1X2:Y=1X1+1X2-2 即W1=W2=1,=2 X1X2:Y=1X1+1X2-0.5 即W1=W2=1,=0.5:Y=(-1)X1+0.5 即W1=-1,=-0
4、.5,9,三、单层感知器的局限性 异或逻辑为,假定单层感知器能实现异或逻辑,那么,Y=W1X1+W2X2-,要求:表 3.1 异或逻辑,10,W1+W2-0+W2-0W2(a)XOR 逻辑(b)AND逻辑(c)OR逻辑 图 3.3 线性可分性,(1,0),(1,0),11,3.1.2 感知器的收敛定理,一、线性可分函数 对给定的X和Y,存在W和和线性映像函数f,使得:f:Rn 1,-1,XRn,则称 f为线性可分函数。所谓的线性可分是指存在一个超平面(二 维为一条直线)能将两类样本分开。对于上面的异或逻辑可用一个平面将其输出类别分开。平面方程为:X1W1+X2W2+X3W3=,X1W1+X2W
5、2+(X1X2)W3=。,12,表3.2 三维异或逻辑,13,图 3.4 异或问题的三维表示,14,15,二、定理3.1 感知器收敛定理 若函数f是线性可分的,则感知器的学习算法在有限次叠代后收敛。为证明此定理,先做一些简化。(1)令Xk=1(即学习样本都是单位向量);(2)若Yk0(因f是线性可分的);这样,要证明上述定理只要证明以下的结论即可。,16,因为k个样本是线性可分的,若存在一个W*,对所有的样本k使得W*Xk 都成立,0。则下面步骤中的第步仅需有限次。置t=1,选初值W(t)为不等于0的值;任选k1,N,置X(t)=Xk;若W(t)X(t)0 返回,否则 令W(t+1)=W(t)
6、+X(t),t=t+1,返回。,17,证明:C(t)表示向量W(t)与W*间夹角余弦,即 W*W(t+1)=W*W(t)+X(t)=W*W(t)+W*X(t)W*W(t)+W*W(t)tW(t+1)2=W(t)2+2W(t)X(t)+X(t)2W(t)2+1 W(t)2t,C(t)1,为一有限数。证毕。,18,3.1.3 多层感知器网络,一、多层感知器网络 两个隐层感知器的输入层有n个节点,第一隐层有n1个节点,第二隐层有n2个节点,各层节点的输出为:(j=1,2,n1)(k=1,2,n2),19,(A)两个隐层的感知器 图3.5 多层感知器网络,20,二、多层感知器的分类决策能力 定理 3.
7、2 假定隐层的节点可以根据需要自由设置,那么用三层的阈值网络可以实现任意的二值逻辑函数。图3.5(B)中输出层节点的输出为:此时隐层与n个输入节点的关系如同单层感知器一样,可以形成n1个n维空间的超平面把n维输入空间分成一些小的子空间。例如,n=2,n1=3的情况下,隐层第j个节点的输出为:(j=1,2,3),21,(B)一个隐层的感知器 图3.5 多层感知器网络,22,可以在二维输入空间上决定三条直线,因为各自的Wij和j不同,三条直线的截距和斜率各不相同,如同3.6(A)所示,就可以找到一个区域使其内为A类,之外为B类,用这三个隐单元所得到的一个封闭区域就可满足条件。从隐单元到输出层只要满
8、足下式即可得到正确划分。十分明显,隐节点到输出节点之间为“与”关系。对于图3.6(B),可以采用有两个隐层的感知器来实现,其中第二隐层节点到输出层节点为“或”关系,即满足下式即可。,23,Y2=(X1,X2)(W11X1+W21 X2-1)0(W12 X1+W22 X2-2)0(W13 X1+W23 X2-3)0 Y3=(X1,X2)Y12Y22 3 6=(X1,X2)(W1jX1+W2j X2-j)0)(W1j X1 j=1 j=4+W2j X2-j)0),24,(A)(B)图3.6 多层感知器对输入空间的划分,25,Y11=1X1+1 X2-1 Y21=(-1)X1+(-1)X2-(-1.
9、5)Y2=1 Y11+1 Y21-2图 3.7 解决异或问题的三层感知器,26,图3.8 单层与多层感知器的决策分类能力,27,3.1.4 感知器用于分类问题的算例,感知器的结构见图 3.9所示。图3.9 感知器结构,28,其中,u=W1X1+W2X2,在此特选定输出单元为非线性函数,其输出为:输入模式为:(0.5,0.05)、(0.05,0.5)A类(0.95,0.5)、(0.5,0.95)B类 教师信号为:,29,W1(t+1)=W1(t)+(T-Y)X1 W2(t+1)=W2(t)+(T-Y)X2(t+1)=(t)+(T-Y)总的误差之和为:,30,31,表 3.3(a)表 3.3(b)
10、,32,33,3.2 多层前馈型神经网络,3.2.1 网络结构及工作过程 3.2.2 误差函数与误差曲面 3.2.3 网络的学习规则梯度下降算法,34,3.2.1 网络结构及工作过程,一、学习样本 输入样本为:(XK,TK),其中K1,2,N,N为学习样本数,XKRn,TKRm。二、工作过程,35,图 3.12 前馈型神经网络结构,36,三、非线性单元常采用的转移函数,37,(0 f(x)1)通常增加参数和来调整函数的斜率和使其左右平移,Sigmoid函数为一单调递增连续函数,且处处可导,其导数为:,38,Sigmoid函数通过下式能够映射到(-1,1)范围:双曲正切函数的表达式为:(-1 f
11、(x)1)通常增加参数和来调整函数的斜率和使其左右平移,,39,表3.4 新的转移函数极其导数,40,误差函数与误差曲面,一、误差函数 误差函数:E(W)=g(f(W,XK,TK),K=1,2,N,E称为误差(测度)函数。即网络的实际输出向量YK与教师信号向量TK的误差用误差函数来判别,常采用二乘误差函数加以判别,其中,N为输入样本的个数,m为输出向量的维数。,41,二、映射 对于给定的一组数据(XK,TK),(K=1,2,N)网络一组特定的权值W实现一定精度的映射。训练的目的希望得到的权值能产生最小的误差和最好的精度。把从XkRn到YkRm的映射记为:f:XkRn YkRm,42,三、误差曲
12、面 误差曲面:若隐层与输出层间的权值数记为mn2,对于给定的训练样本(XK,TK),网络权矢量W(W1,W2,.,W mn2)通过误差函数E(W)所计算出来的映射误差所描绘出来曲面。误差曲面可用(mn2+1)维空间来描述,即是mn2+1空间的一个曲面。不同的E(W)有不同的误差曲面形状。网络学习:是指按照某种学习规则选取新的W,使得E(W)E(W),对于误差曲面上的点E(W)总是向山下移动,最终移到最深的谷底(全局最小)。若曲面有多个谷底,移动的过程可能陷入局部极小。,43,移动步长:也称学习率,步长小移动轨迹较平滑,慢,易陷入局部极小;步长大,速度快,可能跳过局部极小,也可能跳过全局最小点,
13、也易产生振荡。一般情况下,开始时步长大,后期步长小。梯度下降算法:如果移动是在误差曲面最陡的方向进行,或梯度下降的方向,这样下山的速度快,称做最速梯度下降法。,44,网络的学习规则梯度下降算法,权值的修正量取误差函数E(W)对W的负梯度,即:设有N个学习样本(XK,TK),K=(1,2,N),对于某个XK网络输出为YK,节点i的输出为YiK,i和j的连接权值为Wij,节点j的输入加权和为:,45,误差函数使用二乘误差函数:定义:,46,1当j为输出节点时:2若j不是输出节点时,有:,47,因而对权值的修正为:,48,3.3 误差逆传播算法(BP算法),3.3.1 BP算法的数学描述3.3.2
14、BP算法收敛性定理,49,3.3.1 BP算法的数学描述,一、首先,确定和选择网络结构,包括确定输入层和输出层的节点数,选择隐层数和各隐层内的节点数。确定节点的转移函数、误差函数类型和选择各个可调参数值。神经元的转移函数选择为Sigmoid函数:误差函数为二乘误差函数:,50,Yi1为输入层节点i的输出;Yj2为中间层节点j的输出;Yk3为输出层节点k的输出;Tk为输出层节点k对应的教师信号;Wij为节点i和节点j间的连接权值;Wjk为节点j和节点k间的连接权值;j 为中间层节点j的阈值;k 为输出层节点k的阈值;图 3.14 一个三层的前向神经网络,51,二、初始化 设定学习次数t=0;对网
15、络权值和阈值赋于小的随机数,Wij(t)-1,1、Wjk(t)-1,1,j(t)-1,1,k(t)-1,1。(一)前向计算 输入一个学习样本(XK,TK),其中K1,2,N、N为样本数,XKRn,TKRm。计算隐层各节点的输出值:j1,2,n1,52,计算输出层节点的输出:k1,2,m(二)逆向误差修正计算:输出层节点和隐层节点之间连接权值修正量的计算:k1,2,m 隐层节点和输入层节点间连接权值修正量的计算:用求出的误差修正量k来修正输出层和隐层间连接权值矩阵Wjk和阈值向量k。例如对节点k和隐层j的连接权值Wjk和节点k的阈值的修正为:,53,用求出的误差修正量j来修正隐层和输入层间连接权
16、值矩阵Wij和阈值向量j。例如隐层j和输入层节点i的连接权值Wij和节点j的阈值的修正为:如果全部学习样本未取完,则返,否则,计算误差函数E,并判断E是否小于规定的误差上限,如果E小于误差上限,则算法结束;否则,如果学习次数到算法结束;否则更新学习次数t=t+1,返回。,54,W和的初始化,取一学习样本做为输入信号,中间层节点输出的计算,输出层节点输出的计算,输出层节点误差的计算,中间层节点误差的计算,中间层和输出层间权值的更新,输出层节点阈值更新,输入层和中间层间权值的更新,中间层节点阈值更新,全部学习样本取完?,学习次数达到?,误差E小于误差上限?,学习结束,开始,Y,N,N,Y,Y,N,
17、图3.15 BP算法程序流程图,55,一括修正法对图3.15的变更部分见图3.16所示。,56,使用Memond法修正权值向量和阈值向量时,要考虑到前一次修正量。如果(t-1)时刻的修正量为W(t-1),t时刻计算的修正量为W(t),设Memond系数为m,则Memond法对权值的修正量为:W(t+1)=W(t)+mW(t-1)当t时刻计算的修正量为W(t)和Memond项W(t-1)符号相异时能使本次的修正量W(t)值变小,即能抑制振荡,因而能加快学习过程。为使本次修正量更接近于前一次的修正方向,应该使Memond系数不断增加,修改其修正量为:W(t+1)=W(t)+m(t)W(t-1)m(
18、t)=m+m(t-1),57,58,59,3.3.2 BP算法收敛性定理,定理3.4 令(X)为一有界单调递增连续函数,K为Rn维的有界闭集合,f(X)=f(X1,X2,Xn)是K上的连续函数,那么对于任意的0。存在正整数N和常数Ci、i(i=1,2,N)和Wij(i=1,2,N;j=1,2,n)使:(3.3.16)成立。此定理说明对于任意0,存在一个三层网络,其隐单元的输出函数为(X),输入输出单元为线性的,对于任意连续映射f:RnRm,在任意的有界闭集合上能以任意精度逼近。,60,BP算法虽然简单,对各个方面都有重要意义,但是它存在有以下问题:1从数学上看它是一个非线性优化的问题,这就不可
19、避免地存在局部极小的问题。2学习算法的收敛速度很慢,通常需要几千步迭代或更多。3网络的运行还是单向传播,没有反馈,目前这种模型并不是一个非线性动力学系统,只是一个非线性映射。,61,4网络的隐节点数目选取尚无理论上的指导,而是根据经验或实验选取。5对于新加入的样本要影响已经学完的样本,不能在线学习,同时描述每一个样本的特征数目也要求必须相同。,62,3.4 误差逆传播算法(BP算法)的若干改进,3.4.1 基于全局学习速率自适应调整的BP算法 3.4.2 基于局部学习速率自适应调整的BP算法 3.4.3 BI(Back Impedance)算法,63,3.4.1 基于全局学习速率自适应调整的B
20、P算法,1加入动量项 其中,为动量系数,一般取0.9左右。引入这个动量项之后,使得调节向着底部的平均方向变化,不致产生大的摆动,即动量起到缓冲平滑的作用。若系统进入误差曲面的平坦区,那么误差将变化很小,于是(t+1)近似等于(t),而平均的将变为:式中-/(1-)变化大,将调节尽快脱离饱和区和截至区。,64,2学习速率的经验公式法 对于批处理更新的学习速率,是基于相类似训练模式产生类似梯度的假设。=1.5/=0.9 3学习速率渐小法 从大的学习速率(0)开始,在训练期间,这个值减小到大约(0)/(t+1),后来为(t)=(0)/(t+1),65,4渐进自适应学习速率 用一种简单的进化策略来调节
21、学习速率。从某个值开始,下一步更新通过用增加和减小学习速率去完成。产生比较好性能中的一个被用作为下一步更新的起始点:创建两个一样的网络和初始学习速率。按下式调节两个网络的权。,66,如果两者总误差已经得到增加(回溯),放弃这些网络并重新起动以前的网络和初始学习速率。在减小总误差的情况下,用具有比较小的总误差的网络以及学习速率以启动下一个学习步。,67,3.4.2 基于局部学习速率自适应调整的BP算法,1基于符号变换的学习速率自适应 工作步骤如下:对每个权值,选择某个小初值ij(0);修改学习速率 ij(t)=ij(t-1)u 如果 否则,68,更新连接 只要保持 u1/d,选择合适的参数和是很
22、容易的。推荐的值分别是1.11.3或者0.7-0.9。如果总误差增加。用回溯策略重新起动更新步骤,对于这种重新起动,所有学习速率被减半。2DeltaBarDelta技术 DeltaBarDelta方法通过观察指数平均梯度的符号变化来控制学习速率。通过加入常值代替乘这个值来提高学习速率:对每个权重,选择某个小的初值ij(0),69,修改学习速率如果 如果 其他 其中(t)表示指数平均梯度:,70,更新连接 对于u推荐很不同的值(5.0,0.095,0.085,0.035),对于d,采用(0.9,0.85,0.666)和对于采用0.7。特别是难于找到合适的u,小的值可能产生慢自适应,而大的值危及学
23、习过程。,71,3.4.3 BI(Back Impedance)算法,1BI算法 给权值赋予一个小的随机数。给定输入函数值与相应的输出函数值。计算每个节点的输出值,计算输出层节点的误差项,,72,调整权值 Wij(t+1)=Wij(t)+aj Yi+b(Wij(t)-Wij(t-1)+c(Wij(t-1)-Wij(t-2)式中,a学习率,相当于梯度下降算法中的学习步长;b影响从“前一次”权值改变到“当前”权值的权值空间运动方向,是影响权值变化的一个常数;c 影响从“再前一次”权值改变到“前一次”权值的权值空间运动方向,也是影响权值变化的常数。a、b、c三个常数满足下列关系,则收敛速度会加快:a
24、=1/(1+J+M+D)b=(2J+M)/(J+M+D)c=J/(J+M+D),73,式中J、M、D满足:给定另一输入函数值,返回。所有的输入函数值循环进行计算,直至所有权值稳定,网络误差达到预定精度算法结束。,74,图 3.18 网络结构,75,2算法应用于函数非线性变换 网络的输入函数为:式中X=0,1,A、B、C是常数,网络的期望输出函数为:D=KX+P。取A=0.5,B=0.75,C=3,K=-5,P=12。使用BI算法,运行结果见下表3.6,精度达到99.206%。,76,表 3.6 使用算法函数非线性变换的运行结果,77,3.5 使用遗传算法(GA)训练前馈型神经网络方法,一、基本
25、概念 GA进行遗传操作的基本对象是个体或染色体(chromosome)。染色体通常用字符串或位串来表示,若干长度的串称为构成染色体的基因(gene)。群体(Population)由一组(N个)染色体组成,它代表GA搜索的遗传空间。GA中用适应度函数(fitness function)来评价染色体的优劣。,78,二、基本操作 编码(Coding)是将问题解的表示映射成遗传空间解的表示,即用字符串或位串构造染色体,其相反操作为解码。选择(Selection)操作是根据染色体的适应度,在群体中按一定概率选取可作为父本的染色体,选择的依据是:适应度高的染色体被选中的概率大。交叉(Crossover)操
26、作是按一定概率随机地选择染色体对,然后对染色体对按一定概率随机地交换基因以形成新的子染色体。,79,变异(Mutation)操作是按一定概率随机地改变某个染色体的基因值。三、算法 首先,确定编码形式,定义染色体串的长度、各基因的意义和表示形式及确定映射关系。然后确定适应度函数及群体规模。算法的大致步骤如下:(1)随机产生N个染色体,构成初始群体S。(2)计算群体S中各染色体的适应度。,80,(3)依据各染色体的适应度,按一定概率随机地选择K对(1KN/2)染色体,构成子群体S,SS。(4)随机地将S中染色体两两配对。(5)对每对染色体按照某一概率实施交叉操作,形成K对新的子染色体构成的子群体S
27、。(6)对S中的染色体按某一概率实施变异操作。(7)计算S+S群体中所有染色体的适应度,并淘汰掉适应度小的K对染色体。形成新一代群体S。(8)若S中适应度最大的染色体满足要求的适应度值或评价标准,或者完成了指定代的搜索,则解码S中适应度最大的染色体,得到问题的求解,否则转向(3)。,81,四、使用GA训练前馈型神经网络的方法步骤 图3.20 网络结构及训练样本,82,图为一识别部分英文字母的前向神经网络,其中输入层节点数为35,隐层节点数为16。输出层节点数为4。其中隐层节j的输入加权和为:(3.5.1)输出层节点k的输入加权和为:(3.5.2)节点的输出函数用Sigmoid函数,即:(3.5
28、.3),83,使用GA对网络进行训练优化权值的方法步骤如下:1.染色体编码,确定染色体长度和结构 网络权值数为:35*16+16*4+16+4。每一权值用取值范围为-1.0至+1.0之间的数表示,最后将数值的排序固定下来。2.适应度函数的选取 其中i=1,2,N为染色体数;p=1,4为输出层节点数;K=1,2,3,4为学习样本数;Tk为教师信号。,84,3.控制参数的选定 在此,初始群体中的染色体数选取N=10;依据适应度高的染色体被选作父染色体的概率大的原则,选K1对染色体作为父染色体;交叉操作交换染色体中半数目的基因。4.网络学习训练过程(1)对网络权值编码、排序,构造染色体。随机产生10
29、个染色体,构成初始群体。每个权值取-1.0至+1.0之间的小随机数。(2)对每个染色体解码得列相应权值,按照公式计算网络的误差函数E(i)和染色体的适应度函数f(i)。,85,(3)按选择概率Psel选出一对染色体C1和C2。(4)按交叉概率Pcross对C1和C2实施交叉操作,得到子染色体C1 和C2。(5)分别对C1 和C2按概率Pmut实施变异操作,得到新的子染色体C1 和C2。(6)对C1和C2解码得到相应权值,并按照公式计算出网络的误差函数E和染色体的适应度值f。(7)在N+2K个染色体中淘汰2K个适应度小的染色体,形成新一代群体。(8)若满足E0.001,则选择有最小的误差函数值E
30、(i)的染色体,即适应度最大的染色体,将其解码得到网络权值。至此学习训练结束;否则转(3)。,86,图3.22 适应度函数曲线,87,图3.23 附加噪音的输入信号,88,图3.24 识别率曲线,89,3.6 前馈型神经网络结构设计方法,3.6.1 输入层和输出层的设计方法 3.6.2 隐层数和层内节点数的选择,90,3.6.1 输入层和输出层的设计方法,输出层维数应根据使用者的要求来设计,如果网络用作分类器,其类别数为m,那么一般取m个神经元,其训练样本集中的x。xj属于第j类,要求其输出为:即第j个输出为1,其他输出为0,此外,输出神经元还可根据类别进行编码,即m类的输出只要用log2 m
31、个输出节点即可。,91,3.6.2 隐层数和层内节点数的选择,一、隐层数的选择 定理3.4 假定隐层的节点数可以根据需要自由设置,那么用三层S状的I/O特性的节点,可以以任意精度逼近任何连续函数。二、隐层内节点数的确定 有一种设计是采用逐步增长和逐步修剪法来调整隐单元数目,初始时使用足够多的隐单元,然后在学习过程中逐步修剪掉那些不起作用的隐单元,一直减少到不可收缩为止。也可以在初始时设定较少的隐单元,学习一定次数后,不成功后再逐步增加隐单元数,一直到增加到比较合理的隐单元数为止。,92,另一种方法是使用遗传算法来确定网络的隐层数和隐层单元数,即把这些待定的数目编码成染色体的基因,然后通过遗传操
32、作来优化网络结构,以确定隐层数和隐单元数。下面介绍几种方法,可作参考:(l)1987年HechtNielsen在讨论了具有单隐层的ANN的功能之后,指出它可实现输入的任意函数,并提出隐含层节点的数目为2N+1,其中N为输入的节点数。,93,(2)1987年RPLinnmann利用他对多层网络功能的几何解释,提出了对隐含层节点数的估算。对于一个图形识别问题,假设输出判别边界是任意的形状,那么平均来说,由于每个非凸域的输出边界是靠组合第二隐层的两个凸子域形成的,所以,第二隐层的节点数应为M2,这里M为输出层的节点数。在模式分类中,有 H=log2T 的近似关系,其中H为隐单元数;T为输入训练模式数
33、。(3)1988年Kuarycki根据其实验发现,在高维输入时,第一隐层对第二隐层的最佳节点数比例为3:1。,94,例如,由两个隐层的BP算法的神经元网络实现图形识别时,设输入节点为20和输出节点为8时,按Linnmann的关系,第二隐层的节点数为 M2=82=16,根据Kuarycki的推论,第一隐层的节点数应为3(M2)=48个。(4)用于统计过程控制的ANN 1990年Nelson和Illingworth建议隐含层节点数应为4N。对于图形识别的ANN,隐含层节点数大为减少,当输入维数较高时,节点数最少可达到0.02N。例如,在贷款评估的网络中,输入节点为4,那么隐含层节点均取44=16,
34、并在图形识别的例子中,输入节点数为64,第一隐含层节点数取64,第二隐含层节点数取20。,95,(5)对于医疗诊断,不少人作了研究,认为用具有单隐含层的网络就可得到满意结果。这种单隐含层网络的输出的判决域通常是凸域。下面介绍几种选择单隐含层节点数目的估值方法如下:Lippmann认为最大隐含层节点的数目为M1(N+1)。Kuarycki认为最大隐含层节点的数目为M13。A.J.Maren等人认为,对小型网络来说,输入节点数大于输出节点数时,最佳隐含层节点数等于输入和输出节点的几何平均值即(M1N)1/2。M1为输出层节点数。,96,(6)下面几个公式也可供选择隐含层单元数参考 n Kn1,Ci
35、n1=0。,其中m为输出层神经元数,n为输入层单元数,为1至10间的常数。n1=log2n,n为输入层神经元数,用于数据压缩的网络。隐单元数与输入单元数的比为其数据压缩比,常使用此公式。,97,还有一种方法就是使隐含单元数可变。一种是开始放入足够的隐含单元,然后把学习后那些不起作用的隐含单元逐步去掉,一直减少到不可收缩为止。另一种是在开始放入比较少的隐含单元,学习一定次数后,还不成功就要增加隐含单元个数,一直达到比较合理的隐含单元数为止。这样做对于用硬件完成BP多层网有一定的好处,但是对于结构的选定所花的时间比较长,这属于一种变结构类型。,98,三、初始权值的选取 由于系统是非线性的,初始值对
36、于学习是否达到全局最小或是否能够收敛关系很大。一般情况下,希望初始权值在输入累加时使每个神经元的状态接近于零,这样开始时在误差曲面上不落到那些平坦区上。权值一般取较小的随机数,这样可以保证每个神经元在一开始时都在转移函数变化最大的区域进行。对于输入样本要进行归一化处理,使得那些比较大的输入值或者太小的输入值不至于使得神经元过于饱和或截止,应能使输入落在神经元转移函数梯度最大的那些区域。,99,3.8 自适应线性元件,单元的输入与输出关系满足:xk,wkRn,k为阈值,如使k=w0k,x0=1,那么,100,图3.44 Adaline原理图,101,一、用于非线性分割的自适应网络(1)加一些辅助
37、的输入单元,使输入向量 XkRn 变为XkRn+l,这l个输入单元的输入是Xk矢量中各单元xik 的二次值,i=1,2,n。如在两维的情况下,n=2,加上三个辅助输入节点F1、F2、F3,如图3.45(a)所示,使其 F1=x1k2,F2=x1kx2k,F3=x2k2。这样我们得到其输出yk为 Yk=wik xik+w11 F1+w12 F2+w22 F3 i=0=w0k+x1kw1k+x2kw2k+w11x21k+w22x22k+w12x1kx2k 当yk=0时,是一个椭圆或是一个圆,可以通过调节权系数来达到这一类的非线性分割。,102,图3.45(a)非线性分割的Adaline结构;(b)
38、用椭圆分界面解XOR问题;(c)用圆分界面分割,A,AND,103,这种辅助输入单元的网络将会因为输入维数的增加,其辅助输入维数亦增加,如原来输入单元维数为n,考虑二次情况,输入总的维数为:2n+C2n=2n+n(n-1)/12=(n2+3n)/2,因而增加了复杂性。(2)Madaline网络,是由多个 Adaline单元组合成的多层网络。,104,图3.46(a)Madaline结构;(b)多层Madaline网络,105,二、多层Adaline网络的学习算法(1)初始化多层Adaline网络中的权,用一个随机数作为各个权的初始权值。(2)输入一个样本矢量Xk和要求的输出Tk用式(3.8.1
39、)按层一步一步地计算出实际输出,并求出要求的输出Tk 和实际输出的误差。(3)根据最小干扰的原则,从第一层开始,找第一层中神经元模拟输出最接近于0的那个神经元,让它输出数字量改变符号。(4)计算网络最后的输出和要求响应之间的误差,如果误差减小,则这种改变被接受,如没有减小,上一步改变的输出数字量的符号恢复。,106,(5)第一个神经元训练结束后,转入下一个神经元,即模拟输出第二个接近0的单元,仍按上面的规则训练。(6)当这一层单个神经元训练完了,再按两个一组地训练,然后再按三个一组,直到输出与要求响应之间的距离减到最小为止。然后用同样的方法训练第二层、第三层,直到相同量为止。(7)另一个新的样
40、本输入,用同样方法进行训练,一直到达到误差最小为止。(8)通过MRII的学习可以得到每个样本输入对应的每一层相应的输出,从而对每一单层的Adaline可以用LMS算法进行学习,得到全部权的解。,107,单层的学习算法如下:w(t0+1)为w(t0)的下一个时刻的权矢量,Xk(t0)为当前输入样本矢量,(t0)为当前的误差。t0为迭代的次数。如果Xk(t0)矢量的分量为+1或-1,那么X(t0)2为:X(t0)2=x12(t0)+x22(t0)+xn+12(t0)=n+1 对于每个调节周期,可按照()进行调节。误差(t0)为:(t0)=Tk(t0)-XT(t0)W(t0),108,当权改变时,其
41、误差改变为:(t0)=T(t0)-XT(t0)W(t0)=-XT(t0)W(t0)W(t0)=W(t0+1)-W(t0)=(/Xk(t0)2)(t0)X(t0)综合上式得(t0)=-XTk(t0)/Xk(t0)2(t0)Xk(t0)=-(t0)这说明,当网络的输入不变时,误差的变化是缩小当前误差的倍,选择因子可以控制收敛的速度和稳定性,太大,误差将可能增大。一般取1.00.1。,109,3.9 径向基函数神经网络,3.9.1 网络结构 3.9.2 网络算式及参数,110,3.9.1 网络结构,图 3.49 径向基函数神经网络结构,111,3.9.2 网络算式及参数,最常用的径向基函数形式为高斯
42、函数,它的可调参数有两个,即中心位置及方差b(函数的宽度参数),用这类函数时整个网络的可调参数(待训练的参数)有三组,即各基函数的中心位置、方差和输出单元的权值。通常选择隐层的节点数为训练样本个数,每个节点都有一个径向基函数的中心向量,该中心向量即为训练样本的输入向量。CK=|CK1,CK2,CKn|K=1,2,N 隐节点的净输入定义为输入模式X与隐节点的径向基函数中心向量间的欧氏距离,即:,112,隐层节点的转移函数为Gauss函数:f(x)=exp(-x2/b)=exp(-2K/b)Gauss函数其形状见图,其中参数b控制钟形高斯曲线宽度的作用,隐层节点的输出 yK=f(K)代表着输入模式
43、离开该隐节点所代表的径向基函数中心的程度。输出层节点数为输出向量的维数,节点j 的输出为:式中 Wj=w1j,w2j,wNj,Z=z1,z2,zN,113,图3.50 Gauss函数,114,RBF网络的中心向量和权值均由学习样本来确定,因输出单元是线性单元,所以它的权值可以用最小二乘法直接计算出来。因此,设计一个RBF网络时只有一个参数b需要调整,即高斯函数中的平滑因子b,它控制着高斯曲线钟型的宽度。RBF 网络的中心向量、平滑因子b和权值w也可由BP算法学习训练得到。,115,3.7 基于算法的前馈型神经网络在识别问题中的应用,3.7.1 味觉信号的学习和识别,116,3.7.1 味觉信号
44、的学习和识别,一、味觉信号的特征抽取 众所周知,酸、甜、苦、香、咸被称为基本味。在对五种基本味觉信号的模式识别中,首先通过味觉传感器对味觉信号进行数据采集,对每种味觉信号采样的数据点相当于一个2004l阶的实数矩阵,而不能直接用味觉传感器的测量值作为输入样本。此时,需要通过适当的变换方法,对味觉采样信号进行特征抽取和特征选择,以降低样本的空间维数,即需要通过对原始测量值进行压缩、舍弃,提取能表征五种味觉信号的明显特征。,117,图3.26 利用对酸味和甜味的采样数据绘制的图形,118,1、特征抽取方法 如果按图3.27(a)的分割方法,任取一子块,假定其物理位置是从a行起b行止,c列起d列止,
45、并把该位置映射到五种味觉信号相同位置上的五个子块记为,则味觉信号在子块处的累加和为:(3.7.1)计算出全部,于是味觉信号可以用一个l010的矩阵来替代,从而大大降低了输入样本的分量数。,119,图3.27 实验用的五种分割取块的分法(jl,5),为块数;再求相对值:。,120,2、特征选择 任意子块ni映射到五种味觉信号相应位置上的5个子块记为nij(j=1,5),它们之间的区别程度用特征值Ti来表示,即Ti值大,则说明五种味觉信号在于块n1处各自特征明显。使用下面两种方法求Ti值。(1)在子块ni处,若各子块的体积Vij(j=1,5)为,j=1,5(3.7.2)则Ti值为:kp,k、p=1
46、,5。(3.7.3),121,(2)倘若各子块在你n1处体积都相等,则其Vij值均为0.2;反之,各子块相互间差异大,则Vij值都远离均值0.2,显然可用下式求Ti值:(3.7.4)之后,按所求的各子块的Ti值大小,将子块排序,选择时可保留大的,舍弃小的。3、实验与结果,122,图 3.28 对五种分割的测量结果 图 2.29 分割(a)改变选 择的块数量时的学习次数,123,图3.30 混合排序时的测量结果,124,图 3.31两种排序的对比,125,若学习信号为A,C为-l到+l间的随机数,则叠加噪声信号后的测量值A=A+0.5CA。以A为未知信号输入,各测量1000次,测量错判次数,结果
47、见图3.32。,126,图 3.32 两种排序的误识率,127,二、神经网络味觉信号的学习和识别 1、样本的选取,128,表3.13 神经网络输入规范模式,129,表3.14 教师信号,130,图3.33 学习过程,131,2、味觉信号的学习 f(x)=1/(1+exp(-x/U0)(3.7.5)具体的学习算法按下面顺序进行:(1)网络参数的初始化。决定网络状态的权值Wji,Vkj,阈值j,k用小随机数初始化;(2)按序取1列模式做为网络的输入信号;(3)中间层各神经元输出的计算式为:Uj=Wji Ii+j(3.7.6)Hi=f(Uj)(3.7.7),132,图3.34 网络结构,133,(4
48、)输出层各神经元输出的计算式为:Sk=Vkj Hj+k,Ok=f(Sk)(3.7.8)以上为正向传播过程,下面给出误差逆传播过程。(5)计算输出层神经元的误差。用教师信号Tk和输出层神经元的输出Ok间的差值来计算和神经元k相关联的权值Vkj和阈值k的误差:k:k=(Ok Tk)Ok(1Ok);(6)计算中间层神经元的误差。用k和Vkj及中间层的输出Hj来计算和中间层神经元j相关联的权值Wji和阈值j的误差:j:j=k Vk Hj(1-Hj);(3.7.9),134,(7)输出层神经元的阈值k和权值Vkj的修正。用误差j和中间层神经元的输出Hj及常数之积来修正Vkj,并用误差k和常数之积来修正j
49、:Vkj=Wji+k Hi,k=k+k;(3.7.10)(8)中间层神经元的阈值j和权值Wji的修正。用误差j和输入层神经元的输出Ii及常数的积来修正Wji,并用j和常数之积来修正j:Wji=Wji+j Ii,j=j+j;(3.7.11),135,(9)取下一个输入模式做为输入信号,如果输入模式轮序一周,则计算误差和E:E=Ok-Tk(3.7.12)如果E值小于指定的误差范围,则学习终止;否则更新学习次数,返回(2)。如果仍有输入模式待输入则返回(3)。,136,图3.35 中间层神经元数和学习次数及学习时间的关系,137,3、味觉信号的识别图3.36 味觉信号识别过程,138,表3.21 测量结果,139,1.(1000,0,0,0,0)2.(0,1000,0,0,0)3.(0,0,998,0,0)4.(0,0,0,998,0)5.(0,0,0,0,1000),140,图3.37 附加噪声信号的识别,