matlab编程问题,建立BP神经网络

%采用动量梯度下降算法训练 BP 网络。

matlab编程问题建立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);

%计算出预测值和实际值的误,求出方。将来方可以用来随机调整