当前位置:   article > 正文

matlab神经网络工具箱BP易踩的坑汇总(持续更新)_matlab神经网络工具箱的优缺点

matlab神经网络工具箱的优缺点

转载请说明原文来自  老饼玩转-BP神经网络icon-default.png?t=N7T8https://www.bbbdata.com/nn


目录

一、没关掉test占比

二、使用traingd,traingda等训练方法

三、提取权重阈值WB没有归一化


本文总结和积累,matlab神经网络工具箱BP易踩的坑。

一、没关掉test占比

很多人参照老教材,采用老式建模流程,自己抽出测试数据,只把训练数据投入网络,却没把网络的数据分割test占比关掉。而事实上这是个很大的坑,这样相当于浪费了15%的数据。


matlab神经网络工具箱将投入的数据自动分割为三份:70%训练数据,15%泛化验证数据,15%测试数据。测试数据全程什么都没做,工具箱特地留给用户的。


如果自己独自抽出测试数据,记得要把数据分割test占比分配到训练中,如下:

  1. net.divideParam.trainRatio=0.85 ; % 默认0.7
  2. net.divideParam.valRatio=0.15; % 默认0.15
  3. net.divideParam.testRatio=0; % 默认0.15

二、使用traingd,traingda等训练方法

matlab工具箱提供了非常多的训练方法,刚开始时,总喜欢在不同的方法上试,


实际上matlab推荐的只有2或3种,
一是小数据,内存足,绝对推荐trainlm.效果几乎是无法质疑了。
二是大数据,trainlm跑不动推荐trainscg或trainrp。


这几乎成了定式,在其它方法上试,也有可能有更好的效果,但跑出比trainlm,trainscg,trainrp效果更好的,那真的好难,如果时间不多的同学,建议就如上所用就好。

三、提取权重阈值WB没有归一化

net.iw,net.lw,net.b(net是训练好的网络)中记录了输入层权重,网络层权重,和阈值,这是毫无疑问的。
代入公式后,却发现和网络sim得到的结果不一致,一直摸索了很久。
最后发现原因是,自matlab2012b之后,网络默认会自动归一化(也可自行关掉),这样提出来的w,b,是自动归一化后的数据训练的网络对应的权重阈值,使用前需要自行将数据归一化,并将结果反归一化,才能与sim对得上。



相关文章

​《BP神经网络梯度推导》

​​​​​​《BP神经网络提取的数学表达式》

《一个BP的完整建模流程》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/105624
推荐阅读
相关标签
  

闽ICP备14008679号