matlab有关神经网络的函数,MATLAB神经网络之各函数介绍

41528d3028836879cd698677c3999917.gifMATLAB神经网络之各函数介绍

绘制三维图形 clear all; [x,y]=meshgrid(-8:0.1:8); z=sinc(x); mesh(x,y,z);效果图如下 set(gcf, color , w );设置图形窗口背景为白色 修改z的赋值 clear all; [x,y]=meshgrid(-10:0.3:10); r=sqrt(x.^2+y.^2)+eps; z=sin(r)./r; mesh(x,y,z) 初始化函数 clear all; net=newp([0,1;-2,2],1); disp( ³õʼ»¯Ö®Ç°µÄȨֵÊÇ£º ) w1=net.iw{1,1} disp( ³õʼ»¯Ö®Ç°µÄ·§ÖµÎª ) b1=net.b{1} net.iw{1,1}=[5,6]; disp( ¡£¡£¡£È¨ÖµÎª ) w2=net.iw{1,1} net.b{1}=7; disp( ·§ÖµÎª ) b2=net.b{1} net=init(net);利用网络初始化复原网络权值和阀值 w3=net.iw{1,1} b3=net.b{1} 例子:利用init函数将网络输入的权值与阀值改变为随机数 >> clear all; net=newp([0,1;-2,2],1); net.weights{1,1}.initFcn= rands ; net.biases{1}.initFcn= rands ; net=init(net);检验权值和阀值 w=net.iw{1,1} b=net.b{1} w = 0.8116 -0.7460 b = 0.6294 >> 感知器 plotpv函数:用于在坐标中绘制给定的样本点及其类别 plotpc函数:用于绘制感知器分界线 clear all; p=[-0.5,-0.5,0.3,-0.1,-0.8;-0.5,0.5,-0.5,1.0,0.0]; t=[1,1,0,0,0]; plotpv(p,t);绘制样本节点 net=newp([-40,1;-1,50],1); hold on linehandles=plotpc(net.IW{1},net.b{1}); net.adaptParam.passes=3; linehandle=plotpc(net.IW{1},net.b{1}); for a=1:25 [net,y,e]=adapt(net,p,t); linehandle=plotpc(net.iw{1},net.b{1},linehandle); drawnow; end title( the kind of xiangliang ) 仿真函数 在matlab中提供了sim函数,对于神经网络进行仿真,格式: [y,pf,af,perf]=sim(net,p,pi,ai,t) [y,pf,af]=sim(net,{q ts},pi,ai) 设计一个输入为二维向量的感知器网络,其边界值已定。 clear all; at compact net=newp([-2,2;-2,2],1); net.IW{1,1}=[-1,1]; net.b{1}=[1]; p1=[1;1]; a1=sim(net,p1) p2=[1;-1]; a2=sim(net,p2) p3={[1;1],[1;-1]}; a3=sim(net,p3) 得到 a1 = 1 a2 = 0 a3 = [1] [0] 性能函数 Matlab神经网络工具箱提供了mae函数,用于求网络的平均绝对误差性能。感知器的学习规则为调整网络的权值和阀值,使得网络的平均绝对误差和最小。调用格式: Perf=mae(e,y,x,fp) Dperf_dy=mae(‘dy’,e,y,x,perf,fp) Dperf_dx=mae(‘dx’,e,y,x,perf,fp) Info=mae(‘code’) 其中,e为误差矩阵或向量(e=t-y, t表示网络的目标向量);y是网络的输出向量(可以忽略);x为所有权值和偏值向量;fp为性能参数,perf表示平均绝对误差;dperf_dy表示返回perf对y的导数;mae(code)将根据code值的不同,返回不同的信息; 返回的信息包括: 当code=name时,表示返回函数全称 当code=pnames时,表示返回训练参数的名称 当code=pdefaults时,表示返回默认的训练参数 创建一个感知器神经网络,求其平均绝对误差 clear all; net=newp([-10,10],1); p=[-10,-5,0,5,10]; t=[0,0,1,1,1]; y=sim(net,p) e=t-y perf=mae(e) 得到: y = 1 1 1 1 1 e = -1 -1 0 0 0 perf = 0.4000 训练函数 函数:train函数,用于训练一个神经网络。网络训练函数是一个通用的学习函数,训练函数重复的把一组输入向量应用到一个网络上,每次都更新网络,直到达到某种准则。停止准则的可能是最大的学习次数,最小的误差梯度或者误差目标。 格式:[net,tr,y,e,pf,af]=train(net,p,t,pi,ai) 其中,net 是训练后的网络,tr为训练纪录,y为网络输出,e为误差向量;pf为训练终止时的输入延时状态,af为训练终止时的层延时状态; 其中,net为训练之前的网络,p为网络的输入向量矩阵;t表示网络的目标矩阵,默认值是0;pi表示初始输入延时,默认值是0;ai表示初始的层延时,默认值是0; 本例子尝试建立一个感知器模型,实现电路“或”们的功能,从而实现对输入的分类 clear all; p=[0,0,1,1;0,1,0,1]; t=[0,1,1,1]; net=newp(minmax(p),1); y=sim(net,p) net.trainParam.epochs=20; net=train(net,p,t); y=sim(net,p); err1=mae(y-t) plotpv(p,y) title( ÏòÁ¿Àà±ð ) 得到: y = 1 1 1 1 err1 = 0 adapt函数 该函数为学习自适应函数,其在每一个输入时间阶段更新网络时仿真网络。 格式:[net,y,e,pf,af,tr]=adapt(net,p,t,pi,ai)参数意义与train函数一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值