导航:首页 > 五金知识 > matlab神经网络工具箱教程

matlab神经网络工具箱教程

发布时间:2021-01-16 09:21:54

1. matlab神经网络工具箱训练出来的函数,怎么输出得到函数代码段

这样:

clear;

%输入数据矩阵

p1=zeros(1,1000);

p2=zeros(1,1000);

%填充数据

for i=1:1000

p1(i)=rand;

p2(i)=rand;

end

%输入层有两个,样本数为1000

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);

%训练完网络后要求网络的权值w和阈值b

%获取网络权值、阈值

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} ;%隐层2到输出层的阈值

%在默认的训练函数下,拟合公式为,y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;

%用公式计算测试数据[x1;x2]的输出,输入要归一化,输出反归一化

in = mapminmax('apply',[x1;x2],inputStr);

y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;

y1=mapminmax('reverse',y,outputStr);

%用bp神经网络验证计算结果

out = sim(net,in);

out1=mapminmax('reverse',out,outputStr);

(1)matlab神经网络工具箱教程扩展阅读:

注意事项

一、训练函数

1、traingd

Name:Gradient descent backpropagation (梯度下降反向传播算法 )

Description:triangd is a network training function that updates weight and bias values according to gradient descent.

2、traingda

Name:Gradient descentwith adaptive learning rate backpropagation(自适应学习率的t梯度下降反向传播算法)

Description:triangd is a network training function that updates weight and bias values according to gradient descent with adaptive learning rate.it will return a trained net (net) and the trianing record (tr).

3、traingdx (newelm函数默认的训练函数)

name:Gradient descent with momentum and adaptive learning rate backpropagation(带动量的梯度下降的自适应学习率的反向传播算法)

Description:triangdx is a network training function that updates weight and bias values according to gradient descent momentumand an adaptive learning rate.it will return a trained net (net) and the trianing record (tr).

4、trainlm

Name:Levenberg-Marquardtbackpropagation(L-M反向传播算法)

Description:triangd is a network training function that updates weight and bias values according toLevenberg-Marquardt optimization.it will return a trained net (net) and the trianing record (tr).

注:更多的训练算法请用matlab的help命令查看。

二、学习函数

1、learngd

Name:Gradient descent weight and bias learning function(梯度下降的权值和阈值学习函数)

Description:learngd is the gradient descentweight and bias learning function, it willreturn theweight change dWand a new learning state.

2、learngdm

Name:Gradient descentwith momentumweight and bias learning function(带动量的梯度下降的权值和阈值学习函数)

Description:learngd is the gradient descentwith momentumweight and bias learning function, it willreturn the weight change dW and a new learning state.

注:更多的学习函数用matlab的help命令查看。

三、训练函数与学习函数的区别

函数的输出是权值和阈值的增量,训练函数的输出是训练好的网络和训练记录,在训练过程中训练函数不断调用学习函数修正权值和阈值,通过检测设定的训练步数或性能函数计算出的误差小于设定误差,来结束训练。

或者这么说:训练函数是全局调整权值和阈值,考虑的是整体误差的最小。学习函数是局部调整权值和阈值,考虑的是单个神经元误差的最小。

它的基本思想是学习过程由信号的正向传播与误差的反向传播两个过程组成。

正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。

反向传播时,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。

2. matlab神经网络工具箱怎么使用训练好的神经网络

matlab神经网络入到隐层权值: w1=netiw{1,1} 隐层阈值: theta1=netmatlab神经网络工具箱怎么使用训练好的神经网络

3. 你好,请问你知道在matlab神经网络工具箱里,学习率在哪里设置吗

lr就是学习率,performance是主要指标,你在程序里写的goal就是MSE,决定最后精度的。

%%BP算法
functionOut=bpnet(p,t,p_test)
globalS1
net=newff(minmax(p),[S1,8],{'tansig','purelin'},'trainlm');%trainlm训练函数最有版效
%net=newff(P,T,31,{'tansig','purelin'},'trainlm');%新版用权法
net.trainParam.epochs=1000;
net.trainParam.goal=0.00001;
net.trainParam.lr=0.01;%这是学习率
net=train(net,p,t);
Out=sim(net,p_test);
end


4. 如何用MATLAB的神经网络工具箱实现三层BP网络

这是一个来自<神经网络之家>nnetinfo的例子,在matlab2012b运行后的确可以,因为网络知道的文本宽度不够,注释挤到第二行了,有些乱,楼主注意区分哪些是代码哪些是注释,
x1 =
[-3,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,0.9,1.2,1.5,1.8]; %x1:x1 = -3:0.3:2;
x2 =
[-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,-2.2204,0.2,0.4,0.6,0.8,1,1.2];%x2:x2 = -2:0.2:1.2;
y = [0.6589,0.2206,-0.1635,-0.4712,-0.6858,-0.7975,-0.8040,...

-0.7113,-0.5326,-0.2875
,0,0.3035,0.5966,0.8553,1.0600,1.1975,1.2618]; %y:
y = sin(x1)+0.2*x2.*x2;
inputData = [x1;x2]; %将x1,x2作为输入数据

outputData = y; %将y作为输出数据

%使用用输入输出数据(inputData、outputData)建立网络,

