- 76
- 0
- 约5.19千字
- 约 12页
- 2016-10-20 发布于重庆
- 举报
第04讲BP神经网络
BP神经网络
一、例子部分
1、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。
样本数据:
输入X 输出D 输入X 输出D 输入X 输出D -1.0000 -0.9602 -0.3000 0.1336 0.4000 0.3072 -0.9000 -0.5770 -0.2000 -0.2013 0.5000 0.3960 -0.8000 -0.0729 -0.1000 -0.4344 0.6000 0.3449 -0.7000 0.3771 0 -0.5000 0.7000 0.1816 -0.6000 0.6405 0.1000 -0.3930 0.8000 -0.3120 -0.5000 0.6600 0.2000 -0.1647 0.9000 -0.2189 -0.4000 0.4609 0.3000 -0.0988 1.0000 -0.3201 解:
看到期望输出的范围是,所以利用双极性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)
%net = newff(X,D,5);
net = newff(minmax(X),[5,1],{tansig,tansig})
net.trainParam.epochs = 1000; %训练的最大次数
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}%输出层各神经元阈值
所得结果如下:
输入层到中间层的权值:
中间层各神经元的阈值:
中间层到输出层的权值:
输出层各神经元的阈值:
图1-1 原始数据的分布
图1-2 训练后得到的结果
图1-3 误差曲线
2、利用三层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 解:
看到期望输出的范围超出,所以输出层神经元利用线性函数作为转移函数。
程序如下:
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,*); %绘制原始数据分布图(附录:2-1)
%net = newff(X,D,5);
%net = newff(minmax(X),[5 1],{tansig,purelin})
net.trainParam.epochs = 1000;
net.trainParam.goal=0.005;
net=train(net,X,D);
O=sim(net,X);
figure;
plot(X,D,*,X,O); %绘制训练后得到的结果和误差曲线(附录:2-2、2-3)
V = net.iw{1,1}%输入层到中间层权值
theta1 = net.b{1}%中间层各神经元阈值
W = net.lw{2,1}%中间层到输出层权值
theta2 = net.b{2}%输出层各神经元阈值
所得结果如下:
输入层到中间层的权值:
中间层各神经元的阈值:
中间层到输出层的权值:
输出层各神经元的阈值:
图2-1 原始数据的分布
图2-2 训练后得到的结果
图2-3 误差曲线
3、以下是上证指数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
原创力文档

文档评论(0)