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

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


目录

一、没关掉test占比

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

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


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

一、没关掉test占比

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


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


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

net.divideParam.trainRatio=0.85 ; % 默认0.7
net.divideParam.valRatio=0.15; % 默认0.15
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的完整建模流程》

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老饼讲解-BP神经网络

请老饼喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值