当前位置:首页 >> 其它课程 >>

BP神经网络matlab例题集合


学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。

只需模仿即可。就能轻松掌握。 1、BP 网络构建 (1)生成 BP 网络
net ? n e w ff ( P R , [ S 1 S 2 ... S N l ], {T F 1 T F 2 ...T F N l } , B T F , B L F , P F )

P R :由 R 维的输入样本最小最大值构成的 R ? 2 维矩阵。
[ S 1 S 2 ... S N l ] :各层的神经元个数。 {T F 1 T F 2 ...T F N l } :各层的神经元传递函数。

B T F :训练用函数的名称。

(2)网络训练
[ n e t , tr , Y , E , P f , A f ] ? tr a in ( n e t , P , T , P i , A i , V V , T V )

(3)网络仿真
[ Y , P f , A f , E , p e r f ] ? s im ( n e t , P , P i , A i , T )

BP 网络的训练函数 训练方法 梯度下降法 有动量的梯度下降法 自适应 lr 梯度下降法 自适应 lr 动量梯度下降法 弹性梯度下降法 Fletcher-Reeves 共轭梯度法 Ploak-Ribiere 共轭梯度法 Powell-Beale 共轭梯度法 量化共轭梯度法 拟牛顿算法 一步正割算法 Levenberg-Marquardt BP 网络训练参数 训练函数 traingd traingdm traingda traingdx trainrp traincgf traincgp traincgb trainscg trainbfg trainoss trainlm 参数介绍 最大训练次数(缺省为 10) 训练函数 traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm

训练参数
net.trainParam.epochs

net.trainParam.goal

训练要求精度(缺省为 0)

net.trainParam.lr

学习率(缺省为 0.01)

学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。

net.trainParam.max_fail

最大失败次数(缺省为 5)

traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm

net.trainParam.min_grad

最小梯度要求(缺省为 1e-10)

net.trainParam.show

显示训练迭代过程(NaN 表 示不显示,缺省为 25)

net.trainParam.time

最大训练时间(缺省为 inf) traingd、 traingdm、 traingda、 traingdx、trainrp、traincgf、 traincgp、 traincgb、 trainscg、 trainbfg、trainoss、trainlm 动量因子(缺省 0.9) 学习率 lr 增长比(缺省为 1.05) 表现函数增加最大比(缺省 为 1.04) 权值变化增加量(缺省为 1.2) 权值变化减小量(缺省为 0.5) 权值变化最大值(缺省为 50.0) 一维线性搜索方法(缺省为 srchcha) 因为二次求导对权值调整的 影响参数(缺省值 5.0e-5) Hessian 矩阵不确定性调节 参数(缺省为 5.0e-7) traingdm、traingdx traingda、traingdx

net.trainParam.mc net.trainParam.lr_inc net.trainParam.lr_dec net.trainParam.max_perf_inc net.trainParam.delt_inc net.trainParam.delt_dec net.trainParam.delt0 net.trainParam.deltamax net.trainParam.searchFcn net.trainParam.sigma net.trainParam.lambda net.trainParam.men_reduc

学习率 lr 下降比 (缺省为 0.7) traingda、traingdx traingda、traingdx trainrp trainrp

初始权值变化 (缺省为 0.07) trainrp trainrp traincgf、 traincgp、 traincgb、 trainbfg、trainoss trainscg trainscg

net.trainParam.mu net.trainParam.mu_dec net.trainParam.mu_inc net.trainParam.mu_max

控制计算机内存/速度的参 trainlm 量, 内存较大设为 1, 否则设 为 2(缺省为 1) ? 的初始值(缺省为 0.001) trainlm ? 的减小率(缺省为 0.1) trainlm
? 的增长率(缺省为 10)
? 的最大值(缺省为 1e10)

trainlm trainlm

2、BP 网络举例 举例 1、

学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。

