线性分类器设计与非线性分类器设计_第1页
线性分类器设计与非线性分类器设计_第2页
线性分类器设计与非线性分类器设计_第3页
线性分类器设计与非线性分类器设计_第4页
线性分类器设计与非线性分类器设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线性分类器设计与非线性分类器设计

作业1:线性分类器设计

1、效果描画

将4个输入矢量分为两类,其中两个矢量对应的目的值为I,另两个矢量对应的目的值

为0。输入矢量为P=[-O.5-O.5O.3O

-0.50.5-0.31]

Fl的分类矢量为T=[l100]

2、算法描画

采用单一感知器神经元来处置这个复杂的分类效果。感知器(perceptron)是由美国学

者F.Rosenblatt于1957年提出的,它是一个具有单层计算神经元的神经网络,并由线性阈值

单元组成。当它用于两类形式的分类时,相当于在高维样本空间中,用一个超平面将两类样

本分开。

两类样本线性状况下,线性判别函数可描画为,其中是权向量,是阈值。假定两类样

本线性可分,那么一定存在一个由定义的超平面,满足,其中。

定义感知器代价函数为,其中丫是训练向量的子集,是权向量卬定义的超平面错误分

类的局部。变量;。为了计算出代价函数的最小迭代值,应用梯度下降法设计迭代方案,即

其中,代入得

印"+1)=卬⑺-

这种算法称为感知器算法。这个算法从恣意权向量卬@末尾初始化,经过失误分类特征构

成修正向最。如此重复到算法收敛于解,即一切的特征向量都正确的分类。可以证明,假设

两类形式是线性可分的,那么算法一定收敛。感知器特别适宜用于复杂的形式分类效果。

3、算法的完成

Matlab源顺序如下:

0.50.30;-0.50.5-0.51];

1=[1100];

[w,b]=initp(p,t)%初始化感知器

plotpv(p,t)%绘制输入矢量

plotpc(w,b)%绘制分类线

pause

[w,b,epochs,errors]=trainp(w,b,p,t,-1)%训练感知器

pause

ploterr(errors);%绘制误差图

4、分类结果和讨论

图I为分类结果,图中的实线将两类分开。经过6步到达误差要求,训练完毕。误差

变化曲线如图2所示。

图2

经过训练后,网络的权值和阈值区分为

w=-2.9871-0.4630

b=-0.3572

训练完毕后,验证

p=[-0.5;-0.2];

a=simup(p,w.b)

运转结果为a=l属1类

可见,单层感知器算法可用于复杂的线性分类效果。

作业2:非线性分类器设计

1、效果描画

设计分类器完成同或运算。同或效果的真值表为

XiX2同或运算类

结果

0011

0100

1000

1111

用一条直线是不能将这两类分开的,可思索非线性分类算法设计分类器。

2、算法描画

(1)双层感知器算法

单层感知器神经网络不能处置线性不可分的输入矢量的分类效果,处置这一效果的方法

是输入的线性不可分矢量停止预处置。双层感知器算法就是采用两层感知器神经元,先将线

性不可分红绩转化为线性可分红绩,再停止分类的。

算法分为两个阶段,第一阶段的映射将非线性可分红绩转换为线性可分红绩,经过笫一

层的神经元完成第一阶段的计算,它们构成隐层(hiddenlayer),将输入向量x映射到新

向量y,即

y=/(gjR)

x-)'=[四,)’2,...,丁/丁

第二阶段是基于转换数据完成分类,经过第二层神经元完成运算,构成输入层(output

layer),得出决策方程。即g(y)="y+%

(2)径向基函数算法

假定定义函数变量为从中心点与输入向量的欧式距离,即/("一。』),那么称该函

数为径向基函数(RadialBasisFunction,RBF)。函数f可有多种方式,例如

2

/i»=exp(--^-||x-c/||)

高斯方式被普遍运用。

径向基函数网络的结构包括两层,即隐层和输入层,隐层为径向基层(radbas),应用

径向基函数将非线性效果转换为线性效果,输入层为线性层(purelinc),将转换后的样本

用线性分类方法停止分类,

3、算法的完成与分类结果

(1)双层感知器算法

Matlab源顺序为:

p=[0011;0101];

t=[l001];

sl=2:

[wl,bl]=initp(p,si)

[w2,b2]=initp(sl,t)

plotpv(p,t)

plotpc(wl,bl)

pause

al=simup(p,wl,bl);

[w2,b2,epochs,errors]=trainp(w2,b2,al,t,[-1]);

ploterr(errors);

运转结果:

图3为分类结果,误差变化曲线如图4所示。

图3

图4

训练完毕后,,两层网络的权值和阈值区分为

wl=[l1;11];bl=[-0.5;-1.5]

w2=[l-1];b2=-0.5;

(2)径向基函数算法

Matlab源顺序为:

p=[00;01;10;11];

t=[l001];

c=[l0;l0];

n=dist(p,c)

a=radbas(n)

al=aJ

[w,b]=initp(al,t)

subplot(211)

plotpv(al,t)

plotpc(w,b)

[w,b,epochs,errors]=trainp(w,b,al,t,-1)

subplot(212)

ploterr(errors)

运转结果:

分类结果和误差变化曲线如图5所示。

VectorstobeClassified

■0.200.20,4060.811.21.4

Sum-SquaredNetwofitrrorfor12Epochs

1O10

图5

训练完毕后,网络的权值和阈值区分为

w=[1.69731.9886]

b=-1.7863

作业3:非线性分类器设计

1、效果描画

将5个输入矢量分为两类,其中两个矢量对应的目的值为1,另三个矢量对应的目的值

为0。输入矢量为P=[-0.5-0.50.3-0.1-0.8

-0.50.5-0.51.00]

目的分类矢最为T=[l1000J

2、算法及完成

(1)采用单层感知器算法

clear

p=[-0.5-0.50.3-0.1-0.8;-0.50.5-0.51.00];

t=[l1000];

plotpv(p,t);

pause

[w,b]=initp(p,t)

pause

plotpv(p,t)

plotpc(w,b)

pause

[w,b,epochs,errors]=trainp(w,b,p,t,-1);

ploterr(errors)

(2)采用双层感知渊算法

p=[-0.5-0.50.3-0.1-0.8;-0.50.5-0.51.00];

t=[l1000];

plotpv(p,t);

pause

sl=2;

[wl,bl]=initp(p,si)

[w2,b2]=initp(sl,t)

pause

plotpv(p,t)

plotpc(wl,bl)

pause

al=simup(p,wl,bl);

[w2,b2,epochs,errors]=trainp(w2,b2,al,t,[-1]);

ploterr(errors)

3、分类结果和讨论

(1)单层感知器算法

图6为分类结果,误差变化曲线如图7所示。

VectorstobeClassified

1.5-

1-

05-

S

Q.

0-

-0.5-

-1-

-1.2-1-0.8-0.6-0.4-0.200.20.40.60.8

P(1)

图6

Sum-SquaredNetworkErrorfor100Epochs

IO06

0102030405060708090100

Epoch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论