模式识别作业2

  • 格式:pdf
  • 大小:1.26 MB
  • 文档页数:14

模式识别作业2

模式识别作业⼆

硕⾃171班杨晓丹21722160251题⽬

数据:1)四个数据

第⼀类:(0,0)(0,1)

第⼆类:(1,0)(1,1)2)⼋个数据⽔果类:

第⼀类:(90,150)(90,160)(80,150)(60,140)

第⼆类:(60,105)(50,80)(50,90)(80,125)

针对两种数据进⾏梯度下降法编程测试。3)四个数据

第⼀类:(0,0)(1,1)

第⼆类:(1,0)(0,1)2、不同情况下的结果测试:

1)初始权值取3种不同的值

2)步长取不同的值,可以尝试变步长⽅法

3)采⽤单样本修正法和全样本修正法两种⽅式

4)单样本情况下不同的样本迭代次序,从1到n,和,从n到1

3、第2组数据可以画画每次迭代后的分类线试试

2实验原理与⽅案

2.1算法原理

本次实验采⽤感知器模型对样本进⾏分类,将两组样本标准化为增⼴矩阵y,并寻找出ay>0的权向量a。定义感知函数如下:∑

J P(a)=

(?a T y)(1)

y?y h

式中y h是被权向量a错误分类的样本。存在错误的样本数是,感知函数的值⼤于0,当样本全部被正确分类时,感知函数的值为0。所以⽬标是通过改变权向量使感知函数的

值为0。对感知函数求导得:ay ?a =

y?y h

y(2)则可得到梯度下降法的迭代公式:a(k+1)=a(k)+ρk

y?y h

y(3)经过多次迭代后,若所有样本满⾜ay>0,则得到⼀个线性分类器。

若样本为⼆维,可将权向量视为三维空间中的向量,将y k视为超平⾯的法向量,则式ay>0表明在超平⾯法向量⽅向⼀侧的权向量满⾜解向量的要求,所有超平⾯法向量⽅向围成的空间就是解向量的解空间。迭代的过程就是权向量加上法向量,使权向量向解区移动的过程。2.2单步长梯度下降法计算流程

1.将样本标准化为增⼴矩阵Y

2.将增⼴矩阵中的列向量y k依次与权向量相乘,若Ay k不⼤于0,则迭代权向量A(k+

1)=A(k)+ρy k,若Ay k为正,则继续计算下⼀个向量,直⾄完成⼀轮相乘。

3.若⼀轮相乘的结果均为正,则找到解向量,否则重复步骤2、3。

2.3多步法梯度下降法计算流程

1.将样本标准化为增⼴矩阵Y

2.将增⼴矩阵与权向量相乘,即X=AY,若x h的结果不⼤于0,则对应的列向量y h

为误分类样本。3.将⼀轮计算中所有的误分类样本与权向量相加,即A(k+1)=A(k)+ρk ∑

y?y h

y

4.若X中的元素均⼤于0,则得到解向量,否则重复步骤2、3、4。

2.4变步长梯度下降法计算流程

1.将样本标准化为增⼴矩阵Y

2.将增⼴矩阵与权向量相乘,即X=AY,若x h的结果不⼤于0,则对应的列向量y h

为误分类样本。3.计算步长ρ=max(10e?k,0.1)

4.将⼀轮计算中所有的误分类样本与权向量相加,即A(k+1)=A(k)+ρk ∑

y?y h

y

5.若X中的元素均⼤于0,则得到解向量,否则重复步骤2、3、4。

2.5实验⽅案

1.⽤感知器求解样本的解向量,并改变权向量的初始值、步长、样本的顺序,观察权向

量的变化趋势、迭代次数。2.采⽤单样本修正法及全样本修正法求解解向量,⽐较两种⽅法的优劣。

3.采⽤变步长算法求解解向量,⽐较与定步长算法的优劣。

3实验过程3.1样本⼀

三维图中平⾯为增⼴矩阵列向量对应的超平⾯,红点为权向量在空间中的迭代过程,黄⾊三⾓点为解向量。

⼆维图中圆点代表第⼀类样本,X点代表第⼆类样本,蓝线为迭代中的权向量,红线为解向量。3.1.1改变权向量初始值

分别取权向量[-1-10],[-1-20],[-1-30]。

权向量变化图表明,初值为[-1-10]时,第⼀次迭代权向量超出解区,之后权向量贴在解区边缘,总共6次迭代进⼊解区。

初值为[-1-20]时,迭代过程中权向量贴着解区间,在四次迭代后权向量进⼊解区。

初值为[-1-30]时,权向量在两次迭代后进⼊解区。分类线总是沿着使错误分类样本被正确分类的⽅向移动。

3.1.2改变步长

