给你一个实例,希望通过该例子对实现神经网络应用有一定的了解。
%x,y分别为输入和目标向量x=1:5;y=[639646642624652];%创建一个前馈网络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;=10^(-6);%调用相应算法训练BP网络[net,tr,yy]=train(net,x,y);%对BP网络进行仿真y1=sim(net,x);%计算仿真误差E=y-y1;MSE=mse(E)holdon%绘制匹配结果曲线figure;plot(x,y1,'r*',x,y,'b--')执行结果。
matlab带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子。
核心调用语句如下:%数据输入%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%BP网络训练%%初始化网络结构net=newff(inputn,outputn,[88]);net.trainParam.epochs=100;=0.01;=0.01;%网络训练net=train(net,inputn,outputn);%%BP网络预测%预测数据归一化inputn_test=mapminmax('apply',input_test,inputps);%网络预测输出an=sim(net,inputn_test);%网络输出反归一化BPoutput=mapminmax('reverse',an,outputps);%%结果分析。
1.神经网络神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。
一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。如下图所示。这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。
作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。神经网络已经在各个领域中应用,以实现各种复杂的功能。这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。
如今神经网络能够用来解决常规计算腿四岩越饩龅奈侍狻N颐侵饕ü飧龉ぞ呦淅唇⑹痉兜纳窬缦低常⒂τ玫焦こ獭⒔鹑诤推渌导氏钅恐腥ァ?BR>一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。
无监督网络可以被应用在数据组的辨别上。一些线形网络和Hopfield网络是直接设计的。总的来说,有各种各样的设计和学习方法来增强用户的选择。
神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。
我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。
我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。
因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。
我们相信要成功和满意的使用这个工具箱,对范例和它们的应用的理解是很重要的,并且如果没有这些说明那么用户的埋怨和质询就会把我们淹没。所以如果我们包括了大量的说明性材料,请保持耐心。
我们希望这些材料能对你有帮助。这个章节在开始使用神经网络工具箱时包括了一些注释,它也描述了新的图形用户接口和新的运算法则和体系结构,并且它解释了工具箱为了使用模块化网络对象描述而增强的机动性。
最后这一章给出了一个神经网络实际应用的列表并增加了一个新的文本--神经网络设计。这本书介绍了神经网络的理论和它们的设计和应用,并给出了相当可观的MATLAB和神经网络工具箱的使用。
2.准备工作基本章节第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。
第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。帮助和安装神经网络工具箱包含在nnet目录中,键入helpnnet可得到帮助主题。工具箱包含了许多示例。每一个。
。
为了看懂师兄的文章中使用的方法,研究了一下神经网络昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本%生成训练样本集clearall;clc;P=[1100.8072400.21511821.5;1102.8652400.11521212;1102.592400.11242411.5;2200.62400.31231821;22032400.32532111.5;1101.5622400.31531811.5;1100.5472400.3151921.5];01.3183000.11521812];T=[54248162787168380314797;28614639586963782898;86002402710644415328084;230802445102362823335913;602571278927675373541;346159353280762110049;56783172907164548144040];@907117437120368130179];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,[124],{'logsig','logsig'},'traingdx','learngdm');%建立BP神经网络,12个隐层神经元,4个输出神经元%tranferFcn属性'logsig'隐层采用Sigmoid传输函数%tranferFcn属性'logsig'输出层采用Sigmoid传输函数%trainFcn属性'traingdx'自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数%learn属性'learngdm'附加动量因子的梯度下降学习函数net.trainParam.epochs=1000;%允许最大训练步数2000步=0.001;%训练目标最小误差0.001=10;%每间隔100步显示一次训练结果=0.05;%学习速率0.05bpnet=train(bpnet,P,T);%-------------------------------------------------------------------------p=[1101.3183000.11521812];p=p'/m;r=sim(bpnet,p);R=r'*n;display(R);运行的结果是出现这样的界面点击performance,trainingstate,以及regression分别出现下面的界面再搜索,发现可以通过神经网络工具箱来创建神经网络,比较友好的GUI界面,在输入命令里面输入nntool,就可以开始了。
点击import之后就出现下面的具体的设置神经网络参数的对话界面,这是输入输出数据的对话窗首先是训练数据的输入然后点击new,创建一个新的神经网络network1,并设置其输入输出数据,包括名称,神经网络的类型以及隐含层的层数和节点数,还有隐含层及输出层的训练函数等点击view,可以看到这是神经网络的可视化直观表达创建好了一个network之后,点击open,可以看到一个神经网络训练,优化等的对话框,选择了输入输出数据后,点击train,神经网络开始训练,如右下方的图,可以显示动态结果下面三个图形则是点击performance,trainingstate以及regression而出现的下面就是simulate,输入的数据是用来检验这个网络的数据,output改一个名字,这样就把输出数据和误差都存放起来了在主界面上点击export就能将得到的out结果输入到matlab中并查看下图就是输出的两个outputs结果还在继续挖掘,tobecontinue……
人工神经网络研究目前主要分两类:理论研究和应用研究。
理论研究方面,①利用神经生理与认知科学研究人类思维以及智能机理;②利用神经基础理论的研究成果,用数理方法探索功能更加完善、性能更加优越的神经网络模型,深入研究网络算法和性能。
开发新的网络数理理论,如神经网络动力学、非线性神经场等等应用研究方面,①神经网络的软件模拟和硬件实现的研究;②神经网络在各个领域中应用的研究。如,模式识别、信号处理、专家系统、机器人控制等等。
net=train(net,p,t);把这句改成net=train(net,p',t');试试,matlab应该默认使用列向量。
或者直接使用matlab提供的图形界面取训练,在命令行输入nnstart。