最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MATLAB神经网络之各函数介绍

来源:动视网 责编:小OO 时间:2025-09-24 09:03:23
文档

MATLAB神经网络之各函数介绍

绘制三维图形clearall;[x,y]=meshgrid(-8:0.1:8);z=sinc(x);mesh(x,y,z);效果图如下set(gcf,'color','w');设置图形窗口背景为白色修改z的赋值clearall;[x,y]=meshgrid(-10:0.3:10);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;mesh(x,y,z)初始化函数clearall;net=newp([0,1;-2,2],1);disp('³õʼ»¯Ö®Ç°µÄȨֵÊÇ£º
推荐度:
导读绘制三维图形clearall;[x,y]=meshgrid(-8:0.1:8);z=sinc(x);mesh(x,y,z);效果图如下set(gcf,'color','w');设置图形窗口背景为白色修改z的赋值clearall;[x,y]=meshgrid(-10:0.3:10);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;mesh(x,y,z)初始化函数clearall;net=newp([0,1;-2,2],1);disp('³õʼ»¯Ö®Ç°µÄȨֵÊÇ£º
绘制三维图形

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.inputweights{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;

format 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函数一致

对一个神经网络进行自适应训练

clear all;

p1={-1,0,1,0,1,1,-1,0,-1,1,0,1};

t1={-1,-1,1,1,1,2,0,-1,-1,0,1,1};

net=linearlayer([0,1],0.5);

[net,y,e,pf]=adapt(net,p1,t1);

while(mae(e)<1e-20)

    [net,y,e,pf]=adapt(net,p1,t1);

end

mae(e)            %平均绝对误差

得到:

ans =

    0.4196

文档

MATLAB神经网络之各函数介绍

绘制三维图形clearall;[x,y]=meshgrid(-8:0.1:8);z=sinc(x);mesh(x,y,z);效果图如下set(gcf,'color','w');设置图形窗口背景为白色修改z的赋值clearall;[x,y]=meshgrid(-10:0.3:10);r=sqrt(x.^2+y.^2)+eps;z=sin(r)./r;mesh(x,y,z)初始化函数clearall;net=newp([0,1;-2,2],1);disp('³õʼ»¯Ö®Ç°µÄȨֵÊÇ£º
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top