%traingd clear; clc; P=[-1 -1 2 2 4;0 5 0 5 7]; T=[-1 -1 1 1 -1]; %利用 minmax 函数求输入样本范围 net = newff(minmax(P),[5,1],{'tansig','purelin'},'trainrp'); net.trainParam.show=50;% net.trainParam.lr=0.05; net.trainParam.epochs=300; net.trainParam.goal=1e-5; [net,tr]=train(net,P,T); net.iw{1,1}%隐层权值 net.b{1}%隐层阈值 net.lw{2,1}%输出层权值 net.b{2}%输出层阈值 sim(net,P)

举例 2、 利用三层 BP 神经网络来完成非线性函数的逼近任务, 其中隐层神经元个数为五个。 样本数据: 输入 X -1.0000 -0.9000 -0.8000 -0.7000 -0.6000 -0.5000 -0.4000 解: 看到期望输出的范围是 ? ? 1,1 ? ,所以利用双极性 Sigmoid 函数作为转移函数。 程序如下:
clear; clc; X=-1:0.1:1; D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609... 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988... 0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201]; figure; plot(X,D,'*'); %绘制原始数据分布图(附录:1-1)

输出 D -0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609

输入 X -0.3000 -0.2000 -0.1000 0 0.1000 0.2000 0.3000

输出 D 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -0.0988

输入 X 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

输出 D 0.3072 0.3960 0.3449 0.1816 -0.3120 -0.2189 -0.3201

学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。

net = newff([-1 1],[5 1],{'tansig','tansig'},’triangd’); net.trainParam.epochs = 100; %训练的最大次数 net.trainParam.goal = 0.005; %全局最小误差 net = train(net,X,D); O = sim(net,X); figure; plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线(附录:1-2、1-3) V = net.iw{1,1}%输入层到中间层权值 theta1 = net.b{1}%中间层各神经元阈值 W = net.lw{2,1}%中间层到输出层权值 theta2 = net.b{2}%输出层各神经元阈值

所得结果如下:
输入层到中间层的权值: V ? ? -9 .1 6 6 9 7 .3 4 4 8 7 .3 7 6 1 4 .8 9 6 6 3 .5 4 0 9 ?
T

中间层各神经元的阈值: ? ? ? 6 .5 8 8 5 -2 .4 0 1 9 -0 .9 9 6 2 1 .5 3 0 3 3 . 2 7 3 1 ? 中间层到输出层的权值: W ? ? 0 .3 4 2 7 0 .2 1 3 5 0 .2 9 8 1 -0 .8 8 4 0 1 .9 1 3 4 ? 输出层各神经元的阈值: T ? -1 .5 2 7 1

T

举例 3、 利用三层 BP 神经网络来完成非线性函数的逼近任务, 其中隐层神经元个数为五个。 样本数据: 输入 X 0 1 2 3 解: 看到期望输出的范围超出 ? ? 1,1 ? ,所以输出层神经元利用线性函数作为转移函数。 程序如下:
clear; clc; X = [0 1 2 3 4 5 6 7 8 9 10]; D = [0 1 2 3 4 3 2 1 2 3 4]; figure; plot(X,D,'*'); %绘制原始数据分布图 net = newff([0 10],[5 1],{'tansig','purelin'}) net.trainParam.epochs = 100; net.trainParam.goal=0.005; net=train(net,X,D); O=sim(net,X); figure; plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线(附录:2-2、2-3)

输出 D 0 1 2 3

输入 X 4 5 6 7

输出 D 4 3 2 1

输入 X 8 9 10

输出 D 2 3 4

学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。

V = net.iw{1,1}%输入层到中间层权值 theta1 = net.b{1}%中间层各神经元阈值 W = net.lw{2,1}%中间层到输出层权值 theta2 = net.b{2}%输出层各神经元阈值

所得结果如下: 输入层到中间层的权值: V ? ? 0 .8 5 8 4 2 .0 8 9 0 -1 .2 1 6 6 0 .2 7 5 2 -0 . 3 9 1 0 ?
T

