导航:首页 > 教学教案 > matlabbp神经网络教学

matlabbp神经网络教学

发布时间:2021-02-04 15:56:51

① 求教!!用MATLAB建立一个简单的bp神经网络

可以运行
你看看是不是你的版本有问题?

net =

Neural Network object:

architecture:

numInputs: 1
numLayers: 2
biasConnect: [1; 1]
inputConnect: [1; 0]
layerConnect: [0 0; 1 0]
outputConnect: [0 1]

numOutputs: 1 (read-only)
numInputDelays: 0 (read-only)
numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs
layers: {2x1 cell} of layers
outputs: {1x2 cell} containing 1 output
biases: {2x1 cell} containing 2 biases
inputWeights: {2x1 cell} containing 1 input weight
layerWeights: {2x2 cell} containing 1 layer weight

② 如何快速学习matlab BP神经网络

如何快速学习matlab BP神经网络
我不知道你是要深入的了解其原理,还是只是用用而已版……
对于我来说权,我基本上是着眼于BP神经网络的应用,分类啊,拟合(预测)啊。而对于原理,我只能说我不是很了解,看过一些,但是似懂非懂。
综合,我推荐《MATLAB神经网络43个案例分析》这本书吧,大部分是着眼于应用,即直接调用MATLAB的函数来实现神经网络的搭建,训练,应用,而这本书的第一章给出了自己实现BP神经网络的例子和程序(不调用MATLAB的神经网络方面的函数)
要深入原理的话,读原码最好了,
不过读matlab工具箱的原码比较繁杂,你可以看这个简化版的:

③ BP神经网络matlab源程序代码讲解

newff 创建前向BP网络格式:
net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

其中:PR —— R维输入元素的R×2阶最大最小值矩阵; Si —— 第i层神经元的个数,共N1层; TFi——第i层的转移函数,默认‘tansig’; BTF—— BP网络的训练函数,默认‘trainlm’; BLF—— BP权值/偏差学习函数,默认’learngdm’ PF ——性能函数,默认‘mse’;(误差)

e.g.
P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff([0 10],[5 1],{'tansig' 'purelin'});net.trainparam.show=50; %每次循环50次net.trainParam.epochs = 500; %最大循环500次
net.trainparam.goal=0.01; %期望目标误差最小值
net = train(net,P,T); %对网络进行反复训练
Y = sim(net,P)Figure % 打开另外一个图形窗口
plot(P,T,P,Y,'o')

④ 网上哪里有讲解用MATLAB编BP神经网络的视频啊

给你一个论坛,上面有很多高手,会帮助你解答问题的,

上面好像有神经网络的内视频容讲解!!!

http://www.ilovematlab.cn/

下面这个网址是下载视频的地址,不过应该是你先得注册才能看!
http://www.ilovematlab.cn/forum-43-1.html

⑤ MATLAB中BP神经网络的训练算法具体是怎么样的

先用newff函数建立网络,再用train函数训练即可。
1)正向传播:输入样本->输入层版->各隐层(处理)-权>输出层
注1:若输出层实际输出与期望输出(教师信号)不符,则转入2)(误差反向传播过程)
2)误差反向传播:输出误差(某种形式)->隐层(逐层)->输入层
其主要目的是通过将输出误差反传,将误差分摊给各层所有单元,从而获得各层单元的误差信号,进而修正各单元的权值(其过程,是一个权值调整的过程)。

BP算法实现步骤(软件):
1)初始化
2)输入训练样本对,计算各层输出
3)计算网络输出误差
4)计算各层误差信号
5)调整各层权值
6)检查网络总误差是否达到精度要求
满足,则训练结束;不满足,则返回步骤2)
注:改进算法—增加动量项、自适应调整学习速率(这个似乎不错)及引入陡度因子。

⑥ 用matlab实现BP神经网络,求全部过程,谢谢大神

所有BP神经网络的训练方抄法都是相似的,仅仅是将样本和网络结构进行修改。你这种情况,只需要将输入P与输出T进行修改,并将输入节点数设为3,输出节点数设为1,即可。请参考附件的代码。


newff函数的格式为:

net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:

PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;

Si:第i层神经元个数;

TFi:第i层的传递函数,默认函数为tansig函数;

BTF:训练函数,默认函数为trainlm函数;

BLF:权值/阀值学习函数,默认函数为learngdm函数;

PF:性能函数,默认函数为mse函数。

