第二章 感知器实现_第1页
第二章 感知器实现_第2页
第二章 感知器实现_第3页
第二章 感知器实现_第4页
第二章 感知器实现_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

神经元

---标量样本6.2.2.MatLab实现神经元

---向量样本6.2.2.MatLab实现神经元

---向量样本R:输入向量p的维数。n=w11*p1+w12*p2+...+w1R*pR+b1*16.2.2.MatLab实现=W

*P+b神经网络

---多个神经元6.2.2.MatLab实现样本P:R个分量;神经元:S个。1: w11、w12、...w1R,b12: w21、w22、...w2R,b2 ......S: wS1、wS2、...wSR,bS6.2.2.MatLab实现神经网络

---多个神经元S个权:SRS个阈值:S16.2.2.MatLab实现神经网络

---多个神经元

由于输入层的作用仅仅是输入样本,因此,有人认为不应算作一层,而将感知器网络看作是单层网络。说明感知器网络输入层:每个样本P有R个分量,维数为:R1;输出层:S个神经元,权WSR、阈值bS1;二层网络:输入层、输出层。函数

---f(•)

TransferfunctionHardlimtransferfunction6.2.2.MatLab实现函数

---f(•)

Transferfunction6.2.2.MatLab实现purelintransferfunction函数

---f(•)

Transferfunction6.2.2.MatLab实现logsigtransferfunction例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(1).创建单个感知器:net=newp([-22;-22],1);创建的单个感知器如下:p1p2w1,2w1,11θa例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现输入样本P21,两个分量(二元),取值范围分别为:p1:-2~2;p2:-2~2;(1).创建单个感知器:net=newp([-22;-22],1);例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(1).创建单个感知器:net=newp([-22;-22],1);提供2个待分类的样本:例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(1).创建单个感知器:net=newp([-22;-22],1);样本分布:例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(2).查看net参数W和b,其值均为0:>>net.

IW{1,1}ans= 0 0>>net.

b{1}ans= 0设置网络net参数:net.

IW{1,1}=[-11]; %w11=-1、w12=1net.

b{1}=[1]; %b1=1例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(3).网络实际输出:a1=sim(net,p1);a2=sim(net,p1);查看输出:>>a1

a1=

1>>a2

a2=

0可见,网络net将样本分为了

1和0两类。例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现(1).创建单个感知器:net=newp([-22;-22],1);样本分类:w11=-1、w12=1、b=1方程:-p1+p2+1=06.2.2.MatLab实现net=newp([-22;-22],1);%感知器:2维输入、单神经元.%观察参数:net.IW{1,1}、net.b{1},其值均为0,即:w=0、b=0.net.IW{1,1}=[-11];%w11=-1、w12=1、b1=1.net.b{1}=[1];

p1=[1;1];%样本:p1、p2.p2=[1;-1];

a1=sim(net,p1);%a1=1.a2=sim(net,p2); %

a2=0.正确两分类程序NN_06016.2.2.MatLab实现clf; gridon; %设置绘图属性holdon; axis([-24-24]);plot(p1(1),p1(2),'bs','LineWidth',2.5,'MarkerEdgeColor','k',...'MarkerFaceColor','r','MarkerSize',10);plot(p2(1),p2(2),'ro','LineWidth',2.5,'MarkerEdgeColor','k',...‘MarkerFaceColor’,‘g’,‘MarkerSize’,10); %绘样本点text(p1(1),p1(2)+0.5,'p1','FontSize',20,'Color','r');text(p2(1),p2(2)-0.5,‘p2’,‘FontSize’,20,‘Color’,‘g’); %标识本点程序NN_06016.2.2.MatLab实现%网络参数w1=net.IW{1,1}(1);w2=net.IW{1,1}(2);b=net.b{1};%绘分界线:W*P'+b=0x1=[-2:0.1:4];x2=-(w1*x1+b)/w2;plot(x1,x2,'-b','LineWidth',2);%%或:plotpc(net.iw{1,1},net.b{1});程序NN_0601例.感知器.

(二元样本、单个感知器)6.2.2.MatLab实现线性不可分:示例.线性不可分---NN_0601a.m6.2.2.MatLab实现(1).初始化参数(W、b):说明创建网络net后,其参数(w、b)均初始化为0,可以对参数进行随机初始化:net.inputweights{1,1}.initFcn='rands‘;net.biases{1}.initFcn='rands‘;net=init(net);示例2.初始化w、b(init)---NN_0602.m示例3.样本绘图(plotpv、plotpc)---NN_0603.m6.2.2.MatLab实现(2).sim函数:计算网络net的输出,如:

a=sim(p,w,b)根据参数w、b,计算样本p的实际输出a。说明最后,通常需要计算一下误差,如:

a=sim

(p,w,b);

ifall(a==t),disp(′Itworks!′),end6.2.2.MatLab实现(3).learnp函数:单步训练感知器学习/训练,根据w、p和e,计算dw,如:

dw=learnp(w,p,[],[],[],[],e,[],[],[])则有:

w=w+dw; b=b+e;说明示例4.感知器学习过程(learnp)---NN_0604.m6.2.2.MatLab实现(4).train函数:连续训练

将全体样本输入到网络并学习,称为一遍(pass);通过网络net中的属性参数(epochs)来设置,如:说明p=[2;2]; %全体:1个样本。t=[0];net.trainParam.epochs=1; %训练:1遍。net=train(net,p,t);6.2.2.MatLab实现(4).train函数:连续训练

将全体样本输入到网络并学习,称为一遍(pass);通过网络net中的属性参数(epochs)来设置,如:说明p=[[2;2][1;-2][-2;2][-1;1]]; %全体:4个样本。t=[0101]net.trainParam.epochs=1; %训练:1遍。net=train(net,p,t); %即:训练4次(4个样本)。

6.2.2.MatLab实现(4).train函数:连续训练

实际上,网络训练并非train函数,它调用另一个训练函数,该函数在net中进行设定,如: 说明net.trainFcn: 'trainc’可见,train函数调用net.trainFcn所指定的函数来训练网络,这里设置为trainc函数。最后!trainc函数调用learnp函数。6.2.2.MatLab实现(4).train函数:连续训练

说明感知器训练函数:trainnet对象adaptFcn: 'trains'initFcn: 'initlay'performFcn: 'mae'trainFcn: 'trainc'......learnp示例5.感知器学习过程(train)---NN_0605.m例.二元样本、4组样本对,分为两类。6.2.2.MatLab实现输入:输出:例.二元样本、4组样本对,分为两类。6.2.2.MatLab实现分类问题,实际上就是寻找分界方程的解:即:例.二元样本、4组样本对,分为两类。6.2.2.MatLab实现一组可能的解:p1p2w1,2w1,11θa6.2.2.MatLab实现P=[-0.5-0.50.30;-0.50.5-0.51]; T=[1100];[RQ]=size(P); [SQ]=size(T);W=rands(S,R); B=rands(S,1);max_epoch=20;

A=hardlim(netsum(W*P,B));forepoch=1:max_epochifall(A==T)break;end程序NN_06066.2.2.MatLab实现%格式:[dwdb]=learnp(p1,e1)、[dwdb]=learnp(p1,a1,t1).e=T–A;[dW,dB]=learnp(P(:,1+mod(epoch-1,Q)),e(1+mod(epoch-1,Q)))W=W+dW;B=B+dB;A=hardlim(netsum(W*P,B));endclf;plotpv(P,T);程序NN_06066.2.2.MatLab实现%plotthedevidingline/plane:W*P'+b=0if(R==2)%二维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论