matlab建立BP神经网络中train函数的参数及学习算法参数

1.神经网络主要训练参数

net.trainParam.goal=0.1                 % 训练目标最小误差,这里设置为0.1

net.trainParam.epochs=300;             % 训练次数,这里设置为300

net.trainParam.show=20;               % 显示频率,这里设置为没训练20次显示一次

net.trainParam.mc=0.95;               % 附加动量因子

net.trainParam.lr=0.05;                % 学习速率,这里设置为0.05

net.trainParam.min_grad=1e-6;         %最小性能梯度

net.trainParam.min_fail=5;             % 最大确认失败次数


2.newff函数中训练函数

扫描二维码关注公众号,回复: 1815103 查看本文章

1) traingd:基本梯度下降法,收敛速度比较慢。

(2) traingdm:带有动量项的梯度下降法, 通常要比traingd 速度快。

(3) traingdx: 带有动量项的自适应学习算法, 速度要比traingdm 快。

(4) trainrp: 弹性BP 算法, 具有收敛速度快和占用内存小的优点。

(5) traincgf: Fletcher-Reeves 共轭梯度法,为共轭梯度法中存储量要求最小的算法。

(6) traincgp: Polak-Ribiers共轭梯度算法, 存储量比traincgf稍大,但对某些问题收敛更快。

(7) traincgb: Powell-Beale共轭梯度算法,存储量比traincgp稍大,但一般收敛更快,以上三种共轭梯度法,都需要进行线性搜索。

(8) trainscg: 归一化共轭梯度法,是唯一一种不需要线性搜索的共轭梯度法。

(9) trainbfg: BFGS- 拟牛顿法, 其需要的存储空间比共轭梯度法要大,每次迭代的时间也要多,但通常在其收敛时所需的迭代次数要比共轭梯度法少,比较适合小型网络。

(10) traino ss: 一步分割法,为共轭梯度法和拟牛顿法的一种折衷方法。

(11) trainlm: Levenberg-Marquardt算法,对中等规模的网络来说, 是速度最快的一种训练算法, 其缺点是占用内存较大。对于大型网络, 可以通过置参数mem-reduc 为1, 2, 3,⋯,将Jacobian 矩阵分为几个子矩阵。但这样也有弊端, 系统开销将与计算Jacobian的各子矩阵有很大关系。

(12) trainbr: 贝叶斯规则法,对Levenberg-Marquardt算法进行修改, 以使网络的泛化能力更好。同时降低了确定最优网络结构的难度。

猜你喜欢

转载自blog.csdn.net/kebu12345678/article/details/80867563