神经网络-专题教程

【详解】matlab工具箱-BP的训练参数详解

作者 : 老饼 发表日期 : 2022-06-09 05:17:53 更新日期 : 2024-11-12 16:16:04
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com




   背景说明   


matlab2018a一个最简BP神经网络DEMO代码如下:
%用于训练的数据
X = linspace(-3,3,100);   
y = 10*sin(X);   

%网络训练 
net = newff(X,y,3,{'tansig','purelin'},'trainlm');
net.trainParam.goal = 0.00001;    % 设置训练误差目标
net.trainParam.epochs = 15000;    % 设置最大训练次数.
[net,tr,net_y] = train(net,X,y);  % 训练
sim_y = sim(net,X);               % 预测
在用newff构建BP神经网络后,可以对net设置一些相关的训练参数
训练参数为可选项,可设可不设,属于个性化配置
 本文介绍以下两组参数的详细说明
 1. trainparam     :   训练算法的相关参数         
 2. divideParam   :  数据分割方式的相关参数     







    01. BP神经网络参数详解   





本节讲解matlab中BP神经网络trainparam与divideParam参数的设置





    BP神经网络的trainParam与divideParam参数详解     


trainParam参数详解
trainParam里存放的是面向训练算法的一系列参数
 trainParam的所有可设参数如下:
参数名称解释适用方法
net.trainParam.epochs最大训练次数(缺省为10)全部
net.trainParam.goal训练要求精度(缺省为0)全部
net.trainParam.lr学习率(缺省为0.01)全部
net.trainParam.max_fail最大失败次数(缺省为5)全部
net.trainParam.min_grad最小梯度要求(缺省为1e-10)全部
net.trainParam.show显示训练迭代过程(NaN表示不显示,缺省为25)全部
net.trainParam.time最大训练时间(缺省为inf)全部
net.trainParam.mc动量因子(缺省0.9)traingdm、traingdx
net.trainParam.lr_inc学习率lr增长比(缺省为1.05)traingda、traingdx
net.trainParam.lr_dec学习率lr下降比(缺省为0.7)traingda、traingdx
net.trainParam.max_perf_inc表现函数增加最大比(缺省为1.04)traingda、traingdx
net.trainParam.delt_inc权值变化增加量(缺省为1.2)trainrp
net.trainParam.delt_dec权值变化减小量(缺省为0.5)trainrp
net.trainParam.delt0初始权值变化(缺省为0.07)trainrp
net.trainParam.deltamax权值变化最大值(缺省为50.0)trainrp
net.trainParam.searchFcn一维线性搜索方法(缺省为srchcha)traincgf、traincgp、traincgb、trainbfg、trainoss
net.trainParam.sigma因为二次求导对权值调整的影响参数(缺省值5.0e-5)trainscg
net.trainParam.lambdaHessian矩阵不确定性调节参数(缺省为5.0e-7)trainscg
net.trainParam.men_reduc控制计算机内存/速度的参量,
内存较大设为1,否则设为2(缺省为1)
trainlm
net.trainParam.muu的初始值(缺省为0.001)trainlm
net.trainParam.mu_decu的减小率(缺省为0.1)trainlm
net.trainParam.mu_incu的增长率(缺省为10)trainlm
net.trainParam.mu_maxu的最大值(缺省为1e10)trainlm
PASS:trainParam参数是相对训练算法而言的,因此有些参数只针对部分训练算法哦
divideParam参数介绍
divideParam里存放的是数据分割的相关参数,只有三个,具体如下:
 
 trainRatio、valRatio和testRatio三者之和应该为1,如果不为1,matlab会自动按占比归一
 例如trainRatio、valRatio和testRatio都设为2,则实际会归一为[0.333,0.333,0.333]






    BP神经网络-常用训练参数    


下面是BP神经网络中的常用训练参数
net.trainparam.goal       = 0.00001;     % 训练目标:均方误差低于0.0001
net.trainparam.show       = 400;         % 每训练400次展示一次结果
net.trainparam.epochs     = 15000;       % 最大训练次数:15000.
net.divideParam.trainRatio= 0.7;         % 用于训练的数据比例
net.divideParam.valRatio  = 0.15 ;       % 用于验证过拟合的数据比例
net.divideParam.testRatio = 0.15;        % 用于比例
net.trainparam.max_fail   = 6;           % 过拟合验证失败次数







好了,以上就是matlab工具箱中BP神经网络的相关训练参数的讲解了~








 End 





联系老饼