① matlab的神经网络工具箱问题
线性神经网络的构建:
net=newlin(PR,S,ID,LR)
PR--Rx2阶矩阵,R个输入元素的最小最大矩阵
S---输出层神经元个数
ID--输入延迟向量,默认值为[0]
IR--学习率,默认值为0.01
net = newlin([-1 1;-1 1],1); 表示设计的是一个双输入单输出线性神经网络
P = [1 2 2 3; 2 1 3 1];表示输入样本有四个,每一列就是一个输入样本
又比如假设我们期望的输出为 T=[1 2 3 4],则一个简单的神经网络如下:
>>net = newlin([-1 1;-1 1],1);%创建初始网络
P=[1 2 2 3; 2 1 3 1]%输入
T=[1 2 3 4]%期望的输出
net=newlind(P,T);%用输入和期望训练网络
Y=sim(net,P)%仿真,可以看到仿真结果Y和期望输出T的接近程度
P =
1 2 2 3
2 1 3 1
T =
1 2 3 4
Y =
0.8889 2.1667 3.0556 3.8889
楼主可以从《matlab神经网络与应用(第二版)》董长虹 开始入门神经网络的matlab实现
参考资料:《matlab神经网络与应用(第二版)》
② 如何用c#调用Matlab神经网络的工具箱
如果是用Matlab提供的GUI界面,在命令窗口输入命令nntool回车即可。 建议不要用GUI界面,直接在代码中调用神经网络工具箱,使用更方便,参数设置更明了。神经网络工具箱提供多个函数接口,不同的神经网络对应不同的函数
③ 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……
④ 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、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命令查看。
三、训练函数与学习函数的区别
函数的输出是权值和阈值的增量,训练函数的输出是训练好的网络和训练记录,在训练过程中训练函数不断调用学习函数修正权值和阈值,通过检测设定的训练步数或性能函数计算出的误差小于设定误差,来结束训练。
或者这么说:训练函数是全局调整权值和阈值,考虑的是整体误差的最小。学习函数是局部调整权值和阈值,考虑的是单个神经元误差的最小。
它的基本思想是学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。
反向传播时,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
⑤ 在哪能下的matlab的神经网络工具箱
MATLAB的神经自网络工具箱是内置的,如果完全安装了MATLAB,那么你可以在MATLAB的帮助页面上(帮助页面可以在Comand Window下输入'help help '(不名括单引号),然后看Contents里有 Neural Network Toolbox。
神经网络工具箱有个教学GUI,可以在Comand Window下输nnd'(不名括单引号,小写)(因为这个教学GUI是和一本书结合的,这本书叫Neural Network Design,作者Martin T.Hagan,Howard B.Demuth,强烈推荐学习这本经典教材,会让你入门并稍有进阶)
⑥ 用matlab神经网络工具箱前要不要对数据标准化
不用。Matlab神经网络工具箱自带了两个数据标准化处理命令,一个是mapminmax,另一个是mapstd。
⑦ matlab怎么打开神经网络工具箱
在matlab命令窗口中,输入>>nnstart %回车后就会弹出神经网络工具箱主窗口。⑧ matlab怎么打开神经网络工具箱
在matlab命令窗口中,输入
>>nnstart %回车后就会弹出神经网络工具箱主窗口。
⑨ matlab怎么打开神经网络工具箱
1单击Apps,在搜索框中输入neu,下方出现了所有神经网络工具箱。neural net fitting 是我们要使回用的神答经网络拟合工具箱。
2
在下界面中点击next
3
单击load example data set,得到我们需要的测试数据。
4
单击import
5
单击next
6
单击next
7
数字“10”表示有10个隐含层。单击next。
8
单击train,开始训练。
9
训练过程跳出的小窗口。
10
训练结果。其中MSE表示均方差,R 表示相关系数。单击next。
11
这里可以调整神经网络,也可以再次训练。单击next。
12
在这里,可以保存结果。如果不需要,直接finish。