matlab编程问题,建立BP神经网络
%采用动量梯度下降算法训练 BP 网络。
matlab构建神经网络_matlab神经网络能做什么
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建立BP神经网络吗
可以。利用函数newff和train。简单的设置方法
P = [2,1,4,5,3,9]; %Y
T = [1:6]; %X
net = newff(minmax(P),[5 1],{'tansig' 'purelin'}); %newff(a,b,c)
%a:输入特征范围
%b:n-1个隐藏层的大小,S1到S(n-1),默认值为[]。(输出层大小S由T确定)
%c:转移函数
net = train(net,P,T); %训练
Y = sim(net , T); %输出结果
手打望采纳
完全可以,里面有神经网络模块。
(急)如何用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);
%计算出预测值和实际值的误,求出方。将来方可以用来随机调整
如何用matlab编写BP神经网络程序
matlab编写BP神经网络很方便的,这个工作不用像编程序的C什么的那样还要编写算法。这个算法早已经在软件的库里提供了。你只要用一条语句就出来了。把参数,深度和节点固定的往里一代数就可以了。还有一点,注意后结果的收敛性,神经网络发展一直是曲折前进的,为什么这样,现在不太给力,因为面临着一个收敛的问题,实现起来效果不好。这些程序网上有很多,你借一本基本的神经网络的书里面也有。望采纳。
如何用matlab做神经网络结构图
给你一个实例,希望通过该例子对实现神经网络应用有一定的了解。
%x,y分别为输入和目标向量
x=1:5;
y=[639 646 642 624 652];
%创建一个前馈网络
net=newff(minmax(x),[20,1],{'tansig','purelin'});
%仿真未经训练的网络net并画图
y1=sim(net,x);plot(x,y1,':');
%采用L-M优化算法
net.trainFcn='trainlm';
%设置训练算法
net.trainParam.epochs=500;net.trainParam.goal=10^(-6);
%调用相应算法训练BP网络
[net,tr,]=train(net,x,y);
%对BP网络进行仿真
y1=sim(net,x);
%计算仿真误
E=y-y1;MSE=mse(E)
hold on
%绘制匹配结果曲线
figure;
plot(x,y1,'r',x,y,'b--')
执行结果
关于构建一个三层BP神经网络对品的销售进行预测(程序由matlab编写)
clear all;
close all;
clc;
%p = [2056 2395 2600 2298 1634 1600 1837 1478 1900 2395 2600 2298 1634 1600 1873 1478 1900 1500 2600 2298 1634 1600 1873 1478 1900 1500 2046];
t = [1873 1478 1900 1500 2046 1556];
p = [ 2056 2395 2600 2298 1634 1600];
%--归一化输入输出-- 映射到[0,1]--%
pmax = max(p);
pmin = min(p);
P = (p-pmin)./(pmax-pmin);
tmax = max(t);
tmin = min(t);
T = (t-tmin)./(tmax-tmin);
net =newff(P,T,5,{'tansig','purelin'},'traingdx');
%--设置训练参数--%
net.trainParam.show =50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.divideFcn= '';
[net,tr] = train(net,P,T);
A =sim(net,P);
a =A.(tmax - tmin)+tmin;
x = 7:12;
figure
plot(x,t,'+');
hold on;
plot(x,a,'or');
hold off;
xlabel('month');
ylabel('')
legend('实际','预测')
MATLAB神经网络编程的内容
《MATLAB神经网络编程》结合神经网络的概念、理论和应用,以MATLAB为平台,系统地介绍了神经网络工具箱中的前向型神经网络、局部型神经网络、反馈型神经网络、竞争型神经网络、神经网络控制的综合应用、神经网络在Simulink中的应用、神经网络的模糊控制及其自定义网络等内容。《MATLAB神经网络编程》重点是运用MATLAB神经网络工具箱介绍神经网络分析研究中的各种概念、理论、方法、算法及其实现。《MATLAB神经网络编程》内容安排合理,理论结合实际,同时作者列举了其总结的大量应用实例。《MATLAB神经网络编程》讲述的各种统计理论和方法浅显易懂,并均能在实际生活中找到应用对象。《MATLAB神经网络编程》可以作为广大在校本科生和研究生的学习用书,也可以作为广大科研人员、学者、工程技术人员的参考用书。
matlab中,建立bp神经网络时,把所有数据划分成train和test集?
一般情况下,train,test,validation这三条曲线是通过将训练数据集随机划分出三份子集得到的,train是用来训练模型的部分,test用来测试模型的表现,而validation用来验证模型的性能。通过试错法判断不同隐含层节点数下的误时,一般看的是模型在验证数据集上的表现,选取误小的节点数,作为模型佳参数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。