实例介绍
matlab 2015的神经网络工具箱包含的函数使用说明,包括网络仿真函数、训练函数、学习函数、初始化函数、输入函数、传递函数等,这些函数的格式说明、使用案例。
MATLAB R2015b神经网络技术 traingdm Gradient descent with momentum traingdx Gradient descent w/nomentum adaptive lr backpropagation trainlm Levenberg- Marquardt backpropagation trainoss- One step secant backpropagation rain Random order weight/ bias training Lrainrp RPROP backpropagation trainru Unsupervised random order weight/bias training trains Sequential order weight/bias training trainscg Scaled conjugate gradient backpropagation Plotting functions 号网终绘图函数 plotconfusion- Plot classification confusion matrix. ploterrcorr Plot autocorrelation of error time series ploterrhist Plot error histogram plotfit Plot function fit plotinerrcorr- Plot input to error time series cross-correlation plotperform lot network performance plotregrcssion- Plot lincar regrcssion plotrespanse Plot dynamic network time- series response potro Plot receiver operating characteristic plotsonhiL Plot self- orgar izing nap sample hiL. plotsomnc Plot Self organizing map neighbor connections plotsomnd Plot Self-organizing map neighbor distances plotsomplanes Ploz self- organizing map weight planes plotsomp Plot self- organizing map weight positions Plot self-or topol plottrainstate- Plot training state values PLot Hinton diagrams of weight and bias values 其怛的神经网络实现功能列表函数 Lists of other neural retwork implenentation functions adapt Adapt functio nndcrivativc Derivative functions Distance funct nndlvlsion Division functions inlayer Initialize layer functions ninitnetwork Initialize network functions nnini-weight In-tialize weight functions unlearn nnnetinput Net input functions nonperformance Performance functions inprocess Processing functions insearch Line search functions function nontransfer Transfer funct ions unweight Weight functions 第3章神 3.1神经网络仿真函数 络 在 MATLAB中,提供了sim()函数用于实现神经网络的仿真。函数的调用格式为:的 [Y, Pf, Af, E, perf]= sim(net, P, Fi, Ai, T) 通用图 其中,输入参数Y为风络的输出:P表示最终的输入延时状态;Af表示最终的层延时状数 态;E为实际输出与目标向量之间的误差;perf为网络的性能值;NET为要测试的网络 对象;P为网络的输入向量矩阵;Pi为初始的输人延时状态(可省略);Ai为初始的层延 时状态(可省略);T为标向量(可省略)。 LY,Pf,Af]=sim(net,{QTS},Pi,Ai):参数Q为批处理数据的个数,TS为网络 仿真的时间步数 【例3-1】设计一个输入为二维向量的感知器网络,其边界值已定。 clear all net=neWp([-22;-22],1) 为创建感知神经网络 给权值与阈值赋值 下面来看这个感知器网络对两个输入信号的输出如何,两个信号分别位于感知器两个边界 p1=[1;1] 号第一个输入信号 1- sim(neL, pl) 告对筼一个输入信号仿真 p2=[1;-1] 号第二个输入信号 a2=sim(net, p2) 号对笃二个输入信号进行仿真 8若将两个输入信号组成个数列,则输出量也为一个数列 p3={[1;1],[1;-1]} a3=sim(net, p3) 对数列进行仿真 运行程序,输出如下 1 d2 a3 [1][0] 3.2神经网络训练函数 MATLAR提供了几个通用函数用于实现神经网络的训练。下面分别予以介绍。 train函数 在 MATLAB中,提供了 train函数用于实现神经网络的训练。啄数的调用格式为: [net, tr,,e, ef, Af= train(net, P, T, Pi, Ai MATLAB R2015b神经网络技术 其中,输出参数net为训练后的网络;tr为训练记录:Y为网络输出向量:E为误差向 量;Pf为训练终止时的输入延迟状态;Af为训练终止时的层延迟状态。输入参数net 为训练前的网络;P为网络的输入向量矩阵;T表示网络的目标矩阵,默认值为0;Pi表 :示初始输人延时,默认值为θ;Ai表示初始的层延时,默认值为θ;VV为验证向量(可省 略);TV为测试向量(可省略) 网络训练函数是一种通用的学习函数,训练函数重复地把一组输入向量应用到一个 网络上,每次都更新网终,直到达到了某种准则,停止准则可能是达到最大的学习步数、 最小的误差梯度或误差目标等。 【例3-2】创建一个两层前馈网络,并进行训练。 x=[012345678]; t=[00.840.910.14-0.77-0.96-0.230.660.99]; plot(x, t, 'o') 号效果如图3-1所示 > net feedforwardnet(10) 号创建个两层前馈网络.该网络有-一个隐含层有十元 (net, x, t) 1 let(x) plot(x, t,o, x, y1, 'x') 号效果如图3-2所示 1 1.8260-0.14601.54862.13473.52094.67274.33513.44584.0257 对网络进行训练 >nct train(nct, x, t)i 8效果如图3-3所示 plot(x,t,'o',x,y1,x',x,y2,'')号效果如图3-4所示 0.00000.41790.86900.1400-0.7700-0.9600-0.28000.66000.9900 0.5 0 543210 0.5 2 2345678 012345678 图3-1散点图 图3-2包含十个隐含神经元散点图 2. trainb函数 在 MATLAB中,提供了 trainb用于神经网络权值和阈值的训练。函数的调用格 式为 met, trainFcn ='trainb :用于设置神经网络的训练为 trainb训练。 Neural Netwark Training (nntraintoon) Neural Netwerk 叶草 第3章神经网络的通用函 Data Division: Random (drviderand Training: Levenberg Marquardt (trainim Performance Mean Squared Error fe) Calculationg: MEX 3 iterations Performance 13 Gradient 17 194e-08 100e07 0.0100 100e+10 Validatiom Checks 6 ploti aining State(plettrainstate) Error Histogram(ploterrhist) Regression plotregrersionl 图3-3网络训练过程图 图3-4训练后散点图 net,tr]= train(net,…):net为训练后返回的神经网络,tr为每一步的训练记录 训练后需要设定以下参数,默认值如表3-1所示。 表3-1训练参数 训练参数名称 默认值 属性 net trainParam epochs 100 最人训练次数 net. trainParam. goal 0 性能参数 net. trainParam. max fail 确认失败的最大次数 net trainParam. min grad 最低性能梯度 net, trainParam, show 25 两次显示之间的训练步数(无显示时取NaN) net, trainParam show Command Line false 生成命令行输出 net, trainParam, show window true 显示训练窗口 net, trainparam, time 最大训练时间(单位,秒) 注意:该函数并不能被直接调用,而是通过函数 train隐含调用, train通过设置网络 属性NET. trainFcn为 trainb来调用 trainb对网络进行训练。 【例3-3】创建网络,并利用 trainb函数训练网络 clear all [012345 t=[000111] net feedforwardnet(3, 'trainb') net= train(net, p, t) y= net(p) 号仿真 MATLAB R2015b神经网络技术 运行程序,输出如下,效果如图3-5所示。 0.7460 4492 1.19240.7741 d Neural Network Training (nntraintool) Neural Network Hidden Out put Algorithms Data Division: Random (dividerand) Batch Weight/Bias Rule (trainb) Performance: Mean Squared Error (mse Calculations: MATLAB Progress Epoch 0 6 iterations s:00:01 Performance: 0.226 0.178 000 Gradient: 132 115 100e-06 Validation Checks: 0 Plots rmance (plotperform Training State(plottrainstate Error Histogram (ploterrhist) Regression (plotregression plot interval: l epochs 图3-5 trainb训练过程图 3. adapt函数 在 MATLAB中,提供了 adapt函数用于对神经网络进行自适应调节。函数的调用 格式为 [net, Y, e, Pf, Af]= adapt(net, P,T, Pi, Ai) 其中,输入参数net为待自适应的神经网络;P为网络输入;T为网络目标,默认为O;Pi 为初始输人延迟,默认为0;Ai为初始层延迟,默认为0;输出net参数为自适应后的神 经网络;Y为网络输出;E为网络误差;P!为最终输入延迟;A「为最终层延迟 【例3-4】对创建的感知器网络进行自适应训练。 clcar all p1={-101011-10-1101 一 创建一个线性层,输入范围为[-1,1],0和1的输入延迟,学习率为0.1 t=1 layer([01],0.1) [net, y, e, pf]= adapt(net, p1, t1) 号自适应调整 号平均绝对误差 运行程序,输出如下: ns 0.7006 第3章神经网络的通用函 3.3神经网络学习函数 在 MATLAB中,也提供了相关通用学习函数,下面予以介绍。 1. learnp函数 在 MATLAB中,提供了 learnp函数用于对感知器神经网络权值和阈值的学习。函 数的调用格式为 [ dW, LS]= learnp(,P, Z, N,A, T, E, gW, gA, D, LP, LS) 其中,参数dW为权值变化矩阵;LS为当前学习状态;W为S×R的权值矩阵(可省略); P为R×Q的输入向量矩阵;为S×Q的输人层的权值矩阵(可省略):N为S×Q的网 络输入矩阵(可省略);E为误差向量(E=T一Y);T表示网络的目标向量(可省略);A 表示网络的实际输出向量(可省略);gW为S×R的与性能相关的权值梯度矩阵(可省 略);gA为S×Q的与性能相关的输岀梯度值矩阵(可省略);D为S×S的神经元距离矩 阵(可省略);LP为学习参数(可省略);LS学习函数声明(可省略);db为返回阈值调整 量;b为S×1的阈值向量;ones(1,Q)为1×Q的全为1的向量。 在info= learnp(code')中,针对不同的code返回相应的有用信息,包括 ·当code= pnames时,返回函数全称; 当code= defaults吋时,返回默认的训练参数; 当code= need时,如果函数使用了gW或gA,则返回1。 【例3-5】利用 leant函数学习一个感知网络,使其同样能够完成“或”的功能。 err goal=0. 0015; 号设置期望误差最小值 max epoch=9999; 号设置训练的最大次数 =[0101;01101 号样本数据 T=[0111]; 8目标数据 net=newp(L01;01],1); 3创建感知器神经网络 8初始化 W= rand (12) b= rand th = 1: max epoch sse= mae(e) 计算网络权值修正后的平均绝对误差 MATLAB R2015b神经网络技术 if(sse <err_ _goal) IW= learnp(W,X,[],[],[],[],B,[],[],[],[],[]);号调整输出层加权系数和偏值 db=1 earP(b,ones(1,4),[],[],[],[],E,[],[],[],[],[]); W=W+ dW b=b+ db ,w, 运行程序,输出如下: 0.2785 0.5469 1 2. learnpn函数 该函数也是一个权值和阈值学勺函数,但它在输入向量的囁值变化非常大或存在奇 异值时,其学习速度比 learnp要快得多。两数的调用格式为: [dw, LS]= learnpn(W,, Z,N, A, I', E, gW, gA, D, LE, LS) info- lcarnpn('code' 参数含义可参见 learnp函数说明 【例3-6】定义一个二单元随机输入P和误差E的三个神经元,并比较用不同学习 函数用需时间。 clear all p =rand(2, 1) e= rand(3, 1) tl dW1=1 carmen([],p,[],[],[],[],e,[],[],[],[],[) dW2=1 earp(「1,p,「1,「1,「1,「1,e,「1,「1,「1,「1,「1) toc 运行程序,输出如下: dW1= 0.1360 0.1447 0.3 0.3228 时间已过0.295035秒。 d啊2 0.19580.2083 0.4822 0.5130 第3章神 0.4647 0.4944 时间已过0.096269秒。 3.4神经网络初始化函数 网络的通用函 在 MATLAB中,提供了若干通用初始化函数,下面予以介绍。 1. revert函数 该函数用于将更新后的权值和阈值恢复到最后一次初始化的值。函数的调用格 式为: net revert (net) 如果网络结构已经发生了变化,也就是说,如果网络的权值和阈值之间的连接关系, 以及输入、每层的长度与原来的网络结构有所不同,那么该函数无法将权值和阈值恢复 到原来的值。在这种情况下,函数将权值和阈值都设置为0。 【例3-7】创建一个输入大小为2,一个神经元的感知器,并用 revert对更改后的初 始值进行恢复处理。 clear all perceptron; input sl. size =2 输入大小为2 net layers 1. sizc=1 层数为1 disp('显示初始化网络权重与阈值:') net. iwf1,1 net. bf 1 更改以下这些值 net.iw{1,1}=[12]; net. bf1 disp('显示更改后的权值与阈值:') net iw(1, 1 net. b[1] 按如下恢复网络的初始值 net revert(net) disp('显示恢复网络的权值与阈值:') net iwl, l net. b(1] 运行程序,输出如下 显示初始化网终权重与阈值 ans ans 显示更改后的权值与阈值 ans ans 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论