中间层各神经元的阈值: ? ? ? -1 4 .0 3 0 2 -9 .8 3 4 0 7 .4 3 3 1 -2 .0 1 3 5 0 .5 6 1 0 ? 中间层到输出层的权值: W ? ? -0 .4 6 7 5 -1 .1 2 3 4 2 .3 2 0 8 4 .6 4 0 2 -2 .2 6 8 6 ? 输出层各神经元的阈值: T ? 1 .7 6 2 3

T

问题:以下是上证指数 2009 年 2 月 2 日到 3 月 27 日的收盘价格,构建一个三层 BP 神经网
络,利用该组信号的 6 个过去值预测信号的将来值。

日期 2009/02/02 2009/02/03 2009/02/04 2009/02/05 2009/02/06 2009/02/09 2009/02/10 2009/02/11 2009/02/12 2009/02/13 2009/02/16 2009/02/17 2009/02/18 2009/02/19 2009/02/20 2009/02/23 2009/02/24 2009/02/25 2009/02/26 2009/02/27

价格 2011.682 2060.812 2107.751 2098.021 2181.241 2224.711 2265.161 2260.822 2248.092 2320.792 2389.392 2319.442 2209.862 2227.132 2261.482 2305.782 2200.652 2206.572 2121.252 2082.852

日期 2009/03/02 2009/03/03 2009/03/04 2009/03/05 2009/03/06 2009/03/09 2009/03/10 2009/03/11 2009/03/12 2009/03/13 2009/03/16 2009/03/17 2009/03/18 2009/03/19 2009/03/20 2009/03/23 2009/03/24 2009/03/25 2009/03/26 2009/03/27

价格 2093.452 2071.432 2198.112 2221.082 2193.012 2118.752 2158.572 2139.021 2133.881 2128.851 2153.291 2218.331 2223.731 2265.761 2281.091 2325.481 2338.421 2291.551 2361.701 2374.44


相关文章:
BP神经网络matlab例题集合
BP神经网络matlab例题集合 隐藏>> 学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。 只需模仿即可。就能轻松掌握。 1...
BP神经网络matlab实例(简单而经典)_图文
BP神经网络matlab实例(简单而经典)_工学_高等教育_教育专区。学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。 1、BP...
BP神经网络matlab实例(简单而经典)
BP神经网络matlab实例(简单而经典)_IT/计算机_专业资料。学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任务。 p=p1';t...
BP神经网络matlab实例(简单而经典)
BP神经网络matlab实例(简单而经典)_计算机软件及应用_IT/计算机_专业资料。学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的...
BP神经网络MATLAB编程实例
BP神经网络MATLAB编程实例_自然科学_专业资料。BP神经网络MATLAB编程实例BP 神经网络 MATLAB 编程。 悬赏分:50 - 解决时间:2010-10-26 00:15 异或问题。我不会用...
BP神经网络matlab实例(简单而经典)
BP神经网络matlab实例(简单而经典)_计算机软件及应用_IT/计算机_专业资料。学习神经网络的好助手,可以仿照其中的代码,只需修改个别参数便可以轻易实现自己需要完成的任...
BP神经网络的设计实例(MATLAB编程)
BP 神经网络的设计实例(MATLAB 编程) 转 2010 年 04 月 06 日星期二下午 01:22 BP 神 经网络的设计实例(MATLAB 编程) 例 1 采用动量梯度下降算法训练 BP ...
BP神经网络matlab实例(简单而经典)
BP神经网络代码 2页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 BP神经网络matlab实例(简单而经典) BP 神经网络...
bp神经网络的几个Matlab的模拟图
3页 免费 基于MATLAB的BP神经网络... 暂无评价 3页 免费 BP神经网络Matlab实例 6页 1下载券 BP神经网络预测的MATLAB... 4页 3下载券喜欢此文档的还喜欢 ...
BP神经网络的Matlab语法介绍
(4) Matlab 数据归一化处理函数 Matlab 中归一化处理数据可以采用 premnmx , ...BP神经网络Matlab实例 6页 1下载券 BP神经网络预测的MATLAB... 2页 1下载券...
更多相关标签: