西交大模式识别实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式识别实验报告
姓名:
班级:
学号:
提交日期:
实验一 线性分类器的设计
一、 实验目的:
掌握模式识别的基本概念,理解线性分类器的算法原理。 二、 实验要求
(1)学习和掌握线性分类器的算法原理;
(2)在MATLAB 环境下编程实现三种线性分类器并能对提供的数据进行分类;
(3) 对实现的线性分类器性能进行简单的评估(例如算法使用条件,算法效率及复杂度等)。
三、 算法原理介绍
(1)判别函数:是指由x 的各个分量的线性组合而成的函数:
00g(x)w ::t x w w w =+权向量阈值权
若样本有c 类,则存在c 个判别函数,对具有0g(x)w t x w =+形式的判别函数的一个两类线性分类器来说,要求实现以下判定规则:
1
2(x)0,y (x)0,y i i g g ωω>∈⎧⎨
<∈⎩
方程g(x)=0定义了一个判定面,它把两个类的点分开来,这个平面被称为超平面,如下图所示。
(2)广义线性判别函数
线性判别函数g(x)又可写成以下形式:
01
(x)w d
i i i g w x ==+∑
其中系数wi 是权向量w 的分量。通过加入另外的项(w 的各对分量之间的乘积),得到二次判别函数:
因为
,不失一般性,可以假设
。这样,二次判别函数拥有更多
的系数来产生复杂的分隔面。此时g(x)=0定义的分隔面是一个二阶曲面。
若继续加入更高次的项,就可以得到多项式判别函数,这可看作对某一判别函数g(x)做级数展开,然后取其截尾逼近,此时广义线性判别函数可写成:
或:
这里y 通常被成为“增广特征向量”(augmented feature vector),类似的,a 被称为
“增广权向量”,分别可写成:
这个从d维x空间到d+1维y空间的映射虽然在数学上几乎没有变化,但十分有用。虽然增加了一个常量,但在x空间上的所有样本间距离在变换后保持不变,得到的y向量都在d维的自空间中,也就是x空间本身。通过这种映射,可以将寻找权向量w和权阈值w0的问题简化为寻找一个简单的权向量a。
(3)样本线性可分
即在特征空间中可以用一个或多个线性分界面正确无误地分开若干类样本;对于两类样本点w1和w2,其样本点集合表示为:,使用一个判别函数来划分w1和w2,需要用这些样本集合来确定判别函数的权向量a,可采用增广样本向量y,即存在合适的增广权向量a,使得:
则称样本是线性可分的。所有满足条件的权向量称为解向量。
通常对解区限制:引入余量b,要求解向量满足:
余量b的加入在一定程度上可防止优化算法收敛到解区的边界。
(4)感知器准则函数
这里考虑构造线性不等式的准则函数的问题,令准则函数J(.)为:
其中Y是被权向量a错分的样本集。当且仅当JP(a*) = min JP(a) = 0 时,a*是解向
量。这就是感知器(Perceptron)准则函数。
(5)基本的感知器设计
感知器准则函数的最小化可以使用梯度下降迭代算法求解:
其中,k为迭代次数,η为调整的步长。即下一次迭代的权向量是把当前时刻的权向量向目标函数的负梯度方向调整一个修正量。
即在每一步迭代时把错分的样本按照某个系数叠加到权向量上。这样就得到了感知算法。
(6)批处理感知器算法
(7)单样本感知器算法
通常情况,一次将所有错误样本进行修正不是效率最高的做法,更常用是每次只修正一个样本或一批样本的固定增量法:
(8)最小均方差算法
对于前面提出的不等式组:
在线性不可分的情况下,不等式组不可能同时满足。一种直观的想法就是,希望求一个a*使被错分的样本尽可能少。这种方法通过求解线性不等式组来最小化错分样本数目,通常采用搜索算法求解。
为了避免求解不等式组,通常转化为方程组:
矩阵形式为:。方程组的误差为:,可以求解方程组的最小平方误差求解,即:
Js(a) 即为最小平方误差(Minimum Squared-Error,MSE)的准则函数:
准则函数最小化通常有两种方法:违逆法,梯度下降法。
梯度下降法
梯度下降法在每次迭代时按照梯度下降方向更新权向量:
直到满足或者时停止迭代,ξ是事先确定的误差灵敏度。参照感知器算法中的单步修正法,对MSE也可以采用单样本修正法来调整权向量:
这种算法即Widrow-Hoff算法,也称作最小均方根算法或LMS(Least-mean-square
algorithm)算法。
四、实验结果及分析
(1)单样本感知器算法
分析:通过对分类结果的观察知,单样本感知器可以将数据1和数据2的数据进行正确的分类,达到了分类器的设计目的。同时观察到对两组数据计算的迭代次数都是40次左右,耗时为0.6ms和0.8ms左右。单样本感知器的算法效率高于批处理感知器的算法效率。
(2)批处理感知器算法
分析:通过对分类结果的观察知,批处理感知器可以将数据1和数据2的数据进行正确的分类,达到了分类器的设计目的。同时观察到对两组数据计算的迭代次数相差较大。对数据1迭代17次,耗时1.0ms左右,相比于单样本感知器,迭代次数少但是耗时大,主要是因为批处理感知器一次迭代要对所有样本进行计算;对于数据2迭代次数和耗时都比单样本感知器多。
(3)最小均方差算法
分析:通过观察分类结果知,对于数据1和数据2都存在一个分错的点,主要是由于步长选择不同会导致收敛时的分类结果存在分错的点。同时如果选择的步长不合适,会导致a 不收敛,所以步长的选择非常重要。