什么是BP神经网络
BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
BP网络构建
BP网络的训练函数
BP网络训练参数
1.训练参数 2.参数介绍 3.训练函数
net.trainParam.epochs 最大训练次数(缺省为10) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.goal 训练要求精度(缺省为0) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.lr 学习率(缺省为0.01) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.max_fail 最大失败次数(缺省为5) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.min_grad 最小梯度要求(缺省为1e-10) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.show 显示训练迭代过程(NaN表示不显示,缺省为25) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
net.trainParam.time 最大训练时间(缺省为inf) traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm
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.lambda Hessian矩阵不确定性调节参数(缺省为5.0e-7) trainscg
net.trainParam.men_reduc 控制计算机内存/速度的参量,内存较大设为1,否则设为2(缺省为1) trainlm
net.trainParam.mu 的初始值(缺省为0.001)
trainlm
net.trainParam.mu_dec 的减小率(缺省为0.1)
trainlm
net.trainParam.mu_inc 的增长率(缺省为10)
trainlm
net.trainParam.mu_max 的最大值(缺省为1e10)
trainlm
[Matlab]例1
输入:P=[-1 -1 2 2 4;0 5 0 5 7];
输出:T=[-1 -1 1 1 -1];
代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
matlab工具箱结果解释
[Matlab]例2
利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。
样本数据:
代码
看到期望输出的范围是[-1, 1] ,所以利用双极性Sigmoid函数作为转移函数。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
输出图像