BP神经网络的训练函数有许多,如:traingd traindm trainrp trainlm trainbr等…不知这些函数都有什么特点

BP神经网络的训练函数有许多,如:traingd traindm trainrp trainlm trainbr等…不知这些函数都有什么特点1.traingd:批梯度下降训练函数,沿网络性能参数的负梯度方向调整网络的权值和阈值.2.traingdm:动量批梯度下降函数,也是一种批处理的前馈神经网络训练方法,不但具有更快的收敛速度

1. traingd:批梯度下降训练函数,沿网络性能参数的负梯度方向调整网络的权值和阈值.
2. traingdm:动量批梯度下降函数,也是一种批处理的前馈神经网络训练方法,不但具有更快的收敛速度,而且引入了一个
动量项,有效避免了局部最小问题在网络训练中出现.
3. trainrp:有弹回的BP算法,用于消除梯度模值对网络训练带来的影响,提高训练的速度.(主要通过delt_inc和delt_dec来
实现权值的改变)
4. trainlm:Levenberg-Marquardt算法,对于中等规模的BP神经网络有最快的收敛速度,是系统默认的算法.由于其避免了
直接计算赫赛矩阵,从而减少了训练中的计算量,但需要较大内存量.
5. traincgb:Plwell-Beale算法:通过判断前后梯度的正交性来决定权值和阈值的调整方向是否回到负梯度方向上来.
6. trainscg:比例共轭梯度算法:将模值信赖域算法与共轭梯度算法结合起来,减少用于调整方向时搜索网络的时间.
一般来说,traingd和traingdm是普通训练函数,而traingda,traingdx,traingd,trainrp,traincgf,traincgb,trainscg,trainbgf等等都
是快速训练函数.总体感觉就是训练时间的差别比较大,还带有精度的差异.

问:请教:Matlab 7.8 BP网络训练时validation checks 6 退出训练问题
Matlab 7.8 新建网络命令为
net = newff(P,T,[S1 S2…S(N-l)],{TF1 TF2…TFNl}, BTF,BLF,PF,IPF,OPF,DDF)
[tr][td]P:[/td][td] R x Q1 matrix of Q1 sample R-element input vectors
[/td][/tr][tr][td]T:[/td][td] SN x Q2 matrix of Q2 sample SN-element target vectors
最近做一个网络训练时,使用老版本命令:
net=newff( minmax(Input), [NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},’traingdx’);%创建四层BP
网络不会出现Validation Stop情况;
但是使用新命令:net=newff(Input,Target,[NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},’traingdx’)后
每次训练10次左右就因为Validation Stop情况退出训练。
我的网络是3输入,1输出,2隐含层,Input 是3*60矩阵,Target是1*50矩阵。

答:1)有三种方法解决这个问题;
              1  提高validation checks的数值,比如设置net.trainParam.max_fail = 200;其实这等于自己糊弄自己严重不推荐,出现
停止训练,就是因为被训练的网络已经过拟合,停下来是应该的。但六的确有点小,建议改成10到20之间的数,此
参数可以修改,比如   net.trainParam.max_fail = 20;
             2 修改被训练的网络,比如说再加一个隐藏层试试
             3  如果是数据太相近的问题,试试选择用divideind
2)   就目前經驗來說增加trainParam.max_fail通常並不會繼續改善網路的結果,
因為已經經過了6個epochs的運算都沒有對validation data set的驗證結果產生改善
我嘗試改成10 12 20其結果都是一樣…
3)  加入如下参数,取消validation check功能    net.divideFcn = ”
但是这个方法对于网络的训练精度提高和输出的逼近程度没有显著改善

问:求助:有人懂validation check吗
我在训练BP网络时,nntraintool 的界面上提示说validation stop.而且它的validation check自动显示的是6,而训练目标没有达到,训练就结束了。求助各位大侠。
答:validation check
翻译过来:确认检查
内涵:神经网络的样本若输入网络,默认情况下会将样本随即分为3类:训练样本,确认样本和测试样本。具体说明比较多,参考http://www.ilovematlab.cn/viewth … 09&page=1#pid588855
确认检查值默认是6,它的意思是指随着网络利用训练样本进行训练的过程中,确认样本的误差曲线连续6次迭代不在下降。这时训练终止(这只是训练终止条件之一,满足任一终止条件,训练过程都将终止)
深层含义你可以这样理解,如果随着网络的训练,确认样本的误差已经基本不在减小,甚至增大,那么就没有必要再去训练网络了,因为继续训练下去的话,在利用测试样本进行测试网络的话,测试样本的误差将同样不会有所改善,甚至会出现过度拟合的现象

今天的文章BP神经网络的训练函数有许多,如:traingd traindm trainrp trainlm trainbr等…不知这些函数都有什么特点分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/65391.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注