⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 neural-network-back-propagation-algorithm.m

📁 每一个训练范例在网络中经过两遍传递计算:一遍向前传播计算
💻 M
字号:
% 利用BP网络实现函数逼近
clear
%NEWFF--生成一个新的前向神经网络
%TRAIN---对BP网络进行训练
%SIM----对BP网络进行仿真    
clc
%定义训练样本矢量
%**********************************情况1***********************************
P=0:0.01:0.3;%输入时间序列
T=sin(8*pi*P)+sin(16*pi*P);%目标输出序列
%**********************************情况2******************************
%P=-10:0.01:10;
%T=2*sin(3*P).*exp(-0.1*P.^2);
%P为输入矢量%***********************************情况3**********************************
%load data1;
%P=X;
%T=G;
%P=[-1:0.05:1];
%T为目标矢量   
%T= sin(2*pi*P)+3*cos(2*pi*P);
%对训练数据进行归一化处理
[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T);
clc
%创建BP神经网络
net=newff(minmax(Pn),[15 1],{'tansig','purelin'},'trainbr');
% 设置训练参数
net.performFcn='sse';
net.trainParam.goal=0.0001;
net.trainParam.show=1;
net.trainParam.epochs=15;
net.trainParam.Mu_max=1e-5;
net.trainParam.min_grad=1e-16;
% net.trainParam.mc=0.95;
net.trainParam.mem_reduc=1;
% 重新初始化网络
net=init(net);            
% 对BP神经网络进行训练
[net,tr]=train(net,Pn,Tn);
% 对BP神经网络进行仿真分析
Yn=sim(net,Pn);  
% 恢复被归一化的数据
[Y]=postmnmx(Yn,mint,maxt); 
%计算均方误差
E=T-Y;
MSE=mse(E);
%画图描绘仿真结果
figure;
plot(P,T,'r+',P,Y,'b:');
%***********************************情况1*********************************
axis([0 0.35  -2  2]);
%***********************************情况2*********************************
%axis([-10 10 -2 2]);
%***********************************情况3*********************************
%axis([-10 10 -10 10]);
title('BP神经网络的函数逼近结果');
xlabel('输入');
ylabel('输出');
legend('训练样本数据','BP神经网络仿真',1);
grid on;
%用未经训练的数据对训练成功的BP网络进行验证测试
%**********************************情况1.2请选择************************
p1=[-0.9:0.3:0.9];
t1=sin(2*pi*p1)+3*cos(2*pi*p1);
%**********************************情况3请选择************************
%p1=[-0.9:0.3:0.9]
%t1=sin(8*pi*p1)+sin(16*pi*p1)
%对测试数据进行归一化处理
%tramnmx:利用预先计算的最大和最小值对数据进行变换
p1n=tramnmx(p1,minp,maxp);
%对变换后的测试数据进行仿真
yn=sim(net,p1n);
% 将仿真结果还原成原始数据
[y]=postmnmx(yn,mint,maxt); 
figure;
plot(p1,t1,'r+');
hold on;
plot(p1,y,'b.');
axis([-1 1 -5 5]);
title('BP神经网络的函数逼近结果检验');
xlabel('输入');
ylabel('输出');
legend('测试样本数据','神经网络仿真',1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -