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

    xiaoxiao2021-03-25  109

    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函数中训练函数

     

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

     (2) traingda:自适应学习率的梯度下降法

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

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

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

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

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

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

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

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

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

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

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

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-5152.html

    最新回复(0)