人工神经网络及其应用第4讲bp神经网络内容摘要:

一般情况下 k= , 2020/11/23 24 网络训练  变量表达:计算网络各层输出矢量 A1和 A2以及网络误差 E – A1= tansig(W1*P, B1); – A2= purelin(W2*A1, B2); – E= TA;  权值修正:计算各层反传的误差变化 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 2020/11/23 25 网络训练  计算权值修正后误差平方和 – SSE= sumsqr(Tpurelin(W2*tansig(W1*P, B1), B2))  检查: SSE是否小于 err_goal。 若是,训练结束;否则继续  以上所有的学习规则与训练的全过程,可以用函数 – 它的使用只需定义有关参数:显示间隔次数,最大循环次数,目标误差,以及学习速率。 调用后返回训练后权值,循环总数和最终误差 – TP= [disp_freq max_epoch err_goal 1r] – [W, B, epochs, errors]= trainbp(W, B,’ F’, P,T, TP) 2020/11/23 26 三、网络设计 网络的层数 隐含层神经元数 初始权值的选取 学习速率 期望误差的选取 应用举例 局限性 2020/11/23 27 网络的层数  理论上已经证明:具有偏差和至少一个 S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数 – 定理:  增加层数主要可以进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。  一般情况下应优先考虑增加隐含层中神经元数  仅用具有非线性激活函数的单层网络来解决问题没有必要或效果不好 – 线性问题 – 非线性问题 2020/11/23 28 隐含层神经元数  网络训练精度的提高,可以通过采用一个隐含层,而增加其神经元数的方法来获得。 这在结构实现上,要比增加更多的隐含层简单得多  定理: – 实现任意 N个输入向量构成的任何布尔函数的前向网络所需权系数数目为  在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量 2020/11/23 29 初始权值的选取  一般取初始权值在 (1, 1)之间的随机数  威得罗等人在分析了两层网络是如何对一个函数进行训练后,提出一种选定初始权值的策略 – 选择权值的量级为  在 MATLAB工具箱中可采用函数 W1和 B1。  其方法仅使用在第一隐含层的初始值的选取上,后面层的初始值仍然采用随机取数 2020/11/23 30 学习速率  学习速率决定每一次循环训练中所产生的权值变化量  大的学习速率可能导致系统的不稳定  小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值  所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。 学习速率的选取范围在 2020/11/23 31 期望误差值选取  在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。