Matlab神经网络训练函数对比

使用matlab训练神经网络模型用于估计电池健康状态(回归问题,训练集数量167,4输入1输出),各训练函数效果对比

使用雅可比导数的反向传播训练函数

这些算法可能比梯度反向传播更快,但需要更多的内存。GPU硬件也不支持它们。


trainlm Levenberg-Marquardt反向传播。

trainbr 贝叶斯调节反向传播。

使用梯度导数的反向传播训练函数

这些算法可能没有雅可比反向传播那么快。它们在带有并行计算工具箱的GPU硬件上得到支持。


trainbfg-BFGS准牛顿反向传播。

traincgb-Powell Beale重新启动共轭梯度反向传播。

traincgf-使用Fletcher Reeves更新的共轭梯度反向传播。

traincgp-使用Polak Ribiere更新的共轭梯度反向传播。

traingd-梯度下降反向传播。

traingda-具有自适应lr反向传播的梯度下降。

traingdm-有动量的梯度下降。

traingdx-梯度下降w/动量和自适应lr反向传播。

trainoss-一步割线反向传播。

trainrp-RPROP反向传播。

trainscg-标度共轭梯度反向传播。

监督权重/偏差训练功能

trainb-使用权重和偏差学习规则进行批量训练。

trainc-循环顺序权重/偏差训练。

trainr-随机顺序权重/偏差训练。

trains-顺序顺序权重/偏差训练。

无监督的重量/偏差训练功能

trainbu-使用权重和偏差学习规则的无监督批量训练。

trainru-无监督随机顺序权重/偏差训练。

Elman下训练效果

trainlm:迭代次数少,能够达到MSE最优,但过拟合,测试集偏差较大

traingdx:速度快,不能达到MSE最优,但不会出现过拟合,偏差比较均衡

trainbfg:迭代次数多,速度慢,不能达到MSE最优,测试集部分点偏差较大

traincgb:速度快,不能达到MSE最优,但不会出现过拟合,精度比traingdx高

traincgf:速度快,不能达到MSE最优,测试集部分点偏差较大

traincgp:速度快,不能达到MSE最优,测试集部分点偏差较大

traingd:偏差较大

traingda:速度快,精度比traingdx稍差

traingdm:偏差较大

trainoss:速度快,不能达到MSE最优,但不会出现过拟合,精度比traingdx高,类似traincgb

trainrp:速度快,不能达到MSE最优,测试集偏差较大,总体精度比traingdx高

trainscg:速度快,不能达到MSE最优,测试集偏差较大,总体精度比traingdx略高

trainb:下降较慢,偏差较大

trainc:下降较慢,偏差与traingdx类似

trainr:下降较慢,偏差与traingdx类似

trains:偏差较大

总结

考虑使用traincgb函数训练,使用正则化方法(early stopping、交叉验证和集成学习等方法)优化测试集效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容