利用梯度下降法的分类实现

  • 格式:doc
  • 大小:920.00 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.

模式识别

`

题目利用梯度下降法的分类实

院系

专业班级

学生姓名

学号

二○一八年三月

1、问题重述

利用Matlab软件编写梯度下降法函数,利用该函数对以下三组数据进行分类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)

要求在以下不同情况下进行测试,并对结果进行对比分析。

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

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

3) 采用单样本修正法和全样本修正法两种方式;

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

2、算法流程

梯度下降法利用函数的极值原理来进行寻优,是一种常用的线性分类方法。

2.1算法特性

梯度下降法的运算结果和执行过程具有不定性,这是由算法本身特点所导致的。梯度下降算法往往会随着实验的重复展现不同的结果。最终的寻优结果与初始权值的选择和样本数据的迭代顺序有关。此外,在使用梯度下降法之前最好首先确定所求结果的大致位置,这样可以缩短运算时间,提高运行效率和准确程度。

2.2定步长与变步长

梯度下降的步长直接影响着算法的效率。合理选择步长dt可以极大的减轻运算压力,提高算法的精度。常用的固定增量法是按定步长的方式进行运算的,每次迭代算法以同样的速率前进,直到找到最优结果。

随着运算次数的增加,权向量越来越接近最优结果,此时适当的减小步长,可以提升算法的运行效率。除了定步长方式,本次作业还选择了线性变步长的算法,即dtk+1=a*dtk。根据黄金分隔定律,将a选为0.618,以此实现变步长的梯度下降法。

2.3固定增量法

固定增量法是一种代表性的梯度下降法,它的核心是迭代运算。每次迭代利用误分类的数据修正权向量,直到权向量满足要求或者算法运行时间达到上限。

根据修正方法的不同,固定增量法又分为单样本修正法和批量修正法。

单样本修正法是每出现一个误分类的样本就修正一次权向量。而批量修正法则是将所有样本数据都计算一次后,再根据误分类的样本修正权向量,之后再进入下次迭代。

单样本修正算法和批量修正算法的核心流程如下图所示。

单样本修正法输入样本Y n 、权向量A 利用感知准则构建增广向量Y n ’,计算样本数量n 连续n 组数据,存在AY n ’<=0

A=A+dt*Y n

AY n ’<0

i<=n

i=0

i=i+1

T

T

T

输出权向量A 批量样本修正法

输入样本Y n 、权向量A

利用感知准则构建增广向量Y n ’,计算样本数量n

连续n 组数据,存在AY n ’<=0

Aw=Aw+dt*Y n

AY n ’<0

i<=n

向量Aw 零初始化

i=0

i=i+1A=A+Aw

T

T

T

输出权向量A

F

F

F

F

F

F

图1 固定增量法算法流程

3、运行结果

3.1数据一

1)在步长为1,单样本修正条件下,三种不同初始权值的分类

图2 三种不同初始权值下的分类结果

表1三种不同初始权值下的分类对比

初始权值寻优结果寻优轮数

[0,0,0] [1,-2,0] 4

[10,10,10] [1,-4,2] 11

[100,100,100] [1,-27,24] 79 对比三条输出曲线,可以发现不同的初始权值会导致出现不同的分类函数。此外,初始权值选择的越合理,越接近寻优结果,代码的运行次数越少。因此一个合理的初始权值可以有效的提高代码效率,提升分类结果的满意程度。

2)在初始权值为[0,0,0],单样本修正方法下进行的不同步长的分类

图3 三种不同步长下的分类结果

表2 三种不同步长下的分类结果

步长dt 寻优结果寻优轮数

5 [5,-10,0] 4

0.1 [0.1,-0.2,0] 4

初值0.1,以0.689的速度线性变化[0.0236,-0.0382,0] 2 步长的选取会对最后的寻优结果产生一定的影响,但更多的是影响寻优的效率。随着权向量接近越来越接近寻优结果,适当减小步长可以提升算法的运行效率。

3)在初始权值[0,0,0],步长dt=1条件下,单样本与多样本的分类结果对比

图4 单样本修正与批量样本修正下的分类结果对比

表3 三种不同步长下的分类结果

修正方式寻优结果寻优轮数

单样本[1,-2,0] 4

批量[0.1,-0.2,0] 5 因为算法的不同,单样本修正与批量样本修正下的寻找的分类函数会有一定的不同,代码的运算效率也因此产生差异。

3.2数据二

1) 在步长为0.01,单样本修正方式下,初始权值为[-700,0,0]下进行分类,以直线的形式将

线性分类函数的搜索过程展现在下图当中。

图5 单样本搜寻过程

图6 批量修正搜寻过程

图5和图6分别将单样本和多样本修正法对分类函数的寻优过程呈现出来。根据两幅图像,可以明显的发现两种寻优方式的计算轨迹是有所不同的。

相关主题