资源描述:
《智能信息处理技术实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、智能信息处理技术实验报告学院(部):班级:学号:姓名:指导老师:实验一感知器实验一、实验目的1、理解线性分类器的分类原理2、掌握感知器算法,利用它对输入的数据进行分类二、实验原理感知器算法是通过训练模式的迭代和学习算法,产生线性可分的模式判别函数。感知器算法就是通过对训练模式样本集的“学习”得出判别函数的系数解。三、实验内容(1)简单分类问题(Percept1):设计单一感知器神经元来解决一个简单的分类问题:将4个输入向量分为两类,其中两个输入向量对应的目标值为1,另两个对应的目标值为0.输入向量为:P=[-1-0.50.2-0.1;-0.30.5
2、-0.51.0]目标向量为:T=[1100]程序如下:P=[-1-0.50.2-0.1;-0.30.5-0.51.00];T=[1100];plotpv(P,T);pause;net=newp([-11;-11],1);watchon;cla;plotpv(P,T);linehandle=plotpc(net.IW{1},net.b{1});E=1;net=init(net);linehandle=plotpc(net.IW{1},net.b{1});while(sse(E))[net,Y,E]=adapt(net,P,T);linehandle=
3、plotpc(net.IW{1},net.b{1});drawnow;end;pause;watchoff;p=[-0.5;1.2];a=sim(net,p);plotpv(p,a);ThePoint=findobj(gca,'type','line');set(ThePoint,'Color','red');holdon;plotpv(P,T);plotpc(net.IW{1},net.b{1});holdoff;disp('Endofpercept1');实验截图:(2)多个感知器神经元的分类问题(Percept2):将上例的输入向量扩充为10
4、组,将输入向量分为4类,即输入向量为:P=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;1.21.81.60.60.80.50.20.8-1.5-1.3]输出向量为:T=[1110011100;0000011111]程序如下:P=[0.10.70.80.81.00.30.0-0.3-0.5-1.5;1.21.81.60.60.80.50.20.8-1.5-1.3];T=[1111100000;0000011111];plotpv(P,T);net=newp([-1.51;-1.51],2);figure;watchon;cl
5、a;plotpv(P,T);linehandle=plotpc(net.IW{1},net.b{1});E=1;net=init(net);linehandle=plotpc(net.IW{1},net.b{1});while(sse(E))[net,Y,E]=adapt(net,P,T);linehandle=plotpc(net.IW{1},net.b{1},linehandle);drawnow;end;watchoff;figure;p=[2;-1];a=sim(net,p);plotpv(p,a);ThePoint=findobj(gca
6、,'type','line');set(ThePoint,'Color','red');holdon;plotpv(P,T);plotpc(net.IW{1},net.b{1});holdoff;disp('Endofpercept2');实验截图:(3)输入奇异样本对网络训练的影响(Percept3)当网络的输入样本中存在奇异样本时(即该样本向量相对其他所有样本向量特别大或特别小),此时网络训练时间将大大增加,如:输入向量为:P=[-0.5-0.50.3-0.1-40;-0.50.5-0.51.050];输出向量为:T=[11001];解决此问题
7、只需用标准化感知器学习规则训练即可大大缩短训练时间原始感知器学习规则的权值调整为:标准化感知器学习规则的权值调整为:,由函数learnpn()实现实验程序:P=[-0.5-0.50.3-0.1-40;-0.50.5-0.51.050];T=[11001];plotpv(P,T);net=newp([-401;-150],1);pause;plotpv(P,T);linehandle=plotpc(net.IW{1},net.b{1});cla;plotpv(P,T);linehandle=plotpc(net.IW{1},net.b{1});E=1
8、;net.adaptParam.passes=1net=init(net);linehandle=plotpc(net.I