%隐节点个数设为3.其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');

%设置一些常用参数
net.trainparam.goal = 0.0001;
%训练目标:均方误差低于0.0001
net.trainparam.show = 400; %每训练400次展示一次结果
net.trainparam.epochs = 15000;
%最大训练次数:15000.
[net,tr] = train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
simout = sim(net,inputData);
%调用matlab神经网络工具箱自带的sim函数得到网络的预测值
figure; %新建画图窗口窗口
t=1:length(simout);
plot(t,y,t,simout,'r')%画图,对比原来的y和网络预测的y

5. matlab 神经网络工具箱中的som怎么使用

使用newsom函数创建网络:

net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND)

PR:R个输入元素的最大值和最小值的设定值,R*2维矩阵

Di:第I层的维数,默认为[5 8]

TFCN:拓扑函数,默认为hextop

DFCN:距离函数,默认为linkdist

OLR:分类阶段学习速率,默认为0.9

OSTEPS:分类阶段的步长,默认为1000

TLR:调谐阶段的学习速率,默认为0.02

TNS:调谐阶段的领域距离,默认为1.


例子:

>>P=[rand(1,400)*2;rand(1,400)];
>>plot(P(1,:),P(2,:),'.','markersize',20)
>>net=newsom([01;01],[35]);
>>net=train(net,P);
>>holdon
>>plotsom(net.iw{1,1},net.layers{1}.distances)
>>holdoff


第二个函数:newc函数

功能:该函数用于创建一个竞争层

net=newc

net=newc(PR,S,KLR,CLR)

S:神经元的数目

KLR:Kohonen学习速度,默认为0.01

CLR:Conscience学习速度,默认为0.001

net:函数返回值,一个新的竞争层。


也可以参考附件的代码,里面有一个案例是SOM神经网络的。

6. matlab神经网络工具箱具体怎么用

为了看懂师兄的文章中使用的方法,研究了一下神经网络
昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,网络知道里倒是有一个,可以运行的,先贴着做标本

% 生成训练样本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
@907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %输入矢量的取值范围矩阵
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm');
%建立BP神经网络, 12个隐层神经元,4个输出神经元
%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数
%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数
%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数
%learn属性 'learngdm' 附加动量因子的梯度下降学习函数
net.trainParam.epochs=1000;%允许最大训练步数2000步
net.trainParam.goal=0.001; %训练目标最小误差0.001
net.trainParam.show=10; %每间隔100步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);

运行的结果是出现这样的界面

点击performance,training state,以及regression分别出现下面的界面

再搜索,发现可以通过神经网络工具箱来创建神经网络,比较友好的GUI界面,在输入命令里面输入nntool,就可以开始了。

点击import之后就出现下面的具体的设置神经网络参数的对话界面,
这是输入输出数据的对话窗

首先是训练数据的输入

然后点击new,创建一个新的神经网络network1,并设置其输入输出数据,包括名称,神经网络的类型以及隐含层的层数和节点数,还有隐含层及输出层的训练函数等

点击view,可以看到这是神经网络的可视化直观表达

创建好了一个network之后,点击open,可以看到一个神经网络训练,优化等的对话框,选择了输入输出数据后,点击train,神经网络开始训练,如右下方的图,可以显示动态结果

下面三个图形则是点击performance,training state以及regression而出现的

下面就是simulate,输入的数据是用来检验这个网络的数据,output改一个名字,这样就把输出数据和误差都存放起来了

在主界面上点击export就能将得到的out结果输入到matlab中并查看

下图就是输出的两个outputs结果

还在继续挖掘,to be continue……

7. matlab神经网络工具箱怎么看训练后的权值

训练好的权值、阈值的输出方法是:
输入到隐层权值:
w1=net.iw{1,1}
隐层阈值:
theta1=net.b{1}
隐层到输出内层容权值:
w2=net.lw{2,1};
输出层阈值:
theta2=net.b{2}

8. matlab怎么打开神经网络工具箱

matlab怎么打开神经网络工具箱?可以在命令窗口中,输入
>>
nftool
%回车
得到Neural
Network
Fitting
Tool
神经网络工具箱图形用户界面

阅读全文

与matlab神经网络工具箱教程相关的资料

热点内容
清洗节气阀门多少钱 浏览:242
格式工厂如何移动设备输出 浏览:82
燃气阀门很脏 浏览:797
安卓51重力工具箱6 浏览:630
工业机器人行走装置设计说明书 浏览:969
车辆走行装置的基本作用 浏览:354
提供自动扶梯教学实训装置厂家 浏览:701
台州有几家阀门厂 浏览:369
轴承钢淬火后硬度为什么升高 浏览:425
荣放汽车怎么退出仪表界面 浏览:161
超声波是什么动物发明的 浏览:792
工艺流程图仪表pg什么意思 浏览:70
宝马仪表盘有m的是什么车 浏览:34
悬架导向装置作用 浏览:574
离合器分离轴承坏了换一下多少钱 浏览:59
密云区机电金属仪器有哪些 浏览:809
机械手表坏了什么问题 浏览:251
轴承背对背面对面怎么分 浏览:898
穿衣服要注重仪表是什么意思 浏览:319
氦气罐阀门怎么拧 浏览:942