版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1/12一 .实验目的1. 理解线性分类器的分类原理。2. 掌握感知器算法,利用它对输入的数据进行分类。3. 理解 BP 算法,使用 BP 算法对输入数据进行分类。二 . 实验原理1.感知器算法感知器算法是通过训练模式的迭代和学习算法,产生线性可分的模式判别函数。感知器算法就是通过对训练模式样本集的“学习”得出判别函数的系数解。在本次实验中,我们主要是采用硬限幅函数进行分类。感知器的训练算法如下:设输入矢量其中每一个模式类别已知,它们分别属于 1 类和 2 类。( 1)置步数k=1 ,令增量为某正的常数,分别赋给初始增广权矢量w(1) 的各分量较小的任意值。( 2)输入训练模式,计算判别函数值
2、(k)。( 3)调整增广权矢量,规则是:a.如果 1 和(k)0,则 w(k+1)=w(k)+ ;b.如果 2 和(k)0,则 w(k+1)=w(k)- ;c.如果 1 和(k)0,或 2 和(k)0,则 w(k+1)=w(k)( 4)如果 k,令 k=k+1 ,返回至( 2)。如果 k=N ,检验判别函数(k)对是否正确分类。如果是,结束;如果不是,令k=1 ,返回至( 2)。如果训练模式已经符号规范化,即 2 已经乘以 -1(包括增广分量1),则校正权矢量的规则可统一为w(kw(k )1)xkw(k )如果(k)0 分类正确, 则为第一个表达式,如果(k)0 错误分类则为第二个表达式。在全
3、部模式训练完一轮之后只要还有模式分类错误,则需要进行第二轮迭代,再用全部训练模式训练一次,建立新的权矢量。如果对训练模式还有错分,则进行第三轮迭代依此类推,直至对所有驯良模式均能正确分类为止,此时的w 即为所求的权矢量。2/122 BP 算法BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、隐层、输出层组成的阶层型神经网络,隐层可扩展为多层。 相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后, 各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输
4、出层经各中间层逐层修正各连接权,回到输入层。 此过程反复交替进行, 直至网络的全局误差趋向给定的极小值,即完成学习的过程。算法描述:输入层 :单元 i 的输入: xi ;单元数量: d;单元 i 的输出: xi ;单元 i 的激活函数:线性函数 ;隐层:单元 j 的输入: netj;单元数量: nH;dtnet jji xij 0xji1x( x , x ,., x)t , x101d0j(j 0 ,j 1,., jd )t单元 j 的输出: yjf (netj );单元 j的激活函数:非线性函数;输出层:单元 k 的输入: netk ;单元数量: c ;nHtnetkjyjk 0ykkj1y
5、( y, y ,., yn)t , y0101Hk ( k0 , k1,., knH )t单元 k 的输出: zkf ( netk )单元 k 的激活函数:非线性函数两层神经网络图如下:3/12分析:( 1)给定隐层单元及输出层单元的激活函数,一个神经网络就可以实现一个对输入特征向量 x 的非线性映射。因此,神经网络本质上是一个非线性函数。( 2)给定隐层单元及输出层单元的激活函数,该非线性函数所对应的映射关系完全由权系数决定。不同的权系数对应不同的非线性映射。( 3)神经网络学习的目的, 就是根据已知的训练样本, 确定神经网络的权系数。这一过程称为训练过程。在训练过程结束后,对于新样本 x
6、,根据神经网络的输出进行判决。( 4)对于 C 类分类问题,神经网络的输出为 zk ( x), k 1,.,c。神经网络的判决规则为:如果 zk ( x)zl ( x), l 1,.,c,l k ,则判 x 属于 wk。( 5)令 gk ( x) zk ( x),k1,.,c,可以看出神经网络实际上实现了C 个非线性的鉴别函数,并根据鉴别函数的取值进行分类。( 6)神经网络的训练目标:调整权系数 w,即所有的 wkj 及 wij ,使得对于训练集中的每一个训练样本 (x,t) ,网络的输出尽可能满足:z1 (x)t1z( x).tzc (x)tc( 7)优化准则:对于样本集D,使下述误差函数取
7、得最小值:J ( )Jx ()x DJx (1 c2)tk zk (x)2 k 14/12权系数的调整:kjkjJJk y j, kkjkjjijiJ, Jj xi, jjijiBP 算法描述:对于给定的样本集D=(x,t) ,初始化网络结构效率、阈值。tkzf' (netk)kf (netj )ck kjk1d*nH*c 。初始化权系数w,学习随机从 D 中取出一个样本 (x,t),根据该样本更新权系数w:JkjkjkjJjijiji计算JJ (pre ) J( ),如果J结束训练,并认为此时的w 为最优。否则转第 2 步继续进行循环。三 实验内容1. 感知器算法实验本实验利用感知器
8、算法的原理,随机抽取两类的部分数据,然后,用这两类的其他数据来验证分类是否正确。这里是利用感知器两两分类的原理。实验可得结果如下表。其中r1是输入 x1 所得的分类正确率,r2 是输入 x2 所得的分类正确率,r3 是输入 x3 所得的分类正确率。当训练样本数m 取20 时,x1 和 x2 数据分类正确率都是100% ,x1 和 x3 数据分类正确率是 100% ,而 x2和 x3的分类正确率分别为 86% 和 93%。当训练样本数m 取30 时,x1 和 x2 数据分类正确率都是100% ,x1 和 x3 数据分类正确率是 100% ,而 x2和 x3的分类正确率分别为 92% 和 88%。
9、由实验结果可以看出, x1 和 x2、 x1 和 x3 之间是线性可分的,而x2 和 x3 则达到了与预设的迭代次数的上限, 且分类效果不明显。 说明感知器算法对于现行可分的数据有比较好的性能与速度,但对于线性不可分的数据则效果较差。2 BP 算法实验( 1)异或问题实验利用前向两层神经网络来完成异或分类,输入的样本为x1=01 1, x2=1 0 1,5/12x3=0 0 1,x4=1 11将这四个样本分成两类。其中,x1 和 x2 是属于 w1 类, x3 和 x4属于 w2 类。第一层(输入层) 采用三个神经元, 两个输入神经元和一个恒等于1 的神经元,第二层(输出层)设置一个神经元,第
10、二层输出的值若小于0.5 就表示为w1 类,大于0.5就表示 w2 类。这里采用负梯度法调整参数。在本实验中,我们记录训练次数和做不同次实验的分类正确率。取实验次数为1,训练次数为3686 ,分类正确率为100% ;取实验次数为25,最后一次训练次数为2970 ,分类正确率100%;取实验次数为50,最后一次训练次数2942,分类正确率100%。由实验可以看出,分别做1 次、 25 次和 50 次实验,所得到的分类正确率都是100,所以说利用前向两层神经网络来完成异或分类问题可以得到很好的分类效果。( 2)BP 算法实验采用前向两层神经网络来实现 x1、x2 和 x3 两两之间的分类。 分别选
11、取不同个数 ( m)的样本进行训练, 得到相应的权系数, 然后再将全部数据代入进行分类, 记录训练次数和分类正确率。可得如下结果:输入不同组数据后的训练次数和分类正确率训练样本数x1和 x2x1 和 x3x2 和 x3正确率迭代正确率迭代正确率迭代系数次数次数m=5r1=100%r1=100%r2=92%r2=100%1334r3=100%1336r3=86%4452m=15r1=100%r1=100%r2=92%r2=100%915r3=100%1276r3=98%2213m=25r1=100%r1=100%r2=92%r2=100%989r3=100%1131r3=96%1970m=35r
12、1=100%r1=100%r2=92%r2=100%961r3=100%1044r3=98%1410m=45r1=100%r1=100%r2=90%r2=100%867r3=100%1039r3=100%2006x1 和 x2 之间分别选取训练样本数为5 和 45 时的分类效果 :6/12x1 和 x3 之间分别选取训练样本数为5 和 45 时的分类效果:x2 和 x3 之间分别选取训练样本数为5 和 45 时的分类效果:7/12下面是分别进行不同多次实验所得的正确率的统计结果:实验次数训练样本分类正确次数正确率个数m=5r1=19, r2=2097.5p=20m=15r1=20, r2=20
13、100m=25r1=20, r2=20100m=35r1=19, r2=2097.5m=45r1=20, r2=20100m=5r1=50, r2=50100x1 和 x3p=50m=15r1=50, r2=50100m=25r1=49, r2=5099之间m=35r1=50, r2=50100m=45r1=50, r2=50100m=5r1=98, r2=10099p=100m=15r1=97, r2=10098.5m=25r1=100,r2=100100m=35r1=97, r2=10098.5m=45r1=99, r2=10099.5实验次数训练样本分类正确次数正确率个数m=5r1=20
14、, r2=20100m=15r1=19, r2=2097.5m=25r1=19, r2=2097.5p=20m=35r1=20, r2=20100m=45r1=20, r2=20100m=5r1=48, r2=5098x1 和 x2p=50m=15r1=49, r2=5099m=25r1=49, r2=5099之间m=35r1=50, r2=50100m=45r1=50, r2=50100p=100m=5r1=95, r2=10097.5m=15r1=99, r2=10099.5m=25r1=97,r2=10098.5m=35r1=99, r2=10099.5m=45r1=98, r2=100
15、99实验次数训练样本分类正确次数正确率8/12个数m=5r1=4 ,r2=420p=20m=15r1=0 ,r2=2050m=25r1=4 ,r2=1137.5x2 和 x3m=35r1=4 ,r2=2037.5之间m=45r1=0 ,r2=1127.5m=5r1=3 ,r2=25p=50m=15r1=0 ,r2=4343m=25r1=13, r2=2134m=35r1=1 ,r2=1314m=45r1=0 ,r2=4040分析实验结果可以得出:无论从一次实验所得结果还是从做多次实验所得的统计结果上来看,利用前向二层神经网络实现x1、 x2 和 x3 两两之间的分类,对于x1 和 x2 之间、
16、 x1和 x3 之间的分类效果是比较明显的,可以很好的将两类分开。而对于x2 和 x3 之间却很难用此种办法达到很好的分类效果。四 . 实验小结本次实验主要是进行线性可分类问题的实验,实验中分别运用感知器算法和BP 算法进行 x1、x2 和 x3 两两之间的分类,结果得出, 只有 x1 和 x2 之间及 x1 和 x3 之间是线性可分的,而 x2 和 x3 之间是无法用这两种办法分开的。本次实验中,在运用BP 算法进行x1、x2和 x3 之间的分类之前,还进行了异或问题的实验,实验中采用两层前向神经网络达到了很好的分类效果,为进行后面的实验打好了基础。通过本次实验,使我对感知器算法和 BP 算
17、法有了更加深入的认识,以前在神经网络这门课程中所学的理论问题, 在本次实验中通过具体动手进行编程, 使得对当时所学知识有了更加深入的认识。 在实验中也遇到了各种各样的问题, 通过思考解决后, 对我以后的学习很有帮助。五. 代码1.感知器算法clear all;k1(i,:)=k(i,:);close all;k2(i,:)=k(i+50,:);clc;k3(i,:)=k(i+100,:);k=load('iris.txt');endk1=zeros(50,4);m=input(' 训练样本数m=');k2=zeros(50,4);T1=zeros(m,4);k3
18、=zeros(50,4);T2=zeros(m,4);for i=1:1:50T3=zeros(m,4);9/12index=randperm(50);endfor i=1:1:mendT1(i,:)=k1(index(i),:);endT2(i,:)=k2(index(i),:);T3(i,:)=k3(index(i),:);2.BP 算法解决异或问题endclear all;W=0.1,0.1,0.1,0.1;close all;count=0;clc;k=0.02;p=0;cc=0;x1=0 0 -1;1 1 -1;while(count<m&&cc<100)
19、x2=0 1 -1;1 0 -1;i=1;r11=0;r22=0;count=0;while p<25while(i<=m)a=0.5;if(W*T1(i,:)'<0)pf=1;W=W+k*T1(i,:);w1=rand(3,2);count=0;w2=rand(3,1);endk=1;if(W*T2(i,:)'>0)while pf>0.001W=W-k*T2(i,:);if mod(k,4)=1count=0;g1=x1(1,:);endd=0.1;if(W*T1(i,:)'>0)&&(W*T2(i,:)'
20、<0)endcount=count+1;if mod(k,4)=2endg1=x2(1,:);i=i+1;d=0.9;endendcc=cc+1;if mod(k,4)=3endg1=x1(2,:);ccd=0.1;k=k1;k2;endfor i=1:1:100if mod(k,4)=0if(W*k(i,:)'>0)g1=x2(2,:);if(0<i&&i<51) fprintf(' 第 %d个数d=0.9;据被分为第一类,分类正确n',i);endelse fprintf(' 第 %d个数据被分为g2=g1*w1;第一
21、类,分类错误 n',i);o1=1./(1+exp(-g2);endo1_y=o1 -1;endg3=o1_y*w2;if(W*k(i,:)'<0)o2=1./(1+exp(-g3);if(50<i&&i<101)fprintf(' 第 %d 个% 输出层的权系数调整数据被分为第二类,分类正确n',i);det2=a*2*(d-o2)*o2*(1-o2)*o1_y;else fprintf(' 第 %d个数据被分为w2=w2+det2'第二类,分类错误 n',i);s=2*(d-o2)*o2*(1-o2)
22、;10/12%第一层的权系数调整load('data.mat');w22=w2'm=input(' 训练样本数m=');% 输入训det1=a*g1'*(s*w22(:,1:2).*o1.*(1-o1);练样本数w1=w1+det1;T1=zeros(m,4);err=d-o2;T2=zeros(m,4);pf=err2;T3=zeros(m,4);k=k+1;%随机抽取 m 个训练样本endindex=randperm(50);r1=0;for i=1:1:m%得到随机的训练样本for j=1:1:2x1(i,:)=k1(index(i),:)
23、;t1=x1(j,:)*w1;x2(i,:)=k2(index(i),:);y1=1./(1+exp(-t1);x3(i,:)=k3(index(i),:);y1_y=y1 -1;endI2=y1_y*w2;p=0;r11=0;r22=0;y2(j)=1./(1+exp(-I2);while p<50if y2(j)<0.5a=0.5;r1=r1+1;pf=1;endw1=rand(4,5);endw2=rand(6,1);if r1=2k=1;tt=1;r11=r11+1;while pf>0.000001endif k>mr2=0;k=1;for j=1:1:2endt2=x2(j,:)*w1;if mod(k,2)=1y11=1./(1+exp(-t2);g1=x2(k,:);y11_y=y11 -1;d=0.1;I21=y11_y*w2;endy21(j)=1./(1+exp(-I21);if mod(k,2)=0if y21(j)>0.5g1=x3(k,:);r2=r2+1;d=0.9;endendendif r2=2g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋季国家管网集团湖南公司高校毕业生招聘4人笔试参考题库(浓缩500题)带答案详解(a卷)
- 2026秋季国家管网集团北方管道公司高校毕业生招聘笔试参考题库(浓缩500题)及参考答案详解(考试直接用)
- 2026秋季国家管网集团东北公司高校毕业生招聘笔试模拟试题(浓缩500题)及答案详解(网校专用)
- 2026秋季国家管网集团云南公司高校毕业生招聘考试参考试题(浓缩500题)及答案详解一套
- 2025国网甘肃省电力校园招聘(提前批)笔试模拟试题浓缩500题完整答案详解
- 2026国家管网集团广西公司秋季高校毕业生招聘笔试备考试题(浓缩500题)附答案详解(巩固)
- 2026秋季国家管网集团福建公司高校毕业生招聘笔试备考题库(浓缩500题)及参考答案详解(培优)
- 2026年洛阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(黄金题型)
- 2026秋季国家管网集团北京管道有限公司高校毕业生招聘考试参考试题(浓缩500题)附答案详解(巩固)
- 2026秋季国家管网集团东部原油储运公司高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解(培优)
- 企业行政管理制度模板库
- 2025年党员干部在委理论学习中心组“改文风转作风”专题研讨会上的交流发言范文
- 湖北中烟2025年招聘综合测试h
- 巴厘岛旅游攻略
- 技术部经理竞聘演讲稿
- 电动车 - 雪佛兰Bolt减速器拆解分析报告
- 2025年河北建设投资集团有限责任公司人员招聘笔试备考题库及一套完整答案详解
- 腻子班组安全教育测试题及答案解析
- 宅基地入股合作协议合同范本
- 新教科版小学1-6年级科学需做实验目录
- 诗词地理学古诗词与地理课件
评论
0/150
提交评论