还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
神经网络建模及__tlab中重要的BP网络函数
一、神经__的基本特征 1.细胞体是一个基本的初等__处理器,轴突是__的输出通路,树突是__的输入通路__从一个神经细胞经过突触传递到另一个细胞2.不同的神经元之间有不同的作用强度,称为联接强度当某细胞收到__时,它的电位发生变化,如果电位超过某一阈值时,该细胞处于激发态,否则处于抑制状态3.两神经元之间的联接强度随其激发与抑制行为相关性的时间平均值正比变化,也就是说神经元之间的联接强度不是一成不变的这就是生物学上的Hebb律
二、人工神经元的M-P模型(McCulloch、Pitts1943)1.构造一个模拟生物神经__的人工神经网络的三要素
(1).对单个神经元给出定义;
(2).定义网络结构决定神经元数量及连接方式;
(3).给出一种方法,决定神经元之间的联接强度2.M-P模型其中,t表示时间Sit表示第i个神经元在t时刻的状态,Sit=1表示处于激发态,Sit=0表示处于抑制态wij表示第j个神经元到第i个神经元的联接强度,称之为权,可正可负表示第i个神经元在t时刻所接收到的所有__的线性迭加μi表示神经元i的阈值可以在模型中增加一个Skt=1神经元k,并且wik=-μi则阈值可归并到和号中去注1.M-P神经元虽然简单,但可以完成任何计算2.神经元的状态可以取[0,1]中的连续值,如用以下函数代替θx:
三、多层前传网络
1.特点 相邻层全互连 同层没有连接 输出与输入没有直接__2.各层神经元个数的确定输入层、输出层的神经元个数由研究对象的输入、输出信息来确定隐含层3.符号说明μ表示一个确定的已知样品的标号;ijk分别对应于输出层、隐含层、输入层的下标;将第μ个样品的原始数据输入网络时,相应输出单元状态;将第μ个样品的原始数据输入网络时,相应隐含单元状态;将第μ个样品的原始数据输入网络时,相应输入单元数据;wij从隐含层第j个神经元到输出层第i个神经元的联接强度;wjk从输入层第k个神经元到隐含层第j个神经元的联接强度;4.网络数据流程对应于输入层的输入隐单元j的输入是对应的输出是输出单元i收到的迭加__是输出单元i的输出是显然输出是所有权w={wijwjk}的函数
四、向后传播算法Back-Propagation设样品μ在输出单元i上的理想输出为,则函数 表示了在一定的权下,理想输出与实际输出的差异因此,确定权w的问题化为求Ew的极小值问题可以采用最速下降算法最速下降算法步骤1)任取初始点w0,计算出w0的负梯度方向-▽Ew02)取新点w1=w0+△w=w0-η▽Ew0使E(w1)Ew03)判断其中△w的计算如下对于隐单元到输出单元的权的修正量为其中对于输入单元到隐单元的权的修正量为其中
五、__tlab中BP神经网络的实现1.BP神经网络的初始化各层神经元个数各层神经元之间的连接强度各层神经元的传递函数1).人工初始化如下例例
1.有一个三输入两层神经网络隐层有两个对数S形神经元输出层有一个正切S形神经元用于预测两个一元目标矢量.p=[
00.5-
0.2;
10.
20.3];%输入t=[
0.5-
0.5];%理想输出r=3;s1=2;s2=1;%输入层、隐层、输出层的神经元个数w1=randss1r;%输入层到隐层的连接强度b1=randss11;%隐层的阈值w2=randss2s1;%隐层到输出层的连接强度b2=randss21;%输出层的阈值lr=1;%学习速率forepoch=1:40%训练网络40次a1=logsigw1*pb1;%隐层的输出a2=tansigw2*a1b2;%输出层的输出e=t-a2;%与理想输出的误差d2=deltatana2e;%输出层的δ值d1=deltaloga1d2w2;%隐层的δ值[dw1db1]=learnbppd1lr;%进行学习,获取隐层连接强度、阈值的调整值w1=w1+dw1;%调整隐层的连接强度b1=b1+db1;%调整隐层的阈值[dw2db2]=learnbpa1d2lr;%进行学习,获取输出层连接强度、阈值的调整值w2=w2+dw2;%调整输出层的连接强度b2=b2+db2;%调整输出层阈值end;a1=logsigw1*pb1;%学习后,对网络进行验证a2=tansigw2*a1b22.调用系统提供的函数 格式[w1b1w2b2]=initffps1f1s2f2[w1b1w2b2]=initffps1f1tf2 功能至多三层的BP网络初始化,得到每层的权值和阈值 说明1)P为输入向量,P中每一行必须包含网络期望输入的最大值和最小值,这样才能合理地初始化连接强度与阈值2)T为理想输出向量3)S1为隐层的神经元数,S2为输出层的神经元数,可用理想输出向量T代替S2,此时S2=T向量的行数4)F1为隐层传递函数名,F2为输出层传递函数名例2例2 应用两层BP网络进行函数逼近,其中隐层神经元个数设为5个clfreset;figure__fcolordef__fnonesetfsize500200;echoonclc%INITFF-Initializesafeed-forwarenetwork.%TRAINBP-Trainsafeed-forwardnetworkwithbackpropagation.%SIMUFF-Simulatesafeed-forwardnetwork.%FUNCTIONAPPROXI__TIONWITHTANSIG/PURELINNETWORK:%Usingtheabovefunctionstwo-layernetworkistrained%torespondtospecificinputswithtargetoutputs.%DEFININGAVECTORASSOCATIONPROBLEM%====================================%Pdefinestwenty-one1-elementinputvectorscolumnvectors:P=-1:.1:1;%Tdefinestheassociated1-elementtargetscolumnvectors:T=[-.9602-.5770-.
0729.
3771.
6405.
6600.
4609....1336-.2013-.4344-.5000-.3930-.
1647.
0988....
3072.
3960.
3449.1816-.0312-.21__-.3201];%PLOTTINGTHEDATAPOINTS%========================%Herethedatapointsareplotted:plotPT+;titleTrainingVectors;xlabelInputVectorP;ylabelTargetVectorT;%Thefunctiontheneuralnetworklearnsmustpassthrough%thesedatapoints.pause%Strikeanykeytodesignthenetwork...clc%DESIGNTHENETWORK%==================%Atwo-layerTANSIG/PURELINnetworkwillbetrained.%ThenumberofhiddenTANSIGneuronsshouldreflectthe%complexityoftheproblem.S1=5;%INITFFisusedtoinitializetheweightsandbiasesfor%theTANSIG/PURELINnetwork.[w1b1w2b2]=initffPS1tansigTpurelin;echooff%TRAININGTHENETWORK%====================%TRAINBPusesbackpropagationtotrainfeed-forwardnetworks.df=10;%Frequencyofprogressdisplaysinepochs.me=8000;%__ximumnumberofepochstotrain.eg=
0.02;%Sum-squarederrorgoal.lr=
0.01;%Learningrate.tp=[dfmeeglr];%Trainingbegins...pleasewaitthistakesawhile!...[w1b1w2b2eptr]=trainbpw1b1tansigw2b2purelinPTtp;%...andfinallyfinishes. %TRAINBPhasreturnednewweightandbiasvaluesthenumber%ofepochstrainedEPandarecordoftrainingerrorsTR.pause%Strikeanykeytoseeaplotoferrors...clc%PLOTTINGTHEERRORCURVE%========================%Heretheerrorsareplottedwithrespecttotrainingepochs:ploterrtreg;pause%Strikeanykeytousethefunctionapproxi__tor...clc%USINGTHEPATTERNASSOCIATOR%============================%Wecannowtesttheassociatorwithoneoftheorigonal%inputs
0.5andseeifitreturnsthetarget
0.
3960.p=
0.5;a=simuffpw1b1tansigw2b2purelin%Theresultisfairlyclose.Trainingtoalowererror%goalwouldresultinacloserapproxi__tion.echooffdispEndofDEMOBP
22、传递函数 PURELIN纯线性形函数格式PURELIN(Z,B)成批处理向量Z,并提供阈值B 对数S形LOGSIG函数格式LOGSIG(Z,B) 双曲正切S形TANSIG函数格式TANSIG(Z,B)3.反向传播误差导数函数1)1) DELTALIN(A,E)计算线性输出层的误差导数阵,A、E分别为这一层的输出向量与误差1)2) DELTALIN(A,D,W)1)2)计算线性隐层的误差导数阵,D为下一层的δ向量,W为与下一层的连接强度1)3) DELTALOG(A,E)1)4) DELTALOG(A,D,W)1)5) DELTATAN(A,E)1)6) DELTATAN(A,D,W)
4、BP网络的学习规则1反向传播学习规则格式LEARNBP(P,D,LR)[DW,DB]=LEARNBP(P,D,LR)其中P为本层的输入向量,D为δ向量(可以通过反向传播误差导数函数计算),LR为学习速率可同时得到连接强度的修正矩阵DW与阈值修正向量DB利用本函数之前,首先要计算出网络输出层的误差向量的导数δ2向量,然后通过网络反向传播,直到计算出每个隐层的误差导数(δ1向量),可利用函数DELTALIN、DELTALOG、DELTATAN来计算2)利用动量规则的改进BP算法格式LEARNBPMPDLRMCDW[DWDB]=LEARNBPMPDLRMCDW,DB其中MC为动量常数,0≤MC≤1说明标准BP算法在修正权值时,只是按照当时的负梯度方向进行修改,而没有考虑到以前的梯度方向,从而常常使学习过程发生振荡,收敛缓慢而动量法则是考虑先前的梯度方向
5、BP神经网络的训练1).利用BP算法训练前向网络格式[W,B,TE,TR]=TRAINBP(W,B,F,P,T,TP)[W1B1W2B2TETR]=TRAINBPW1B1F1W2B2F2PTTP[W1B1W2B2W3B3TETR]=TRAINBPW1B1F1W2B2F2W2B3F3PTTP说明
(1)W为连接强度,B为阈值,F为传递函数名
(2)T为理想输出向量,P为输入
(3)TP为可选训练参数 TP1指定两次更新显示间的训练次数,其缺省值为25 TP2指定训练的最大次数,其缺省值为100 TP3指定误差平方和的指标,其缺省值为
0.02 TP4指定学习速率,其缺省值为
0.01
(4)[wbtetr]为训练结果TE为网络的实际训练次数TR为网络训练误差平方和向量2)利用快速BP算法训练前向网络格式[W,B,TE,TR]=TRAINBPX(W,B,F,P,T,TP)[W1B1W2B2TETR]=TRAINBPXW1B1F1W2B2F2PTTP[W1B1W2B2W3B3TETR]=TRAINBPXW1B1F1W2B2F2W2B3F3PTTP说明
(1)TRAINBPX采用了动量法和学习率自适用调整策略,从而提高了学习速度及增加了算法的可靠性
(2)TP为可选训练参数 TP1指定两次更新显示间的训练次数,其缺省值为25 TP2指定训练的最大次数,其缺省值为100 TP3指定误差平方和的指标,其缺省值为
0.02 TP4指定学习速率,其缺省值为
0.01 TP5指定学习速率增加的比率,其缺省值为
1.05 TP6指定学习速率减少的比率,其缺省值为
0.7 TP7指定动量常数,其缺省值为
0.9 TP8指定最大误差比率,其缺省值为
0.43)利用Levenberg-__rquardt算法训练前向网络格式[W,B,TE,TR]=TRAINLM(W,B,F,P,T,TP)[W1B1W2B2TETR]=TRAINLMW1B1F1W2B2F2PTTP[W1B1W2B2W3B3TETR]=TRAINLMW1B1F1W2B2F2W2B3F3PTTP说明
(1)TRAINBPX采用了动量法和学习率自适用调整策略,从而提高了学习速度及增加了算法的可靠性
(2)TP为可选训练参数 TP1指定两次更新显示间的训练次数,其缺省值为25 TP2指定训练的最大次数,其缺省值为100 TP3指定误差平方和的指标,其缺省值为
0.
026、BP网络仿真函数格式SIMUFF(P,W1,B1,F1)SIMUFF(P,W1,B1,F1,W2,B2,F2)SIMUFF(P,W1,B1,F1,W2,B2,F2,W3,B3,F3)其中P为输入向量
六、__tlab中LVQ神经网络的实现学习向量量化(LVQ)是在监督状态下对竞争层进行训练的一种学习算法竞争层将自动学习对输入向量进行分类,分类结果仅仅依赖于输入向量之间的距离一般LVQ神经网络含竞争层和目标分类层
1、LVQ网络的初始化格式[W1W2]=INITLVQPS1T说明目标向量T必须只有一个一个元素为1,其余元素为
02、LVQ网络的学习格式LEARNLVQ(W,P,A,T,LR)
3、LVQ网络的训练格式[W1,W2,TE]=TRAINLVQ(W1,W2,P,T,TP)
4、LVQ网络的模拟格式SIMULVQ(P,W,B)
七、__tlab中自__神经网络的实现
1、自__网络的初始化格式一[W1W2]=INITCPS格式二W=INIT__(P,S)
2、自__网络的训练格式一[W1,W2,TE]=TRAINC(W,P,TP)格式二W=TRAIN__WMPTP其中W是权矩阵,M是邻域矩阵
3、自__网络的模拟格式一SIMU__(P,W,M,N)其中N为邻域的大小,缺省为1;输出对于最大网络输入的神经元i,对应的输出为1;与之距离在1之内的神经元输出为
0.5,其余神经元的输出为0
十、举例1.蠓虫分类问题2.DNA序列分类问题(大连理工大学论文)μiWi1∑Wi2Wi3I2H2H3I3O1H1I4I1O2输出层Oi输入层Ik隐含层Hj权Wjk权Wij。