BP神经网络实验Word文档格式.docx
《BP神经网络实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《BP神经网络实验Word文档格式.docx(4页珍藏版)》请在冰豆网上搜索。
0.1000
-0.3930
0.8000
-0.3120
0.6600
0.2000
-0.1647
0.9000
-0.2189
-0.4000
0.4609
0.3000
-0.0988
1.0000
-0.3201
例一、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。
样本数据:
解:
看到期望输出的范围是(-1,1),所以利用双极性Sigmoid函数作为转移函数。
程序如下:
clear;
clc;
X=-1:
0.1:
1;
D=[-0.9602-0.5770-0.07290.37710.64050.66000.4609...
0.1336-0.2013-0.4344-0.5000-0.3930-0.1647-.0988...
0.30720.39600.34490.1816-0.312-0.2189-0.3201];
figure;
plot(X,D,'
*'
);
%绘制原始数据分布图(附录:
1-1)net=newff([-11],[51],{'
tansig'
'
});
net.trainParam.epochs=100;
%训练的最大次数net.trainParam.goal=0.005;
%全局最小误差
net=train(net,X,D);
O=sim(net,X);
figure;
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.16697.34487.37614.89663.5409)T
q=(6.5885-2.4019-0.99621.53033.2731)T
W=(0.34270.21350.2981-0.88401.9134)
输出层各神经元的阈值:
T=-1.5271
例二、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。
4
8
2
1
5
3
9
6
10
7
看到期望输出的范围超出(-1,1),所以输出层神经元利用线性函数作为转移函数。
X=[012345678910];
D=[01234321234];
2-1)net=newff([010],[51],{'
purelin'
})net.trainParam.epochs=100;
net.trainParam.goal=0.005;
net=train(net,X,D);
O=sim(net,X);
2-2、2-3)
V=(0.85842.0890-1.21660.2752-0.3910)T
-9.8340
7.4331
-2.0135
0.5610)T
-1.1234
2.3208
4.6402
-2.2686)
q=(-14.0302
中间层到输出层的权值:
W=(-0.4675
T=1.7623
例三、以下是上证指数2009年2月2日到3月27日的收盘价格,构建一个三层BP神经网络,利用该组信号的6个过去值预测信号的将来值。
日期
价格
2009/02/02
2011.682
2009/03/02
2093.452
2009/02/03
2060.812
2009/03/03
2071.432
2009/02/04
2107.751
2009/03/04
2198.112
2009/02/05
2098.021
2009/03/05
2221.082
2009/02/06
2181.241
2009/03/06
2193.012
2009/02/09
2224.711
2009/03/09
2118.752
2009/02/10
2265.161
2009/03/10
2158.572
2009/02/11
2260.822
2009/03/11
2139.021
2009/02/12
2248.092
2009/03/12
2133.881
2009/02/13
2320.792
2009/03/13
2128.851
2009/02/16
2389.392
2009/03/16
2153.291
2009/02/17
2319.442
2009/03/17
2218.331
2009/02/18
2209.862
2009/03/18
2223.731
2009/02/19
2227.132
2009/03/19
2265.761
2009/02/20
2261.482
2009/03/20
2281.091
2009/02/23
2305.782
2009/03/23
2325.481
2009/02/24
2200.652
2009/03/24
2338.421
2009/02/25
2206.572
2009/03/25
2291.551
2009/02/26
2121.252
2009/03/26
2361.701
2009/02/27
2082.852
2009/03/27
2374.44
clear;
D1=[2011.6822060.8122107.7512098.0212181.2412224.711...
2319.442...
2206.572...
2221.082...
2128.851...
2325.481...
2374.44];
D=premnmx(D1)%数据归一化把数据化到[-1,1]范围内Q=length(D);
count=1:
1:
Q;
X=zeros(6,0);
X(1,2:
Q)=D(1,1:
(Q-1));
X(2,3:
(Q-2));
X(3,4:
(Q-3));
X(4,5:
(Q-4));
X(5,6:
(Q-5));
X(6,7:
(Q-6));
plot(count,D,count,D,'
3-1)net=newff(minmax(X),[71],{'
plot(count,D,'
count,O,'
r'
3-
2、3-3)
é
-2.4916 -3.00980.43811.15980.6343 -0.3355ù
-0.0899
0.6849
1.2969
0.2782
0.9312
-0.2707
-1.7226
0.9445
1.7617
-0.2167
2.1146
0.9514
-0.8388
0.2214
0.1251
-0.1086
-0.7422
-0.1918
-0.4311
1.5800
0.6519
1.9748
0.2787
-0.7819
0.7238
0.0084
-0.7738
-2.1268
-1.0499
-2.1740
ê
1.2349ú
ú
V=ê
1.2791ú
-0.6276ú
0.4532ú
ë
-0.0884ú
-1.6249ú
û
q=(2.67171.9258-0.0286-1.2134-1.06570.89081.6032)T
W=(2.6628 1.0361-1.4160 2.2844-0.3706-1.4939-1.4575)
T=-0.5480