⑦ 用BP神经网络建立数学模型,MATLAB实现,怎样得到输入到输出的计算公式

clear;

%输入数据矩阵
p1=zeros(1,1000);
p2=zeros(1,1000);
for i=1:1000
p1(i)=rand;
p2(i)=rand;
end
p=[p1;p2];
%目标(输出)数据矩阵
t = cos(pi*p1)+sin(pi*p2);
%对训练集中的输入数据矩阵和目标数据矩阵进行归一化处理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神经网络
net = newff(pn, tn, [200,10]);
%每10轮回显示一次结果
net.trainParam.show = 10;
%最大训练次数
net.trainParam.epochs = 5000;
%网络的学习速率
net.trainParam.lr = 0.05;
%训练网络所要达到的目标误差
net.trainParam.goal = 10^(-8);
%网络误差如果连续6次迭代都没变化,则matlab会默认终止训练。为了让程序继续运行,用以下命令取消这条设置
net.divideFcn = '';
%开始训练网络
net = train(net, pn, tn);
%获取网络权值、阈值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %输入层到隐层1的权值
b1 = net.b{1} ; %输入层到隐层1的阈值
w2 = net.lw{2,1}; %隐层1到隐层2的权值
b2 = net.b{2} ; %隐层1到隐层2的阈值
w3 = net.lw{3,2}; %隐层2到输出层的权值
b3 = net.b{3} ;
in = mapminmax('apply',[0.1;0.5],inputStr);
%用公式计算输出
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用网络验证计算结果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);

⑧ 如何用matlab训练BP神经网络

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
PR - Rx2 matrix of min and max values for R input elements.
Si - Size of ith layer, for Nl layers.
TFi - Transfer function of ith layer, default = 'tansig'.
BTF - Backprop network training function, default = 'trainlm'.
BLF - Backprop weight/bias learning function, default = 'learngdm'.
PF - Performance function, default = 'mse'.
然后train一下就可以了,具体其他参数查阅相关文档,一般有前四个参数就够了。
看一个简单的例子:
有两个向量或者矩阵,pn和tn:
net=newff(minmax(pn),[3,1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs=1000;
net.trainParam.goal =1e-5;
net=train(net,pn,tn);
照葫芦画瓢就行,具体参数意义就不说了,自己查阅matlab帮助。

⑨ 求用matlab编BP神经网络预测程序

P=[。。。];输入T=[。。。];输出

% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')

% 当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);

% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)

x=[。。。]';%测试
sim(net_1,x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不可能啊 我2009

⑩ matlab BP神经网络

从原理上来说,神来经网络是可以预自测未来的点的。
实际上,经过训练之后,神经网络就拟合了输入和输出数据之间的函数关系。只要训练的足够好,那么这个拟合的关系就会足够准确,从而能够预测在其他的输入情况下,会有什么样的输出。
如果要预测t=[6 7]两点的R值,先以t=[1 2 3 4 5]作为输入,R=[12 13 14 14 15]作为输出,训练网络。训练完成之后,用t=[2 3 4 5 6]作为输入,这样会得到一个输出。不出意外的话,输出的数组应该是[13 14 14 15 X],这里的X就是预测t=6时的R值。然后以t=[3 4 5 6 7]作为输入,同理得到t=7时候的R值。
根据我的神经网络预测,t=6时,R=15,t=7时,R=15。我不知道这个结果是否正确,因为神经网络通常需要大量的数据来训练,而这里给的数据似乎太少,可能不足以拟合出正确的函数。

阅读全文

与matlabbp神经网络教学相关的资料

热点内容
北京高中作文耐心 浏览:59
变作文600字初中 浏览:660
2011台州中考语文 浏览:250
识字一的教案 浏览:85
语文作业本凡卡答案 浏览:619
300书信作文大全 浏览:227
苏教版五年级语文下册补充成语ppt 浏览:891
爱的方式作文开头结尾 浏览:694
端午节的作文600字初中 浏览:70
3年级上册语文作业本答案 浏览:265
高考语文与小学的联系 浏览:965
2015北京语文中考答案 浏览:979
双分点地步法教学 浏览:714
小学二年级作文辅导课 浏览:693
关于成功条件的作文素材 浏览:848
建军节作文的结尾 浏览:88
五年级下册语文mp3在线收听 浏览:696
ie教案6 浏览:907
三年级语文培优补差计划 浏览:679
二胡独奏一枝花教学 浏览:525