使用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、交叉验证和集成学习等方法)优化测试集效果