matlab编程问题建立BP神经网络
matlab编程问题,建立BP神经网络
%采用动量梯度下降算法训练 BP 网络。
matlab编程问题建立BP神经网络
matlab编程问题建立BP神经网络
close all
clear
echo on
clc
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause
% 敲任意键开始
clc
% 定义训练样本
% P 为输入矢量 pau
P=[-1,-2,3,1;-1,1,5,-3];
% T 为目标矢量
T=[-1, -1, 1, 1];
pause;
clc
% 创建一个新的前向神经网络
minmax(P)
net=newff(minmax(P),[3,1],{'tansig''purelin'},'traingdm');
% minmax(P)取值范围是P内的小值到值 [3,1]是3个神经元 1维 tansig purelin traingdm各层神经网络的激励函数
% tansig purelin隐含层更改权值的函数 当前输入层权值和阈值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
% 当前网络层权值和阈值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
%表示对各层神经网络的权值与阈值传递到相应变量
pause
clc
% 设置训练参数
net.trainParam.show = 50; %训练显示间隔 50次显示一次
net.trainParam.lr = 0.05; %学习步长0.05学习率
net.trainParam.mc = 0.9; %动量项系数0.9
net.trainParam.epochs = 1000; %训练次数1000次
net.trainParam.goal = 1e-3; %训练精度目标为0.001
pause
clc
% 调用 traingdm 算法训练 BP 网络
[net,tr]=train(net,P,T);%调用网络指令
pause
clc
% 对 BP 网络进行仿真
A=sim(net,P)
% 计算仿真误
E=T-A
MSE=mse(E)
pause
clc
echo off
提示什么错误
MATLAB神经网络编程的内容
《MATLAB神经网络编程》结合神经网络的概念、理论和应用,以MATLAB为平台,系统地介绍了神经网络工具箱中的前向型神经网络、局部型神经网络、反馈型神经网络、竞争型神经网络、神经网络控制的综合应用、神经网络在Simulink中的应用、神经网络的模糊控制及其自定义网络等内容。《MATLAB神经网络编程》重点是运用MATLAB神经网络工具箱介绍神经网络分析研究中的各种概念、理论、方法、算法及其实现。《MATLAB神经网络编程》内容安排合理,理论结合实际,同时作者列举了其总结的大量应用实例。《MATLAB神经网络编程》讲述的各种统计理论和方法浅显易懂,并均能在实际生活中找到应用对象。《MATLAB神经网络编程》可以作为广大在校本科生和研究生的学习用书,也可以作为广大科研人员、学者、工程技术人员的参考用书。
基于matlab或C#的神经网络编程
matlab本来就有神经网络工具箱/toolbox/nnet/
这是一个程序:
P = [1.24 1.36 1.38 1.38 1.38 1.4 1.48 1.54 1.56 1.14 1.18 1.2 1.26 1.28 1.3;
1.72 1.74 1.64 1.82 1.9 1.7 1.82 1.82 2.08 1.78 1.96 1.86 2.0 2.0 1.96];
%输出
T = [1 1 1 1 1 1 1 1 1 0 0 0 0 0 0];
%测试样本
p = [1.24, 1.28, 1.4; 1.8, 1.84, 2.04];
net=newff(minmax(P),[5,1],{'logsig','purelin'},'traingdx');
net.trainParam.show=50;
net.trainParam.lr=0.1;
net.trainParam.lr_inc=1.05;
net.trainParam.epochs=300;
net.trainParam.goal=0.01;
%net.trainParam.mu_dec=0.1;
%net.trainParam.mu_inc=7;
[net,tr]=train(net,P,T);
A=sim(net,P);
a=sim(net,p);
关于matlab的BP神经网络
1、数据归一化,输入的数据通常为P,输出数据通常为T,数据格式为,每列对应一个样本,归一化常用函数,是归一化后的数据,是归一化的结构体,在后面反归一化预测值;
2、建立网络并设定参数,中括号里面的是输入层数,隐含神经元数,输出层数,设定传递函数的参数,训练的次数,训练的误目标值,学习速率,通常在0到1之间;
3、预测并分析,根据之前归一化的标准,对预测结果进行反归一化,得到结果,对误进行输出,也可以作图,看预测值和真实值能否吻合,还可以在神经网络训练完成后的对话框中看MSE和R方。
(急)如何用MATLAB建立ANN(人工神经网络模型)?
问题描述:
有两个自变量,一个因变量,10个样本(这里就取少一点好了)。用实际问题来表述,设一个股票,价 x1,收盘价 x2,第二天的股价 y。 那用神经网络来预测的目的是,根据10天的价和收盘价,来预测未来股价。显然,这里的y与x1和x2相关,我们要训练一个网络(net)来让他尽可能的预测一个y
MATLAB程序
clc
clear
load data input output
%input就是包含了x1和x2 10天数据的矩阵,说白了就是20个数的矩阵。output是y的一个向量,%10个数
%需要自己找一些数据赋值给input和ouput
P=input;
T=output;
%这里P和T必须是 x1 x2和y的行向量组合。对于P,x1是行向量,x2是行向量。P=[x1;x2]; T=y. y是行向量
Epochs=5000;
NodeNum=12; TypeNum=1;
TF1='logsig'; TF2='purelin';
%设置一些初始参数,Epochs是迭代上限次数,NodeNum是个隐藏层的神经元个数,%TypeNum是几层。TF1和TF2分别定义了几个传递函数。
net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
%建立一个神经网络,训练输入和输出数据都有了,设置隐藏层的个数。
net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-4;
net.trainParam.min_grad=1e-4;
net.trainParam.show=200;
net.trainParam.time=inf;
%设置一些训练时的参数,个是每次训练的迭代次数;
net=train(net,P,T);
%开始网络训练
P_test=P;
B_test=T;
%就用原始的数据进行测试
X=sim(net,P_test);
%测试
Erro=abs(B_test-X);
sigma=std(Erro);
%计算出预测值和实际值的误,求出方。将来方可以用来随机调整
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。