您的位置:首页 > 其它

机器学习-学习笔记 学习总结归纳(第十二周)

2017-09-01 19:03 232 查看

BP神经网络

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); %网络训练

W1= net.iw{1, 1}  %输入层到中间层的权值
B1 = net.b{1} %中间各层神经元阈值
W2 = net.lw{2, 1} %中间层到输出层的权值
B2 = net.b{2} %输出层各神经元阈值

sim(net,P) %利用得到的神经网络仿真




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([-1 1],[5 1],{'tansig','tansig'});
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}%输出层各神经元阈值


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: