- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用感知器进行分类
利用感知器进行分类 利用感知器进行分类 本案例:一个经过训练的感知器对5个输入向量进行分类(2类) 实现步骤 Step1 画输入向量的图像 两个长度为5的向量构成输入样本矩阵P,行向量T为目标向量。利用PLOTPV画出这个向量的图像。例如: P=[-0.5 -0.5 0.3 -0.1 -4;-0.5 0.5 -0.5 1 0.5]; T=[1 1 0 0 1]; plotpv(P,T); %plotpv函数利用感知器的输入向量和目标向量来画输入向量的图像 实现步骤 Step2 建立神经网络 matlab提供函数newp来创建一个指定的感知器。第一个参数指定了期望的两个输入向量的取值范围,第二个参数指定了只有一个神经元。 net=newp([-40 1;-1 50],1); 注意:这个神经元的传递函数是hardlim函数,也就是阶跃函数。取0,1两个值。Hardlims取-1,1两个值。 实现步骤 Step3 添加神经元的初始化值到分类图 初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会出现在这个图中,不用害怕,我们会继续训练这个神经网。 hold on handle=plotpc(net.iw{1},net.b{1}); %plotpc函数用来画分类线 实现步骤 Step4 训练神经网络 matlab提供了adapt函数来训练感知器,adapt函数返回一个新的能更好的执行分类、网络的输出、和误差的神经网络,这个划线函数允许网络从3个角度去调整,画分类线一直到误差为0止。 实现步骤 E=1; //E为误差 net.adaptParam.passes=3; //决定在训练过程中重复的次数 while(sse(E)) //sse函数是用来判定误差E的函数 [net,Y,E]=adapt(net,P,T);//利用输入样本调节神经网net handle=plotpc(net.iw{1},net.b{1},handle); //画出调整以后的分类线 drawnow;//延迟一段时间 end 实现步骤 Step5 模拟sim sim函数能被用来划分任何别的输入向量,例如划分一个输入向量[0.7;1.2].这个新点的图像为红色,它将用来显示这个感知器如何把这个新点从最初的训练集区分开来。 实现步骤 p=[0.7;1.2]; a=sim(net,p);//;利用sim计算出新输入p的神经网络的输出 plotpv(p,a); circle=findobj(gca,type,line); set(circle,Color,red); hold on; plotpv(P,T); plotpc(net.iw{1},net.b{1}); 打开hold,以便于以前的图像不被删除。增加训练装置和分类线在图中 hold off; axis([-2 2 -2 2]); 实现步骤 这个感知器正确区分了我们的新点(用红色表示)作为“zero”类(用圆圈表示),而不是“one”类(用+号表示)。 * *
文档评论(0)