BP神经网络maab实例简单而经典.docx

上传人:b****6 文档编号:7069863 上传时间:2023-01-16 格式:DOCX 页数:10 大小:18.06KB
下载 相关 举报
BP神经网络maab实例简单而经典.docx_第1页
第1页 / 共10页
BP神经网络maab实例简单而经典.docx_第2页
第2页 / 共10页
BP神经网络maab实例简单而经典.docx_第3页
第3页 / 共10页
BP神经网络maab实例简单而经典.docx_第4页
第4页 / 共10页
BP神经网络maab实例简单而经典.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

BP神经网络maab实例简单而经典.docx

《BP神经网络maab实例简单而经典.docx》由会员分享,可在线阅读,更多相关《BP神经网络maab实例简单而经典.docx(10页珍藏版)》请在冰豆网上搜索。

BP神经网络maab实例简单而经典.docx

BP神经网络maab实例简单而经典

p=p1';t=t1';

[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);

%原始数据归一化

net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络%训练网络

pn,tn);%调用TRAINGDM算法训练BP网络

pnew=pnew1';

pnewn=tramnmx(pnew,minp,maxp);

anewn=sim(net,pnewn);

%对BP网络进行仿真

anew=postmnmx(anewn,mint,maxt);

%还原数据

y=anew';

1、BP网络构建

(1)生成BP网络

PR:

由R维的输入样本最小最大值构成的

R2维矩阵。

[S1S2...SNl]:

各层的神经元个数

{TF1TF2...TFNl}:

各层的神经元传递函数

BTF:

训练用函数的名称

(2)网络训练

(3)网络仿真

{'tansig','purelin'},'trainrp'

BP网络的训练函数

训练方法

训练函数

梯度下降法

traingd

有动量的梯度下降法

traingdm

自适应lr梯度下降法

traingda

自适应lr动量梯度下降法

traingdx

弹性梯度下降法

trainrp

Fletcher-Reeve共轭梯度法

traincgf

Ploak-Ribiere共轭梯度法

traincgp

Powell-Beale共轭梯度法

traincgb

量化共轭梯度法

trainscg

拟牛顿算法

trainbfg

一步正割算法

trainoss

Levenberg-Marquardt

trainlm

BP网络训练参数

 

训练参数

参数介绍

训练函数

最大训练次数(缺省为

10)

traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

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

traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

学习率(缺省为)

traingd、traingdm、traingda、traingdx、

trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

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

traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

