神经计算基础感知器MATLAB仿真程序设计学习PPT教案.pptx
上传人:王子****青蛙 上传时间:2024-09-12 格式:PPTX 页数:45 大小:371KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

神经计算基础感知器MATLAB仿真程序设计学习PPT教案.pptx

神经计算基础感知器MATLAB仿真程序设计学习PPT教案.pptx

预览

免费试读已结束,剩余 35 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3神经计算基础3.2感知器(补充材料)1943年,W.McCulloCh和W.Pitts就提出了第一个人工神经元模型,称之为MP模型缺乏与生物神经元类似的学习能力美国学者罗森布拉持(F.Rosenblatt)于1958年提出了感知器(perceptron)神经网络模型提出了一种感知器的训练算法成功应用于模式分类问题解决线性可分的问题时,运算速度快,性能可靠为更好地理解其他复杂的神经网络模型奠定基础3.1感知器神经元及感知器神经网络模型3.2感知器的学习3.3感知器的局限性3.4单层感知器神经网络的MATLAB仿真程序设计1感知器神经网络设计的基本方法2单层感知器神经网络的设计例程3.5多层感知器神经网络及其MATLAB仿真1多层感知器神经网络的设计方法2多层感知器神经网络的设计例程3.6感知器应用于线性分类问题的进一步讨论3.1感知器神经元及感知器神经网络模型3.1感知器神经元及感知器神经网络模型3.2感知器的学习t表示目标输出,a表示实际输出,则e=t-a(3.1)网络训练的目的就是要使ta当e=0时,得到最优的网络权值和阈值;当e>0时,说明得到的实际输出小于目标输出,应增加网络权值和阈值;当e<0时,说明得到的实际输出大于目标输出,应减小网络权值和阈值。一般感知器的传输函数为阈值型函数,网络的输出a只可能为0或1训练样本集{p1,t1},{p2,t2},…,{pn,tn}(3.2)权值阈值调整算法W(k+1)=W(k)+epT(3.3)b(k+1)=b(k)+e(3.4)式中:e——误差向量,e=t-a;W——权值向量;b——阈值向量;p——输入向量;k——表示第k步学习过程。输入向量的取值范围很大,一些输入的值太大,而一些输入的值太小解决办法:阈值调整仍然按式(3.4)进行,而权值的调整可以采用归一化算法,即单层感知器的学习过程单层感知器的学习过程因为输出a等于目标值t2,所以无需调整权值和阈值:W(2)=W(1)=[-2-2]b(2)=b(1)=-1(4)第三次迭代:以第三个输入样本作为输入向量,以w(2),b(2)进行计算:a=f(n)=f[W(2)p3+b(2)]=f([-2-2][-2-2]’+(-1))=f(-1)=0e=t3-a=0-0=0因为输出a等于目标值t3,所以无需调整权值和阈值:W(3)=W(2)=[-2-2]b(3)=b(2)=-1(5)第四次迭代:以第四个输入样本作为输入向量,以W(3),b(3)进行计算:a=f(n)=f[W(3)p4+b(3)]=f([-2-2][-10]’+(-1))=f(11)=1e=t4-a=1-1=0因为输出a等于目标值t4,所以无需调整权值和阈值:W(4)=W(3)=[-2-2]b(4)=b(3)=-1(6)以后各次迭代又从以第一个输入样本开始,作为输入向量,以前一次的权值和阈值进行计算,直到调整后的权值和阈值对所有的输入样本,其输出的误差为零为止。进行第五次迭代:a=f(n)=f[W(4)p1+b(4)]=f([-2-2][22]’+(-1))=f(-9)=0e=t1-a=0-0=0因为输出a等于目标值t4,所以无需调整权值和阈值:W(5)=W(4)=[-2-2]b(5)=b(4)=-1可以看出W=[-2-2],b=-1对所有的输入样本,其输出误差为零,所以为最终调整后的权值和阈值。(7)因为n>0时,a=1;n≦0时,a=0,所以以n=0作为边界,根据训练后的结果画出分类示意图,如图所示。3.3感知器的局限性3.4MATLAB仿真程序设计单层感知器神经网络的设计例程由数字0-9构成的输入向量见表3.1单层感知器神经网络的设计例程例3.3设计一单层双输出感知器神经网络,进行二值化图像卡片上数字的奇偶分类。解(1)问题分析和神经网络设计设a1a2=10,表示偶数;a1a2=01,表示奇数;则a1a2=00为拒识状态;a1a2=11为错识状态。而其他分析同例3.2,设计的感知器神经网络结构示意图如图3.9所示单层感知器神经网络的设计例程单层感知器神经网络的设计例程3.5多层感知器神经网络及其MATLAB仿真多层感知器神经网络的设计例程多层感知器神经网络的设计例程多层感知器神经网络的设计例程多层感知器神经网络的设计例程%初始化第二感知器层pr2=[01;01;01];%设置第二感知器层输入向量每个元素的值域net2=newp(pr2,1);%定义第二感知器层%训练第二感知器层net2.trainParam.epochs=1000;net2.trainParam.show=1;p2=ones(3,4);%初始化第二感知器层的输入向量p