分别改变步长的值为0.2,2,4。步长为0.2时,权向量缓慢到达解区间中,迭代次数为7次,分类线变化缓慢。步长为2时,权向量迅速到达解区中,迭代次数为2次,分类线变化迅速。步长为4时,权向量变化较⼤,两次越过解区,迭代次数为4次,分类线变化较激烈。

3.1.3变步长算法

步长变化为ρ=max (10?exp (?i ),0.1)。变步长算法的步长在开始时较⼤,随后逐渐减⼩,权向量可以迅速接近解区,然后细调。该⽅法迭代次数为3次,与步长为1的多步法相⽐,迭代次数少了2次。

ρ0ρ1ρ2ρ33.6788 1.35340.49790.1832A0

A1

A2A3-5.0000 2.3576-0.34910.1488-2.0000-2.0000-4.7067-4.70670.0000 3.6788 2.3254 2.3254A0Y

A1Y

A2Y A3Y -5.0000 2.3576-0.34910.1488-5.0000 6.0364 1.9763 2.47427.0000-0.3576 5.0558 4.55807.0000

-4.0364

2.7304

2.2325

3.1.4

改变样本次序

将样本的顺序颠倒,迭代的次数为2次,迭代结果也发⽣了变化。

3.1.5⼩结

1.权向量的初始值对迭代的次数和结果均有影响,⼀般权向量离解区较近时迭代次数较少。

2.步长的选择影响迭代次数。若步长选取较⼩,权向量向解区移动较慢,迭代次数较多。若步长选取较⼤,权向量向解区移动的时候可能会越过解区,在解区两侧来回震荡,迭代次数也较多。3.与多步法相⽐,单步法计算量较少。(样本⼆中更明显,也许样本数量越多计算量差距越⼤)

4.若参数设置合适,变步长算法的迭代次数⼀般⽐定步长算法少。

5.步长与初始权向量相同时,改变样本顺序会影响迭代次数与结果。A0tho迭代⽅法迭代次数A

[-1-10]1多步法3[1-31]

[-1-20]1多步法4[1-40]

[-1-30]1多步法1[1-31]

[-1-10]1单步法3[1-30]

[-1-20]1单步法2[1-30]

[-1-30]1单步法1[1-31]

[-1-20]0.2单步法6[0.2-20.4]

[-1-20]2单步法1[1-20]

[-1-20]4单步法3[3-60]

3.2样本⼆改变权函数的初值、迭代的步长、观察迭代次数与迭代结果。

样本⼆与样本⼀相⽐有特殊之处。改变样本的步长,迭代次数⼏乎没发⽣变化,得到的解函数结果也与步长成正⽐。略微改变权向量的初值,对迭代次数的影响也不⼤。当设置权向量的第⼀个元素为⼀较⼤值时,迭代次数减⼩了很多。A0ρ迭代次数A

[000]0.187871[-1558.849.5]

[000]187776[-155884095]

[000]1087776[-155880400950]

[10000]188250[-155884095]

[01000]187788[-155884095]

[0098]185938[-153384093][-2000000]188[-20012-10150]

3.2.1迭代次数问题探究权函数的变化趋势如下图所⽰:

由上图可知,权函数的k2,k3在迭代⼀定次数后围绕定值上下波动,⽽k1则不断下降直⾄完成分类。

权函数k2,k3放⼤图如下所⽰:

由上图可知,k2与k3的值陷⼊了⼀个周期性的循环之中,原因可能是每次错误分类样本的值与k2,k3存在⼀定的线性关系,⽽增⼴矩阵中的1和-1,与样本的数相⽐起来太⼩,所以迭代的次数较慢。3.2.2迭代⽅法的改进

将步长由⼀个标量变为三个量,即迭代⽅程改为:∑

A(k+1)=A(k)+[ρ1,ρ2,...,ρn].?

y(4)

y?y h

设权向量初始值为A0=[000],步长ρ=[10000],迭代次数为1103次,得到的解向量为A=[?187000135]。3.3样本三

样本三为线性不可分类型的样本,程序迭代100000次后,未找到A使AY>0。线性分类器不能对⾮线性可分的样本进⾏分类。4总结

1.权函数的初始值影响迭代次数与结果,若初始值与结果偏离较⼤,则迭代次数较多,

若靠近解区间,则迭代次数较少。2.步长选择合适时,迭代次数较少。若步长较⼩,算法迭代次数较多,若步长较⼤,则

算法容易在解区附近震荡,迭代次数会增多。在特殊情况下,步长的设定不影响迭代的次数。3.单步法的权函数迭代次数多于多步法,但与样本相乘的次数少于多步法,在样本较多

的情况下计算量会少于多步法。样本的顺序会对单步法的迭代次数与结果产⽣影响。4.变步长算法在参数合适时迭代次数少于定步长算法。

5.分别对k1,k2,k3设置合适的步长ρ1,ρ2,ρ3能减少迭代次数。

6.线性分类器只能对线性可分的样本进⾏分类。