(2020年)企业管理线性分类器设计与非线性分类器设计

上传人:精****库 文档编号:139708883 上传时间:2020-07-23 格式:DOCX 页数:9 大小:84.28KB
返回 下载 相关 举报
(2020年)企业管理线性分类器设计与非线性分类器设计_第1页
第1页 / 共9页
(2020年)企业管理线性分类器设计与非线性分类器设计_第2页
第2页 / 共9页
(2020年)企业管理线性分类器设计与非线性分类器设计_第3页
第3页 / 共9页
(2020年)企业管理线性分类器设计与非线性分类器设计_第4页
第4页 / 共9页
(2020年)企业管理线性分类器设计与非线性分类器设计_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《(2020年)企业管理线性分类器设计与非线性分类器设计》由会员分享,可在线阅读,更多相关《(2020年)企业管理线性分类器设计与非线性分类器设计(9页珍藏版)》请在金锄头文库上搜索。

1、作业1:线性分类器设计1、问题描述将4个输入矢量分为两类,其中两个矢量对应的目标值为1,另两个矢量对应的目标值为0。输入矢量为P-0.5 -0.5 0.3 0 -0.5 0.5 -0.3 1目标分类矢量为T1 1 0 02、算法描述采用单一感知器神经元来解决这个简单的分类问题。感知器(perceptron)是由美国学者F.Rosenblatt于1957年提出的,它是一个具有单层计算神经元的神经网络,并由线性阈值单元组成。当它用于两类模式的分类时,相当于在高维样本空间中,用一个超平面将两类样本分开。两类样本线性情况下,线性判别函数可描述为,其中是权向量,是阈值。假设两类样本线性可分,则一定存在一

2、个由定义的超平面,满足,其中。定义感知器代价函数为,其中Y是训练向量的子集,是权向量w定义的超平面错误分类的部分。变量;。为了计算出代价函数的最小迭代值,利用梯度下降法设计迭代方案,即其中,代入得这种算法称为感知器算法。这个算法从任意权向量w(0)开始初始化,通过错误分类特征形成修正向量。如此重复到算法收敛于解,即所有的特征向量都正确的分类。可以证明,如果两类模式是线性可分的,则算法一定收敛。感知器特别适合用于简单的模式分类问题。3、算法的实现Matlab源程序如下:0.5 0.3 0;-0.5 0.5 -0.5 1;t=1 1 0 0;w,b=initp(p,t) 初始化感知器plotpv(

3、p,t) 绘制输入矢量plotpc(w,b) 绘制分类线pausew,b,epochs,errors=trainp(w,b,p,t,-1) 训练感知器pauseploterr(errors); 绘制误差图4、分类结果和讨论图1为分类结果,图中的实线将两类分开。经过6步达到误差要求,训练结束。误差变化曲线如图2所示。 图1 图2经过训练后,网络的权值和阈值分别为w =-2.9871 -0.4630b=-0.3572训练结束后,验证p=-0.5;0.2;a=simup(p,w,b)运行结果为a1属1类可见,单层感知器算法可用于简单的线性分类问题。作业2:非线性分类器设计1、问题描述设计分类器实现同

4、或运算。同或问题的真值表为 X1X2同或运算结果类0011010010001111用一条直线是不能将这两类分开的,可考虑非线性分类算法设计分类器。2、算法描述(1)双层感知器算法 单层感知器神经网络不能解决线性不可分的输入矢量的分类问题,解决这一问题的办法是输入的线性不可分矢量进行预处理。双层感知器算法就是采用两层感知器神经元,先将线性不可分问题转化为线性可分问题,再进行分类的。算法分为两个阶段,第一阶段的映射将非线性可分问题转换为线性可分问题,通过第一层的神经元完成第一阶段的计算,它们构成隐层(hidden layer),将输入向量x映射到新向量y,即第二阶段是基于转换数据实现分类,通过第二

5、层神经元实现运算,构成输出层(output layer),得出决策方程。即(2)径向基函数算法若定义函数变量为从中心点ci与输入向量的欧式距离,即,则称该函数为径向基函数(Radial Basis Function,RBF)。函数f可有多种形式,例如高斯形式被广泛使用。径向基函数网络的结构包括两层,即隐层和输出层,隐层为径向基层(radbas),利用径向基函数将非线性问题转换为线性问题,输出层为线性层(pureline),将转换后的样本用线性分类方法进行分类。3、算法的实现与分类结果(1)双层感知器算法Matlab源程序为:p=0 0 1 1;0 1 0 1;t=1 0 0 1;s1=2;w1

6、,b1=initp(p,s1)w2,b2=initp(s1,t)plotpv(p,t)plotpc(w1,b1)pausea1=simup(p,w1,b1);w2,b2,epochs,errors=trainp(w2,b2,a1,t,-1);ploterr(errors);运行结果:图3为分类结果,误差变化曲线如图4所示。 图3 图4训练结束后,两层网络的权值和阈值分别为w1=1 1;1 1;b1=-0.5;-1.5w2=1 -1 ;b2=-0.5; (2)径向基函数算法Matlab源程序为:p=0 0;0 1;1 0;1 1;t=1 0 0 1;c=1 0;1 0;n=dist(p,c)a=

7、radbas(n)a1=aw,b=initp(a1,t)subplot(211)plotpv(a1,t)plotpc(w,b)w,b,epochs,errors=trainp(w,b,a1,t,-1)subplot(212)ploterr(errors)运行结果:分类结果和误差变化曲线如图5所示。图5训练结束后,网络的权值和阈值分别为w =1.6973 1.9886b =-1.7863作业3: 非线性分类器设计1、问题描述将5个输入矢量分为两类,其中两个矢量对应的目标值为1,另三个矢量对应的目标值为0。输入矢量为P-0.5 -0.5 0.3 -0.1 -0.8 -0.5 0.5 -0.5 1.

8、0 0目标分类矢量为T1 1 0 0 02、算法及实现(1)采用单层感知器算法clearp=-0.5 -0.5 0.3 -0.1 -0.8;-0.5 0.5 -0.5 1.0 0;t=1 1 0 0 0;plotpv(p,t);pausew,b=initp(p,t)pauseplotpv(p,t)plotpc(w,b)pausew,b,epochs,errors=trainp(w,b,p,t,-1);ploterr(errors)(2)采用双层感知器算法p=-0.5 -0.5 0.3 -0.1 -0.8;-0.5 0.5 -0.5 1.0 0;t=1 1 0 0 0;plotpv(p,t);p

9、auses1=2;w1,b1=initp(p,s1)w2,b2=initp(s1,t)pauseplotpv(p,t)plotpc(w1,b1)pausea1=simup(p,w1,b1);w2,b2,epochs,errors=trainp(w2,b2,a1,t,-1);ploterr(errors)3、分类结果和讨论(1)单层感知器算法图6为分类结果,误差变化曲线如图7所示。图6图7训练结束后,网络的权值和阈值分别为w =0.8096 0.1384b =0.2636(2)双层感知器算法分类结果如图8所示。图8(3)讨论 对于线性不可分输入矢量的分类问题,单层感知器神经网络永远也找不到正确的分类方案。对于这类问题,可采用先将线性不可分问题转化为线性可分问题,再用线性算法进行分类的方法解决,双层感知器算法就是采用这种途径。从结果来看,可以找到分类方案,但训练时间很长。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号