版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——神经网络分类试验一
利用神经网络进行分类
(转载于陕西理工学院数学系中心试验室周涛副教授的工作,在此表示感谢)
一个经过训练的2输入神经元对5个输入向量进行分类(2类)。结合一个例子给出步骤。
试验内容(说明:这里的大量参数都可以更改,希望大家能对这个程序的参数进行修改;同时也欢迎大家提问)
步骤一:
两个长度为5的向量构成输入样本矩阵P,行向量T为指导向量。利用PLOTPV画出这个向量的图像。例如:
P=[-0.5-0.5+0.3-0.1-4;-0.5+0.5-0.5+1.05];T=[11001];
plotpv(P,T);//plotpv函数利用感知器的输入向量和监视向量来画输入向量的图像
注意:在上面的式子中,4输入向量比5输入向量有更小的数量级,这个感知器必需把P中的5个输入向量分成两类(依靠于T)。
步骤二建立神经网络
MATLAB提供函数newp来创立一个指定的感知器。第一个参数指定了期望的两个输入向量的取值范围,其次个参数指定了只有一个神经元。
net=newp([-401;-150],1);
注意:这个神经元的鼓舞函数是hardlim函数,也就是阶越函数。取0,1两个值。Hardlim三函数,也就是阶越函数。取-1,1两个值。
步骤三添加神经元的初始化值到分类图
初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会出现在这个图中,不用畏惧,我们会继续训练这个神经网。
holdon
linehandle=plotpc(net.IW{1},net.b{1});//plotpc函数用来画神经网络的分类线
步骤四训练感知器
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
linehandle=plotpc(net.IW{1},net.b{1},linehandle);//画出调整以后的分类线
drawnow;//延迟一段时间end注意:这将会花费感知器的大量时间来训练。这对这样一个简单问题来说时间是十分长的。追究其原因在于outliervector,尽管需要很长的训练时间,这个感知器依旧适当的学习并且被用于划分别的输入。
步骤五模拟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,以便于以前的图像不被删除。增加训练装置和分类线在图中。holdon;plotpv(P,T);
plotpc(net.IW{1},net.b{1});holdoff;
axis([-22-22]);
最终放大感兴趣的区域。这个感知器正确的区分了我们的新点(用红色表示)作为〞zero〞类(用圆圈表示),而不是〞one〞类(用+号表示),尽管需要比较长的训练时间,这个感知器依旧适当的进行了学习。想知道在outliervectors的状况下如何减少训练时间,需要做试验一的优化试验\
练习1熟悉并理解plotpv,plotpc函数
Thecodebelowdefinesandplotstheinputsandtargetsforaperceptron:p=[0011;0101];t=[0001];plotpv(p,t)
ThefollowingcodecreatesaperceptronwithinputsrangingoverthevaluesinP,assignsvaluestoitsweightsandbiases,=newp(minmax(p),1);net.iw{1,1}=[-1.2-0.5];net.b{1}=1;
plotpc(net.iw{1,1},net.b{1})
newp函数解释
NEWPCreateaperceptron.
Syntaxnet=newp
net=newp(pr,s,tf,lf)
Description
Perceptronsareusedtosolvesimple(i.e.linearlyseparable)classificationproblems.
NET=NEWPcreatesanewnetworkwithadialogbox.
NET=NEWP(PR,S,TF,LF)takestheseinputs,
PR-Rx2matrixofminandmaxvaluesforRinputelements.S-Numberofneurons.
TF-Transferfunction,default='hardlim'.LF-Learningfunction,default='learnp'.Returnsanewperceptron.
ThetransferfunctionTFcanbeHARDLIMorHARDLIMS.ThelearningfunctionLFcanbeLEARNPorLEARNPN.
Examples
Thiscodecreatesaperceptronlayerwithone2-elementinput(ranges[01]and[-22])andoneneuron.(SupplyingonlytwoargumentstoNEWPresultsinthedefaultperceptronlearningfunctionLEARNPbeingused.)
net=newp([01;-22],1);
Nowwedefineaproblem,anORgate,withasetoffour2-elementinputvectorsPandthecorrespondingfour1-elementtargetsT.
P=[0011;0101];T=[0111];
Herewesimulatethenetwork'soutput,trainforamaximumof20epochs,andthensimulateitagain.
Y=sim(net,P)
net.trainParam.epochs=20;net=train(net,P,T);Y=sim(net,P)
Notes
Perceptronscanclassifylinearlyseparableclassesina
finiteamountoftime.Ifinputvectorshavealargevarianceintheirlengths,theLEARNPNcanbefasterthanLEARNP.
Properties
PerceptronsconsistofasinglelayerwiththeDOTPROD
weightfunction,theNETSUMnetinputfunction,andthespecifiedtransferfunction.
Thelayerhasaweightfromtheinputandabias.
WeightsandbiasesareinitializedwithINITZERO.
AdaptionandtrainingaredonewithTRAINSandTRAINC,whichbothupdateweightandbiasvalueswiththespecifiedlearningfunction.PerformanceismeasuredwithMAE.
试验一的优化NormalizedPerceptronRule
一个经过训练的2输入神经元对5个输入向量进行分类(2类)。结合一个例子给出步骤。
试验内容:
步骤一:
两个长度为5的向量构成输入样本矩阵P,行向量T为指导向量。利用PLOTPV画出这个向量的图像。例如:
P=[-0.5-0.5+0.3-0.1-40;-0.5+0.5-0.5+1.050];T=[11001];plotpv(P,T);
注意:在上面的式子中,4输入向量比5输入向量有更小的数量级,这个感知器必需把P中的5个输入向量分成两类(依靠于T).
步骤二建立神经网络
MATLAB提供函数newp来创立一个指定的感知器。第一个参数指定了期望的两个输入向量的取值范围,其次个参数指定了只有一个神经元。第三个参数指定了鼓舞函数,Learnpn对输入向量大小的变化比learnp(默认的)不敏感。
net=newp([-401;-150],1,'hardlim','learnpn');
第三步添加神经元的初始化值到分类图
初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会出现在这个图中,不用畏惧,我们会继续训练这个神经网。
holdon
linehandle=plotpc(net.IW{1},net.b{1});
第四步训练感知器
Matlab提供了adapt函数来训练感知器,adapt函数返回一个新的能更好的执行分类、网络的输出、和误差的神经网络,这个划线函数允许网络从3个角度去调整,画分类线一直到误差为0为止。
注意:这将会花费感知器的大量时间来训练。这对这样一个简单问题来说时间是十分长的。追究其原因在于outliervector,尽管需要很长的训练时间,这个感知器依旧适当的学习并且被用于划分别的输入。
E=1;
net.adaptParam.passes=3;while(sse(E))
[net,Y,E]=adapt(net,P,T);
linehandle=plotpc(net.IW{1},net.b{1},linehandle);drawnow;end
注意:用learnp进行训练需要3个时间单位,而用learnpn解决同样的问题需要32个时间单位,因此,当输入向量的大小发生很大变化时,learnpn比learnp要用的普遍。
第5步模拟sim
SIM函数能被用来划分任何别的输入向量,例如划分一个输入向量[0.7;1.2].这个新点的图像为红色,他将用来显示这个感知器如何把这个新点从最初的训练集取分开来。
p=[0.7;1.2];a=sim(net,p);plotpv(p,a);
circle=findobj(gca,'type','line');set(circle,'Color','red');
开启Hold,以便于以前的图像不被删除。增加训练装置和分类线在图中。holdon;plotpv(P,T);
plotpc(net.IW{1},net.b{1});holdoff;
axis([-22-22]);
最终放大感兴趣的区域
这个感知器正确的区分了我们的新点(用红色表示)作为〞zero〞类(用圆圈表示),而不是〞one〞类(用+号表示),这个感知器在较短的时间内适当的学习。
线性不可分向量
一个2输入神经元对模为5的输入向量不能进行分类。由于他们是线性不可分的。
P=[-0.5-0.5+0.3-0.1-0.8;-0.5+0.5-0.5+1.0+0.0];T=[11000];plotpv(P,T);
net=newp([-401;-150],1);holdonplotpv(P,T);
linehandle=plotpc(net.IW{1},net.b{1});net.adaptParam.passes=3;
linehandle=plotpc(net.IW{1},net.b{1});fora=1:25
[net,Y,E]=adapt(ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度曹瑞与张丽离婚协议中子女抚养及生活费用协议3篇
- 2025年度家禽饲料原料采购与家禽买卖合同书3篇
- 2024版铁塔公司基站用地租赁协议样本一
- 2025年度医疗器械展承办合同4篇
- 2024庭院立体绿化设计与施工合同3篇
- 2025年PVC消防管道设备采购销售专项合同3篇
- 2025年金丽麻布项目投资可行性研究分析报告
- 教案资源:小熊的彩虹滑梯课件公开课教学设计资料
- 2025年安徽通 用生物系统有限公司招聘笔试参考题库含答案解析
- 2025年度个人公司资产剥离合同范本:评估与定价策略4篇
- 细胞库建设与标准制定-洞察分析
- 2024年国家公务员录用考试公共基础知识复习题库2500题及答案
- DB3309T 98-2023 登步黄金瓜生产技术规程
- 2024年萍乡卫生职业学院单招职业技能测试题库标准卷
- DBJ41-T 108-2011 钢丝网架水泥膨胀珍珠岩夹芯板隔墙应用技术规程
- 2025年学长引领的读书会定期活动合同
- 表内乘除法口算l练习题1200道a4打印
- 《EICC培训讲义》课件
- 2025年四川省政府直属事业单位招聘管理单位笔试遴选500模拟题附带答案详解
- 2024年物业公司服务质量保证合同条款
- 文言文阅读之理解实词含义(讲义)-2025年中考语文专项复习
评论
0/150
提交评论