最小梯度要求(缺省为

1e-10

traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

显示训练迭代过程(NaN

表示不显示,缺省为25)

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

trainosstrainlm

最大训练时间(缺省为

inf)

traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainosstrainlm

动量因子(缺省)

traingdm、traingdx

学习率lr增长比(缺省

为)

traingdatraingdx

学习率lr下降比(缺省

为)

traingdatraingdx

表现函数增加最大比(缺

省为)

traingdatraingdx

权值变化增加量(缺省

为)

trainrp

权值变化减小量(缺省

为)

trainrp

初始权值变化(缺省为)

trainrp

权值变化最大值(缺省

为)

trainrp

一维线性搜索方法(缺省

为srchcha

traincgf、traincgp、

traincgb、trainbfg、

trainoss

因为二次求导对权值调

整的影响参数(缺省值)

trainscg

矩阵不确定性调节参数

(缺省为)

trainscg

控制计算机内存/速度的

参量,内存较大设为1,否则设为2(缺省为1)

trainlm

的初始值(缺省为)

trainlm

的减小率(缺省为)

trainlm

的增长率(缺省为10)

trainlm

的最大值(缺省为

trainlm

1e10)

2、BP网络举例

举例1、

%traingd

clear;

clc;

P=[-1-1224;05057];

T=[-1-111-1];

%利用minmax函数求输入样本范围

net=newff(minmax(P),T,[5,1],{'tansig','purelin'},'trainrp');

隐层权值

{1}%隐层阈值

{2,1}%输出层权值

{2}%输出层阈值sim(net,P)

举例2、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个

样本数据:

输入X

输出D

输入X

输出D

输入X

输出D

0

解:

看到期望输出的范围是1,1,所以利用双极性Sigmoid函数作为转移函数

程序如下:

clear;

clc;

X=-1:

:

1;

D=[

];

figure;

plot(X,D,'*');%绘制原始数据分布图(附录:

1-1)

net=newff([-11],[51],{'tansig,''tansig}');

=1000;%训练的最大次数

=;%全局最小误差

net=train(net,X,D);

O=sim(net,X);

figure;

plot(X,D,'*',X,O);%绘制训练后得到的结果和误差曲线(附录:

1-2、1-3)

V={1,1};%输入层到中间层权值

theta1={1};%中间层各神经元阈值

W={2,1};%中间层到输出层权值

theta2={2};%输出层各神经元阈值

所得结果如下:

输入层到中间层的权值:

V

-9.1669

7.3448

7.3761

4.8966

T

3.5409

中间层各神经元的阈值:

6.5885

-2.4019

-0.9962

1.5303

3.2731

中间层到输出层的权值:

W

0.3427

0.2135

0.2981

-0.8840

1.9134

输出层各神经元的阈值:

T

-1.5271

举例3、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个

 

样本数据:

输入X

输出D

输入X

输出D

输入X

输出D

0

0

4

4

8

2

1

1

5

3

9

3

2

2

6

2

10

4

3

3

7

1

解:

看到期望输出的范围超出1,1,所以输出层神经元利用线性函数作为转移函数。

程序如下:

clear;

clc;

X=[012345678910];

D=[01234321234];

figure;

plot(X,D,'*');%绘制原始数据分布图

net=newff([010],[51],{'tansig,''purelin'})

=100;

'*',X,O);%绘制训练后得到的结果和误差曲线(附录:

2-2、2-3)

V={1,1}%输入层到中间层权值

theta1={1}%中间层各神经元阈值

W={2,1}%中间层到输出层权值

theta2={2}%输出层各神经元阈值

所得结果如下:

输入层到中间层的权值:

V0.85842.0890-1.21660.2752-0.39ld

中间层各神经元的阈值:

-14.0302-9.83407.4331-2.01350.56l6

中间层到输出层的权值:

W-0.4675-1.12342.32084.6402-2.2686

BP神经网

输出层各神经元的阈值:

T1.7623

问题:

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

日期

价格

日期

价格

2009/02/02

2009/03/02

2009/02/03

2009/03/03

2009/02/04

2009/03/04

2009/02/05

2009/03/05

2009/02/06

2009/03/06

2009/02/09

2009/03/09

2009/02/10

2009/03/10

2009/02/11

2009/03/11

2009/02/12

2009/03/12

2009/02/13

2009/03/13

2009/02/16

2009/03/16

2009/02/17

2009/03/17

2009/02/18

2009/03/18

2009/02/19

2009/03/19

2009/02/20

2009/03/20

2009/02/23

2009/03/23

2009/02/24

2009/03/24

2009/02/25

2009/03/25

2009/02/26

2009/03/26

2009/02/27

2009/03/27

load;

[m,n]=size(data3_1);

tsx=data3_1(1:

m-1,1);

tsx=tsx';

ts=data3_1(2:

m,1);

ts=ts';

[TSX,TSXps]=mapminmax(tsx,1,2);

[TS,TSps]=mapminmax(ts,1,2);

TSX=TSX';

figure;

plot(ts,'LineWidth',2);

title('到杭旅游总人数’,'FontSize;12);

xlabel(统计年份','FontSize:

12);

ylabel(归一化后的总游客数/万人':

'FontSize:

12);

gridon;

%生成BP网络、利用minmax函数求输入样本范围

net_1=newff(minmax(TS):

[10:

1]:

{'tansig:

''purelin'}:

'traincgf')

%设置训练参数

=50;%显示训练迭代过程(NaN表示不显示,缺省25)

=;%学习率(缺省)

=;%动量因子(缺省)

=10000;%最大训练次数

=;%训练要求精度

inputWeights={1,1}%输入层权值inputbias={1}%输入层阈值

layerWeights={2,1}%输出层权值layerbias={2}%输出层阈值

TS',TSX

%网络训练

[net_1,tr]=train(net_1,TS,TSX);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1