扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB神经网络工具箱及实验要求
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口MATLAB神经网络工具箱 介绍及实验要求神经元模型Neuron Model: 多输入,单输出,带偏置输入:R维列向量p = [ p1 ,L pR ]T阈值:标量 b权值:R维行向量 w = [ w11 ,L w1R ] 求和单元 n = ∑ p w +b i 1ii =
1 R传递函数 f 输出a = f ( wp + b)常用传递函数阈值函数?1 (n ≥ 0) a = f (n) = hardlim(n) = ? ?0 (n & 0)MATLAB函数: hardlima 1 -b -1 Wp? 1 (n ≥ 0) a = f (n) = hard lim s(n) = ? ??1 (n & 0)MATLAB函数: hardlims线性函数Purelin Transfer Function :a = f (n) = nanMATLAB函数: purelinSigmoid函数Sigmoid Function : 特性:值域a∈(0,1) 非线性,单调性 无限次可微 |n|较小时可近似线性 函数 |n|较大时可近似阈值 函数 对数Sigmoid函数 1 a = f (n ) = ?n 1+ e正切Sigmoid函数e n ? e? n a = tanh(n) = n ? n e +eMATLAB函数: logsig(对数), tansig(正切)单层神经网络模型R维输入, S个神经元的单层神经网络模型? w11 ?w W = ? 21 ?L ? ? wS 1w12 L w1R ? w21 L w2 R ? ? L L L? ? wS 1 L wSR ?? b1 ? ?b ? b = ? 2? ?M? ? ? ?bS ?a = f (Wp + b)多层神经网络模型前馈神经网络前馈神经网络(feed forward NN):各神经元 接受前级输入,并输出到下一级,无反馈, 可用一有向无环图表示。 前馈网络通常分为不同的层(layer),第i层的 输入只与第i-1层的输出联结。 可见层:输入层(input layer)和输出层(output layer) 隐藏层(hidden layer) :中间层感知器(perceptron):单层前馈网络 传递函数为阈值函数主要功能是模式分类感知器的生成函数newp用来生成一个感知器神经网络newpnet = newp( pr, s, tf, lf )net: 函数返回参数,表示生成的感知器网络 pr: 一个R×2矩阵, 由R维输入向量的每维最小值和最 大值组成 s: tf: lf: 神经元的个数 感知器的传递函数, 默认为hardlim, 可选hardlims 感知器的学习函数,默认为learnp, 可选learnpnnet = newp([-2,+2;-2,+2],2) %生成一个二维输入,两个神经元的感知器感知器的权值和阈值初始化newp默认权值和阈值为零(零初始化函数initzero). net = newp([-2,+2;-2,+2],2); W=net.IW{1,1} %显示网络的权值 b=net.b{1} %显示网络的阈值 W= 0 0 0 0 b= 0 0改变默认初始化函数为随机函数rands net.inputweights{1,1}.initFcn = ‘rands’; net.biases{1}.InitFcn = ‘rands’; net =init(net); %重新初始化直接初始化定义权值和阈值 net.IW{1,1}=[1 2]; net.b{1}=1感知器学习感知器学习算法权值增量: 阈值增量: 权值更新: 阈值更新: :?W = (t ? a) pT = epT?b = t ? a = eW new = W old + ?Wb new = bold + ?b算法改进(t ? a ) pT epT ?W = = p p输入样本归一化权值和阈值训练与学习函数设计好的感知器并不能马上投入使用. 通过样本训练, 确定感知器的权值和阈值.trainnet=train(net, P, T)被训练网络输入向量目标向量net.trainParam.epochs=10 ; %预定的最大训 练次数为10, 感知器经过最多训练10次后停止,adaptnet=adapt(net, P, T) 自适应训练函数权值和阈值学习函数learnpdW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS) dW:权值或阈值的增量矩阵 W:权值矩阵或阈值向量 P:输入向量 T:目标向量 E:误差向量 其他可以忽略,设为[ ]learnpn归一化学习函数网络仿真函数sima = sim(net, P)网络输出输入向量分类结果显示绘图函数plotpv plotpcplotpv(P,T)画输入向量的图像plotpc(W,b)画分类线例: 创建一个感知器根据给定的样本输入向量P和目标向量T, 以及需分类 的向量组Q, 创建一个感知器, 对其进行分类.P=[-0.5 -0.6 0.7;0.8 0 0.1]; T=[1 1 0]; net=newp([-1 1;-1 1],1); handle=plotpc(net.iw{1},net.b{1}); net.trainParam.epochs=10; net=train(net,P,T); Q=[0.6 0.9 -0.1;-0.1 -0.5 0.5]; Y=sim(net,Q); plotpv(Q,Y); handle=plotpc(net.iw{1},net.b{1},handle) %已知样本输入向量 %已知样本目标向量 %创建感知器 %返回划线的句柄 % 设置训练最大次数 %训练网络 %已知待分类向量 %二元分类仿真结果 %新建图形窗口 %画输入向量 %画分类线
实验一 利用感知器进行分类(1)一个经过训练的感知器对5个输入向量进行分类(2类)。 Step 1 画输入向量的图像两个长度为5的向量构成输入样本矩阵P,行向量T为目标向量。利用PLOTPV画 出这个向量的图像。例如: P = [-0.5 -0.5 +0.3 -0.1 -4; -0.5 +0.5 -0.5 +1.0 5]; T = [1 1 0 0 1]; plotpv(P,T); % plotpv函数利用感知器的输入向量和目标向量来画输入向量的图像Step 2建立神经网络MATLAB提供函数newp来创建一个指定的感知器。第一个参数指定了期望 的两个输入向量的取值范围,第二个参数指定了只有一个神经元。 net = newp([-40 1;-1 50],1); 注意:这个神经元的传递函数是hardlim函数,也就是阶跃函数。取0,1两个值。 Hardlims函数,取-1,1两个值。实验一 利用感知器进行分类(2)Step3hold on linehandle = plotpc(net.IW{1},net.b{1}); //plotpc函数用来画分类线添加神经元的初始化值到分类图初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会 出现在这个图中,不用害怕,我们会继续训练这个神经网。Step4训练神经网络Matlab提供了adapt函数来训练感知器,adapt函数返回一个新的能更好的执 行分类、网络的输出、和误差的神经网络,这个划线函数允许网络从3个角度去调 整,画分类线一直到误差为0为止。 E = 1; //E为误差 net.adaptParam.passes = 3; //决定在训练过程中重复次数 while (sse(E)) //sse函数是用来判定误差E的函数 [net,Y,E] = adapt(net,P,T); //利用输入样本调节神经网net linehandle = plotpc(net.IW{1},net.b{1},linehandle);/ /画出调整以后的分类线 //延迟一段时间 end实验一 利用感知器进行分类(3)Step 5 模拟sim 模拟sim函数能被用来划分任何别的输入向量,例如划分一个输入向量[0.7; 1.2].这个新点的图像为红色,他将用来显示这个感知器如何把这个新点从 最初的训练集取分开来。 p = [0.7; 1.2]; a = sim(net,p); //利用模拟函数sim计算出新输入p的神经网络的输出 plotpv(p,a); circle = findobj(gca,'type', 'line'); set(circle,'Color','red'); 打开hold,以便于以前的图像不被删除。增加训练装置和分类线在图中。 plotpv(P,T); plotpc(net.IW{1},net.b{1}); axis([-2 2 -2 2]); 这个感知器正确的区分了我们的新点(用红色表示)作为”zero”类(用圆圈表示), 而不是”one”类(用+号表示),尽管需要比较长的训练时间,这个感知器仍然适当的进 行了学习。最后放大感兴趣的区域BP网络多层前馈网络 传递函数:隐层采用S形函数,输出层S形函数或线性函数主要功能: 函数逼近, 模式识别, 信息分类,数据压缩BP网络的生成newff函数newff用来生成一个BP网络net=newff(PR,[S1 S2...SN],{TF1 TF2... TFN},BTF,BLF,PF) PR: 一个R×2矩阵, 由R维输入向量的每维最小值和最大值组成 Si: 第i层的神经元个数 TFi: 第i层的传递函数, 默认为tansig BTF: 训练函数, 默认为trainlm BLF: 学习函数, 默认为learngdm PF: 性能函数, 默认为mse net=newff([0,10;-1,2],[5,1],{‘tansig’,’purelin’},’trainlm’);%生成一个两层BP网络,隐层和输出层神经的个数为5和1, 传递函数分别为 tansig和purelin, 训练函数为trainlm, 其他默认BP网络的初始化newff 函数在建立网络对象的同时, 自动调用初始化函数, 根据缺省的参数对网络的连接权值和阈值. 使用函数init可以对网络进行自定义的初始化. 通过选择 初始化函数, 可对各层连接权值和阈值分别进行不同的初始 化.BP网络的学习规则权值和阈值的调节规则采用误差反向传播算法(back propagation). 反向 传播算法分二步进行,即正向传播和反向传播。1.正向传播输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层 之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对 下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比 较,如果现行输出不等于期望输出,则进入反向传播过程。2.反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个 隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。BP算法实质是求取误差函数的最小值问题。这种算法采用非 线性规划中的最速下降方法,按误差函数的负梯度方向修改 权系数。BP网络的快速学习算法与选择MATLAB神经网络工具箱对常规BP算法进行改进,提供 了一系列快速算法,以满足不同问题的需要学习算法 trainlm trainrp trainscg trainbfg traingdx 适用问题类型函数拟合收敛性能收敛快,误差小占用存储空间大其他特点性能随网络规模 增大而变差 性能随网络训练 误差减小而变差 尤其适用于网络 规模较大的情况 计算量岁网络规 模的增大呈几何 增长 适用于提前停止 的方法模式分类 函数拟合 模式分类 函数拟合收敛最快 收敛较快 性能稳定 收敛较快较小中等较大模式分类收敛较慢较小BP网络的训练利用已知的”输入―目标”样本向量数据对网络进行训练, 采用train 函数来完成. 训练之前, 对训练参数进行设置 net = train(net, P, T)训练参数net.trainParam.epochs net.trainParam.show net.trainParam.goal net.trainParam.time net.trainParam.lr参数含义训练步数 显示训练结果的间隔步数 训练目标误差 训练允许时间 学习率默认值100 25 0 INf 0.01BP网络的设计(1)网络层数已经证明,单隐层的BP网络可以实现任意非线性映射. BP网络的隐层数一般不超过两层.输入层的节点数输入层接收外部的输入数据, 节点数取决于输入向量 的维数输出层的节点数输出层的节点数取决于输出数据类型和该类型所需 的数据大小. 对于模式分类问题,节点数为 log 2 mBP网络的设计(2)隐层的节点数隐层的节点数与求解问题的要求,输入输出单元数多 少有关. 对于模式识别/分类的节点数可按下列公式设计n = ni + n0 + a其中 n 为隐层节点数, ni 为输入节点数, a 为1~10之间的整数传递函数隐层传递函数采用S型函数, 输出层采用S型函数或 线性函数训练方法及其参数选择针对不同应用, BP网络提供了多种训练学习方法.BP网络设计实例采用动量梯度下降算法训练BP网络. 训练样本%定义训练样本 p=[-1 -1 3 1;-1 1 5 -3]; t=[-1 -1 1 1]; %创建一个新的BP网络 net=newff(minmax(p),[3 1],{'tansig','purelin'},'traingdm'); %设置训练参数 net.trainParam.epochs=1000; net.trainParam.goal=0.001; net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.mc=0.9;%动量因子,缺省为0.9 net=train(net,p,t); % 训练网络 A=sim(net,p) %网络仿真训练误差变化曲线(每次不同)训练误差变化曲线目标线实验2: 网络用于曲线拟合 实验 BP网络用于曲线拟合? 要求设计一个简单的BP网络,实现对非线性函数 的逼近。通过改变该函数的参数以及BP网络隐层 神经元的数目,来观察训练时间以及训练误差的 变化情况。Step1: 将要逼近的非线性函数设为正弦函数k = 1; p = [-1:.05:1]; t = sin(k*pi*p); plot(p,t,'-') title('要逼近的非线性函数'); xlabel('时间'); ylabel('非线性函数');? Step 2: 网络建立 应用函数newff()建立BP网络结构,为二层BP 网络。隐层神经元数目n可以改变,暂设为 10,输出层有一个神经元。选择隐层和输 出层神经元传递函数分别为tansig函数和 purelin函数,网络训练算法采用trainlmn = 10; net = newff(minmax(p), [n,1], {'tansig' 'purelin'}, 'trainlm'); % 对于该初始网络,可以应用sim()函数观察网络输出 y1 = sim(net,p); % 同时绘制网络输出曲线,并与原函数相比较 plot(p,t,'-',p,y1,'--') title('未训练网络的输出结果'); xlabel('时间'); ylabel('仿真输出 - - 原函数 -');因为使用newff()函数建立网 络时,权值和阈值的初始化 是随机的,所以网络输出的 结果很差,根本达不到函数 逼近的目的,并且每次运行 结果也有所不同。? Step 3: 网络训练 ? 应用函数train()对网络进行训练之前,要先设置训练 参数。将训练时间设置为50,精度设置为0.01,其余 用缺省值。 ? 训练后得到的误差变化过程如图:net.trainParam.epochs = 50; net.trainParam.goal = 0.01; net = train(net,p,t);Stet 4: 网络测试 对于训练好的网络进行仿真 并绘制网络输出曲线,与原始非线性函数曲线以及未训 练网络的输出结果曲线相比较y2 = sim(net,p); plot(p,t,'-',p,y1,'--',p,y2,'-.') title('训练后网络的输出结果'); xlabel('时间'); ylabel('仿真输出'); 从图中可以看出,得到的曲 线和原始的非线性函数曲线 很接近。这说明经过训练后, BP网络对非线性函数的逼近 效果相当好。讨论? 改变非线性函数的频率k值,和BP网络隐层神经元 的数目,对于函数逼近的效果有一定的影响。 ? 网络非线性程度越高,对于BP网络的要求就越高, 则相同的网络逼近效果要差一些;隐层神经元的 数目对于网络逼近效果出有一定的影响,一般来 说,隐层神经元数目越多,则BP网络逼近能力越 强,而同时网络训练所用的时间相对来说也要长 一些。 ? 关于这些,大家可以自己通过参数调整试一试, 并在实验报告中有所反映。思考题(1)设计一BP网络逼近函数z=ex2 + y 2(2)设计一BP网络实现数字或字母的识别实验要求完成实验一和实验二 选做思考题(1或2) 用统一封面,上交电子稿时间:11月5日前 邮箱:liang_ru_ 需给出实验得出的相关的结果图;在每幅图的下方, 需对该图进行必要的文字解释。
MATLAB神经网络工具箱及实验要求―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。神经网络工具包 bp神经网络运行结果分析_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:76,527贴子:
神经网络工具包 bp神经网络运行结果分析收藏
请问下分类器设计好后,运行结果界面出现的plot中的performance,training state,regression分别是什么意思,打开后里面的纵坐标是什么意思。另外请问一下怎么查看误纳率和误拒率。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或18用MATLAB神经网络工具箱开发BP网络应用
上亿文档资料,等你来发现
18用MATLAB神经网络工具箱开发BP网络应用
第21卷第8期2001年8月;文章编号:01)08-0;计算机应用ComputerApplication;用MATLAB神经网络工具箱开发BP网络应用;闵惜琳1,刘国华2;(1.广东工业大学,广东广州510090;??2;摘??要:论述了人工神经网络的基本理论,并给出利;关键词:MATLAB;人工神经网络(ANN);工;????人工神
第21卷第8期2001年8月文章编号:01)08-0163-02计算机应用ComputerApplicationsVol.21,No.8Aug.,2001用MATLAB神经网络工具箱开发BP网络应用闵惜琳1,刘国华2(1.广东工业大学,广东广州510090;??2.北京科技大学理化系,北京100083)摘??要:论述了人工神经网络的基本理论,并给出利用MATLAB神经网络工具箱开发BP网络应用的要点。关键词:MATLAB;人工神经网络(ANN);工具箱中图分类号:TP311.52????文献标识码:A????人工神经网络(ArtificialNeuralNetworks,ANN)是近年来发展起来的模拟人脑生物过程的人工智能技术。它由大量的、同时也是很简单的处理单元(神经元)广泛互连形成的复杂的非线性系统[1]。它不需要任何先验公式,就能从已有数据中自动地归纳规则,获得这些数据的内在规律,具有很强的非线性映射能力,特别适合于因果关系复杂的非确性推理、判断、识别和分类等问题。人工神经网络可通过硬件或软件方式来实现。硬件方式即神经计算机。目前较常用的还是软件实现方式。已有许多公司和研究单位设计了通用的AAN程序以方便人们使用,MATLAB提供的神经网络工具箱就是其重要代表。MATLAB是由MathWorks公司推出的高性能的科技应用软件,在学术界和工业界都得到了广泛的应用。与Basic、Fortran、Pascal和C等编程语言相比,MATLAB具有程序可读性强、调试简单等特点,尤其是在编写含矩阵运算的复杂程序时,能给用户提供极大的方便[2]。MATLAB之所以功能强大是因为它提供了许多工具箱,其中神经网络工具箱是以人工神经网络理论为基础,用MATLAB语言构造出了该理论所涉及的公式运算、矩阵操作和方程求解等大部分子程序,以用于神经网络设计和训练。用户只要根据自己的需要调用相关程序,免除了自己编写复杂而庞大的算法程序的困扰[3]。由于在人工神经网络的实际应用中,80%~90%的神经网络模型都是采用BP网络或它的变化形式,所以,本文将以MATLAB5.3为开发环境,论述利用其神经网络工具箱开发BP网络应用的要点。1.1??神经元神经元是神经网络最基本的组成部分。一般地,神经元模型如图1所示。该神经元有n个输入,所有输入通过一个权重w进行加权求和后加上偏置量再经传递函数的作用后即为该神经元的输出。传递函数可以是任何可微的函数,常用的有Sigmoid型和线性型。1.2??网络的拓扑结构图2??一个三层BP网络结构神经网络的拓扑结构是指神经元之间的互连结构。图2是一个三层的BP网络结构。BP网络通常有一个或多个Sigmoid隐含层和一个线性输出层。这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输出限制在-1和1之间。在MATLAB中,可用NEWFF函数来确定网络层数、每层中的神经元数和传递函数,其语法为:NET=NEWFF(PR,[S1S2,??,SN],{TF1TF2,??,TFN},BTF)1??BP网络的结构BP网络是一种多层前馈神经网络,该名是由于其权值的调整采用反向传播(BackPropagation)的学习算法而得。构造一个BP网络需要确定其处理单元??????神经元的特性和网络的拓扑结构。其中PR是一个由每个输入向量的最大最小值构成的Rx2矩阵,Si是第i层网络的神经元个数,TFi是第i层网络的传递函数,缺省为TANSIG,可使用的传递函数有TANSIG、LOGSIG或PURELIN。BTF是训练函数,可在如下函数中选择:TRAINGD、TRAINGDM、TRAINGDX、TRAINBFG、TRAINLM等。NEWFF在确定网络结构后会自动调用INIT函数用缺省参数来初始化网络中各个权重和偏置量,产生一个可训练的前馈网络,即该函数的返回值NET。2??BP网络的训练初始化后的网络即可用于训练,即将网络的输入和输出图1??神经元模型反复作用于网络,不断调整其权重和偏置量,以使网络性能函????作者简介:闵惜琳(1974-),女,助教,硕士,主要研究方向:管理信息系统、决策支持系统;??刘国华(1974-),男,博士研究生,主要研究方向:人工智能、计算机辅助材料设计.??164??????计算机应用1N2001年2数NET.performFcn达到最小。从而实现输入输出间的非线性映射。对于NEWFF函数产生的网络,其缺省的性能函数是网络输出和实际输出间的均方差MSE。在MATLAB中训练网络有两类模式:逐变模式(incrementalmode)和批变模式(batchmode)。在逐变模式中,每一个输入被作用于网络后,权重和偏置量被更新一次。在批变模式中,所有的输入被应用于网络后,权重和偏置量才被更新一次。使用批变模式不需要为每一层的权重和偏置量设定训练函数,而只需为整个网络指定一个训练函数,使用起来相对方便,而且许多改进的快速训练算法只能采用批变模式,所以,在这里我们只讨论批变模式。以批变模式来训练网络的函数是TRAIN,其语法为:NET=TRAIN(NET,P,T),其中P和T分别为输入输出矩阵,NET为由NEWFF产生的要训练的网络。TRAIN根据在NEWFF函数中确定的训练函数,如:TRAINGD、TRAINGDM、TRAINGDX、TRAINBFG、TRAINLM等来训练网络。不同的训练函数对应不同的训练算法,TRAINGD对应最基本的的反传算法????????梯度法;TRAINGDM是采用了附加动量法对梯度进行了改进;TRAINGDX采用了在训练过程中不断调整学习速率的技术;用共轭梯度法进行训练的函数有:TRAINCGF(采用Fletcher-Reeves搜索技术)、TRAINCGP(采用Polak-Ribiere搜索技术)、TRAINCGB(采用Powell-Beale搜索技术);TRAINBFG是基于拟牛顿法的训练函数;TRAINLM是用Levenberg-Marquardt数值优化法来实现反传算法的。各算法的快慢及内存要求依问题的复杂程度、训练集大小、网络的大小及误差要求的不同而有所不同。一般来讲,对于含有几百个权重的网络,Levenberg-Marquardt算法有最快的收敛速度。该算法需要大的内存,可通过增大参数mem??reduc的值来减少内存的使用量。需要注意的是:减少内存使用量实际是通过将雅可比矩阵分解为一个个小的亚矩阵来实现的,每次只计算其中一个亚矩阵,这势必增加计算时间,所以,如果有足够的内存,应该将mem??reduc参数设为1,即每次都计算整个雅可比矩阵。拟牛顿算法的速度仅次于Levenberg-Marquardt算法而比共轭梯度法的速度快,内存的需要量也介于这二者之间。在共轭梯度法中,TRAINCGB需要的内存数量最多,但通常也能最快收敛。总地来讲,基于共轭梯度法、拟牛顿算法和Levenberg-Marquardt法等数值优化算法的训练函数的效率比基于启发式算法的TRAINGD、TRAINGDM、TRAINGDX的效率高。i=1??(ei)N。在上述性能函数的基础上,加一项网络权重和偏置量的平方和,即以MSEREG=??MSE+(1-??)MSW(其1中,MSW=Nj=1??wjn2,??为性能比例)为性能函数,可以在一定程度上抑制过拟合。编程时需要将网络性能函数的缺省值MSE改为MESREG,即:NET.performFcn=??msereg??,并指定性能比例值,如:NET.performParam.ratio=0.5。(2)提前结束训练提前结束训练的方法是将样本数据分成训练集和监控集两部分,训练集数据用于更新网络权重和偏置量,监控集用来防止网络过拟合的出现,它是通过在网络训练过程中计算自身的误差变化来监控网络训练的。通常情况下,在网络训练初期,监控集误差和训练集误差一样会不断减小,而当网络训练到一定时间后,监控集的误差开始增大,如果该误差一直增大,可以认为网络训练出现了过拟合,训练就会被停止,并返回监控集误差最小时的网络权重。4??数据预处理如果对神经网络的输入和输出数据进行一定的预处理,可以加快网络的训练速度。MATLAB中提供的预处理方法有归一化处理(将每组数据都变为-1至1之间数,所涉及的函数有PREMNMX、POSTMNMX、TRAMNMX)、标准化处理(将每组数据都为均值为0,方差为1的一组数据,所涉及的函数有PRESTD、POSTSTD、TRASTD)和主成分分析(进行正交处理,减少输入数据的维数,所涉及的函数有PREPCA、TRAPCA)。下面以归一化处理为例说明其用法,另外两种预处理方法的用法与此类似。对于输入矩阵P和输出矩阵T进行归一化处理的语句为:[PN,MINP,MAXP,TN,MINT,MAXT]=PREMNMX(P,T);训练时应该用归一化之后的数据,即:NET=TRAIN(NET,PN,TN);训练结束后还应对网络的输出AN=SIM(NET,PN)作如下处理:A=POSTMNMX(AN,MINT,MAXT);当用训练好的网络对新数据PNEW进行预测时,也应作相应的处理:PNEWN=TRAMNMX(PNEW,MINP,MAXP);ANEWN=SIM(NET,PNEWN);ANEW=POSTMNMX(ANEW,MINT,MAXT);5??结束语需要指出的是,除BP网络应用外,利用MATLAB工具箱还可以设计径向基函数网络、自组织映射网络和HOPFIELD[4]网络等神经网络模型。参考文献[1]??胡守仁.神经网络导论[M].长沙:国防科技大学出版社,1993.[2]??陈以新.MATLAB的几则程序设计经验[J].计算机应用,1999,19(9):54-56[3]??丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社,1998.[4]??楼顺天,施阳.基于MATLAB的系统分析与设计??????神经网络.:,3??对过拟合的处理网络训练有时会产生??过拟合??,所谓??过拟合??就是训练集的误差被训练的非常小,而当把训练好的网络用于新的数据时却产生很大的误差的现象,也就是说此时网络适应新情况的泛化能力很差。提高网络泛化能力的方法是选择合适大小的网络结构。选择合适的网络结构是困难的,因为对于某一问题,事先很难判断多大的网络是合适的。为了提高泛化能力可用修改性能函数和提前结束训练两类方法来实现。(1)修改性能函数能数是网方差:包含各类专业文献、中学教育、文学作品欣赏、外语学习资料、专业论文、应用写作文书、18用MATLAB神经网络工具箱开发BP网络应用等内容。
基于MATLAB 神经网络工具箱的 BP 网络设计摘要 本文介绍了 MATLAB 神经网络工具箱及其常用的工具箱函数;在说明 BP 网络的模型结构和算法的基础 上,讨论了 BP 网络... BP 神经网络 matlab 实现和 matlab 工具箱使用实例 经过最近一段时间的神经网络学习,终于能初步使用 matlab 实现 BP 网络仿真试验。这里特别感谢 研友 sistor2004 ... 26 基于 MATLAB 的 BP 神经网络应用 基于 MATLAB 的 BP 神经网络应用蒋亮亮...神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实际问 题的建模... Matlab人工神经网络工具箱中的BP工具函数及其应用Matlab人工神经网络工具箱中的BP工具函数及其应用隐藏&& 维普资讯
维普资讯 http://www.cqvi... BP 神经网络 matlab 实现和 matlab 工具箱使用实例 经过最近一段时间的神经网络学习,终于能初步使用 matlab 实现 BP 网络仿真试验。这里特别感谢 研友 sistor2004 ... 应用MATLAB神经网络工具箱和BP网络建立预测数学模型在火力发电厂中,由于各电厂输水管道、主蒸汽管道以及汽包的形状和大小都 各不相同,而且大部分汽包是椭球形或球形,... 用MATLAB神经网络工具箱开... 2页 8财富值 BP神经网络应用 21页 2财富值 MATLAB...1)开发现有模型的应用,并在应用中根据实际运行情况对模型、算法加以改造,以... 26 基于 MATLAB 的 BP 神经网络应用 基于 MATLAB 的 BP 神经网络应用蒋亮亮...神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实 际问题的建模... VB调用Matlab神经网络工具箱在测绘软件设计中的应用_IT/计算机_专业资料。VB 调用...(5)trainlm:BP 网络训练函数,该函数采用 L-M 优化算法。 函数及优化 3.2 ...