xqq3 BP 神经网络讲义.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xqq3 BP 神经网络讲义.ppt

感知器和自适应线性元件的主要差别在激活函数上:前者是二值型的,后者是线性的 BP网络具有一层或多层隐含层,除了在多层网络上与前面已介绍过的模型有不同外,其主要差别也表现在激活函数上。 BP网络的激活函数必须是处处可微的,因此它不能采用二值型的阀值函数{0,1}或符号函数{-1,1} BP网络经常使用的是S型的对数或正切激活函数和线性函数 BP网络特点 输入和输出是并行的模拟量 网络的输入输出关系是各层连接的权因子决定,没有固定的算法 权因子通过学习信号调节。学习越多,网络越聪明 隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响 只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数 在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数 S型函数具有非线性放大系数功能,可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出 对较大的输入信号,放大系数较小;而对较小的输入信号,放大系数则较大 采用S型激活函数可以处理和逼近非线性输入/输出关系 BP算法属于δ算法,是一种监督式的学习算法 主要思想 对于q个输入学习样本:P1,P2,…,Pq,已知与其对应的输出样本为:T1,T2,…,Tq 使网络输出层的误差平方和达到最小 用网络的实际输出A1,A2,…,Aq, 与目标矢量T1,T2,…,Tq之间的误差修改其权值,使Am与期望的Tm,(m=l,…,q)尽可能接近 BP算法是由两部分组成,信息的正向传递与误差的反向传播 正向传播过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态 如果在输出层未得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标 假设输入为P,输入神经元有r个,隐含层内有s1个神经元,激活函数为F1,输出层内有s2个神经元,对应的激活函数为F2,输出为A,目标矢量为T 信息的正向传递 隐含层中第i个神经元的输出 输出层第k个神经元的输出 定义误差函数 利用梯度下降法求权值变化及误差的反向传播 输出层的权值变化 其中 同理可得 利用梯度下降法求权值变化及误差的反向传播 隐含层权值变化 其中 同理可得 对于f1为对数S型激活函数, 对于f2为线性激活函数 误差反向传播过程实际上是通过计算输出层的误差ek,然后将其与输出层激活函数的一阶导数f2’相乘来求得δki 由于隐含层中没有直接给出目标矢量,所以利用输出层的δki反向传递来求出隐含层权值的变化量Δw2ki。然后计算 同样通过将ei与该层激活函数的一阶导数f1’相乘,而求得δij,以此求出前层权值的变化量Δw1ij 如果前面还有隐含层,沿用上述同样方法依此类推,一直将输出误差ek逐层的反推算到第一层为止 训练BP网络,需要计算网络加权输入矢量以及网络输出和误差矢量,然后求误差平方和 当所训练矢量的误差平方和小于误差目标,训练停止;否则在输出层计算误差变化,且采用反向传播学习规则来调整权值,然后重复此过程 网络完成训练后,对网络输入一个不是训练集合中的矢量,网络将以泛化方式给出输出结果 为了能够较好地掌握BP网络的训练过程,我们用两层网络为例来叙述BP网络的训练步骤 初始化:用小的随机数初始化每一层的权值W和偏差B,保证网络不被大的加权输入饱和 期望误差最小值error_goal 最大循环次数max_epoch 修正权值的学习速率1r,一般情况下k=0.0l,0.7 变量表达:计算网络各层输出矢量A1和A2以及网络误差E A1=tansig(W1*P,B1); A2=purelin(W2*A1,B2); E=T-A; 权值修正:计算各层反传的误差变化D2和D1并计算各层权值的修正值以及新权值: D2=deltalin(A2,E); D1=deltatan(A1,D2,W2); [dlWl,dBl]=learnbp(P,D1,lr); [dW2,dB2]=1earnbp(A1,D2,1r); W1=W1十dW1;B1=B1十dBl; W2=W2十dW2;B2=B2十dB2 计算权值修正后误差平方和 SSE=sumsqr(T-purelin(W2*tansig(W1*P,B1),B2)) 检查:SSE是否小于err_goal。若是,训练结束;否则继续 以上所有的学习规则与训练的全过程,可以用函数trainbp.m来完成 它的使用只需定义有关参数:显示间隔次数,最大循环次数,目标误差,以及学习速率。调用后返回训练后权值,循环总数和最终误差 TP=[disp_freq max_epoch err_go

文档评论(0)

资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档