模式识别课程报告.docx
《模式识别课程报告.docx》由会员分享,可在线阅读,更多相关《模式识别课程报告.docx(18页珍藏版)》请在冰豆网上搜索。
模式识别课程报告
模式识别课程报告
什么是模式识别
引用AnilK.Jain的话对模式识别下定义:
Patternrecognitionisthestudyofhowmachinescanobservetheenvironment,learntodistinguishpatternsofinterestfromtheirbackground,andmakesoundandreasonabledecisionsaboutthecategoriesofthepatterns.
什么是Pattern呢,Watanabedefinesapattern“asoppositeofachaos;itisanentity,vaguelydefined,thatcouldbegivenaname.”比如说一张指纹图片,一个手写的文字,一张人脸,一个说话的信号,这些都可以说是一种模式。
识别在现实生活中是时时刻刻发生的,识别就是再认知(Re-Cognition),识别主要做的是相似和分类的问题,按先验知识的分类,可以把识别分为有监督的学习和没有监督的学习,下面主要介绍的支持向量机就是属于一种有监督的学习。
模式识别与统计学、人工智能、机器学习、运筹学等有着很大的联系,而且各行各业的工作者都在做着识别的工作,一个模式识别系统主要有三部分组成:
数据获取和预处理,数据表达和决策。
模式识别的研究主要集中在两方面,一是研究生物体(包括人)是如何感知对象的,二是在给定的任务下,如何用计算机实现模式识别的理论和方法。
前者是生理学家、心理学家、生物学家、神经生理学家的研究内容,属于认知科学的范畴;后者通过数学家、信息学专家和计算机科学工作者近几十年来的努力,已经取得了系统的研究成果。
模式识别的方法介绍:
模式识别方法(PatternRecognitionMethod)是一种借助于计算机对信息进行处理、判决分类的数学统计方法。
应用模式识别方法的首要步骤是建立模式空间。
所谓模式空间是指在考察一客观现象时,影响目标的众多指标构成的多维空间。
每个指标代表一个模式参量。
假设一现象有几个事件(样本)组成,每一个事件都有P个特征参量(X1,X2,...Xp),则它就构成P维模式空间,每一个事件的特征参量代表一个模式。
模式识别就是对多维空间中各种模式的分布特点进行分析,对模式空间进行划分,识别各种模式的聚类情况,从而做出判断或决策。
分析方法就利用“映射”和“逆映射”技术。
映射是指将多维模式空间进行数学变换到二维平面,多维空间的所有模式(样本点)都投影在该平面内。
在二维平面内,不同类别的模式分布在不同的区域之间有较明显的分界域。
由此确定优化方向返回到多维空间(原始空间),得出真实信息,帮助人们找出规律或做出决策,指导实际工作或实验研究。
针对不同的对象和不同的目的,可以用不同的模式识别理论、方法,目前主流的技术方法是:
统计模式识别、句法模式识别、模糊模式识别、神经网络法、逻辑推理法。
(1)统计模式识别
统计模式识别方法也称为决策论模式识别方法,它是从被研究的模式中选择能足够代表它的若干特征(设有d个),每一个模式都由这d个特征组成的在d维特征空间的一个d维特征向量来代表,于是每一个模式就在d维特征空间占有一个位置。
一个合理的假设是同类的模式在特征空间相距较近,而不同类的模式在特征空间则相距较远。
如果用某种方法来分割特征空间,使得同一类模式大体上都在特征空间的同一个区域中,对于待分类的模式,就可根据它的特征向量位于特征空间中的哪一个区域而判定它属于哪一类模式。
这类识别技术理论比较完善。
方法也很多,通常较为有效,现已形成了完整的体系。
尽管方法很多,但从根本上讲,都是直接利用各类的分布特征,即利用各类的概率分布函数、后验概率或隐含地利用上述概念进行分类识别。
其中基本的技术为聚类分析、判别类域界面法、统计判决等。
1)聚类分析
在聚类分析中,利用待分类模式之间的“相似性”进行分类,更相似的作为一类,更不相似的作为另外一类。
在分类过程中不断地计算所分划的各类的中心,下一个待分类模式以其与各类中心的距离作为分类的准则。
聚类准则的确定,基本上有两种方式。
一种是试探方式。
凭直观和经验,针对实际问题定义一种相似性测度的阈值,然后按最近邻规则指定某些模式样本属于某一聚类类别。
例如欧氏距离测度,它反映样本间的近邻性,但将一个样本分到两个类别中的一个时,必须规定一距离测度的阈值作为聚类的判别准则,按最近邻规则的简单试探法和最大最小聚类算法就是采用这种方式。
另一种是聚类准则函数法。
定一种准则函数,其函数值与样品的划分有关。
当取得极小值时,就认为得到了最佳划分。
实际工作中采用得最多的聚类方法之一是系统聚类法。
它将模式样本按距离准则逐步聚类,类别由多到少,直到合适的分类要求为止。
2)判别类域界面法
判别类域界面法中,用已知类别的训练样本产生判别函数,这相当于学习或训练。
根据待分类模式代入判别函数后所得值的正负而确定其类别。
判别函数提供了相邻两类判决域的界面,最简单、最实用的判别函数是线性判别函数。
线性判别函数的一般表达为下述矩阵式:
其中,
,称为权向量,
为n维特征向量的样本,
为阈值权。
判别函数是n维特征空间中某个x点到超平面的距离。
若以
表示x到超平面H的投影向量;r为到超平面H的垂直距离;
为权向量
的绝对值;
为
方向上的单位向量,则有
利用线性判别函数进行决策就是用一个超平面对特征空间进行分割。
超平面H的方向由权向量决定,而位置由阈值权的数值确定,H把特征空间分割为两个决策区域。
当
时,x在H的正侧;
时,x在H的负侧。
3)统计判别
在统计判决中,在一些分类识别准则下严格地按照概率统计理论导出各种判决准则,这些判决准则要用到各类的概率密度函数、先验概率或条件概率,即贝叶斯法则。
贝叶斯判别原则有两种形式,一种是基于最小错误率,即若
换言之,要求最小错误率,就是要求
为最大。
另一种是基于最小风险,对于某个x取值采取决策所带来的风险定义为:
其中
表示对于某一样品
而采取决策
时的损失。
基于最小风险的贝叶斯规则为:
若
则
。
也就是说,对于所有x取值的条件风险
最小风险(损失)的决策是使
取得最小值时的决策。
4)支持向量机
统计学习理论是一种专门的小样本统计理论,为研究有限样本情况下的统计模式识别和更广泛的机器学习问题建立了一个较好的理论框架,同时也发展了一种新的模式识别方法——支持向量机,能够较好的解决小样本学习问题。
基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。
包括模式识别、神经网络等在内,现有机器学习方法共同的重要理论基础之一是统计学。
传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设,但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。
与传统统计学相比,统计学习理论(StatisticalLearningTheory或SLT)是一种专门研究小样本情况下机器学习规律的理论.V.Vapnik等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视,统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。
它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等),同时,在这一理论基础上发展了一种新的通用学习方法——支持向量机(SupportVectorMachine或SVM),它已初步表现出很多优于已有方法的性能。
一些学者认为,SLT和SVM正在成为继神经网络研究之后新的研究热点,并将有力地推动机器学习理论和技术的发展我国早在八十年代末就有学者注意到统计学习理论的基础成果,但之后较少研究,目前只有少部分学者认识到这个重要的研究方向。
本文旨在向国内介绍统计学习理论和支持向量机方法的基本思想和特点,以使更多的学者能够看到它们的优势从而积极进行研究。
支持向量机基本过程:
(基于LIBSVM工具箱)
一、支持向量机是解决数据分类问题的一种流行技术,甚至有人认为它用起来比神经网络还要好用,但是,使用者对SVM不熟悉常常得到不理想的结果,这里我们介绍一下如何使用支持向量机来得到较理想的结果。
我们介绍的主要是对SVM研究者的一个指导,并不是说要得到最好的精度,我们也没有打算解决什么有挑战或者有难度的问题,我们的目的是让SVM研究者们掌握一个能有快又好的得到可行解得秘诀。
尽管使用者不用彻底理解SVM的理论,但是,我们简要介绍SVM的基础,因为这些东西对于后面的解释是有必要的。
一项分类工作通常包含训练数据和测试数据,这些数据就是一些例子,每个例子又包括它的类别和它的一些特性。
建立SVM的目的就是建立一个模版,这个模版可以预测训练数据集中的数据属于哪一类。
给定一组训练数据
,SVM需要解决下面的最优化问题:
这里
通过
函数影射到了一个高维或者无穷维的空间,SVM找到一个线性可分的超平面,使得这个超平面在高维空间有最大的边界值。
C>0是对于错误部分的惩罚参数。
此外,
被称作核函数,尽管研究者不断的提出新的核函数,初学者可以在介绍SVM的课本上找到四个基本的核函数:
这里
都是核函数的参数。
(2)句法模式识别
句法模式识别也称为结构模式识别。
在许多情况下,对于较复杂的对象仅用一些数值特征已不能较充分地进行描述,这时可采用句法识别技术。
句法识别技术将对象分解为若干个基本单元,这些基本单元称为基元;用这些基元以及他们的结构关系来描述对象,基元以及这些基元的结构关系可以用一个字符串或一个图来表示;然后运用形式语言理论进行句法分析,根据其是否符合某类的文法而决定其类别。
一个未知类别的模式字符串,当它是属于
中的一个句子,就应属于
类。
假如不属于任何一种语言,则它可被拒识,即x不被接受为M类中的任一类。
(3)模糊模式识别
在人们的实际生活中,普遍存在着模糊概念,诸如“较冷”、“暖和”、“较重”、“较轻”、“长点”、“短点”等等都是一些有区别又有联系的无确定分界的概念。
模糊识别技术运用模糊数学的理论和方法解决模式识别问题,因此适用于分类识别对象本身或要求的识别结果具有模糊性的场合。
这类方法的有效性主要在于隶属函数是否良好。
目前,模糊识别方法有很多,大致可以分为两种,即根据最大隶属原则进行识别的直接法和根据择近原则进行归类的间接法,分别简介如下:
1)根据最大隶属原则进行识别的直接法
若已知个类型在被识别的全体对象U上的隶属函数,则可按隶属原则进行归类。
此处介绍的是针对正态型模糊集的情形。
对于正态型模糊变量x,其隶属度为
其中a为均值,
为相应的方差
按泰勒级数展开,取近似值得:
若有n种类型m个指标的情形,则第i种类型在第j种指标上的隶属函数是
其中
和
分别是第i类元素第j种指标的最小值和最大值,
而
是第i类元素第j种指标的方差。
2)根据择近原则进行归类的间接法
若有n种类型
每类都有m个指标,且均为正态型模糊变量,相应的参数分别为,
。
其中,
而
是
的方差。
待判别对象B的m个指标分别具有参数
且为正态型模糊变量,则B与各个类型的贴近度为:
记
,又有
,,按贴近原则可认为B与Ai0最贴近。
(4)神经网络法
人工神经网络是由大量简单的基本单元———神经元(neuron)相互联接而成的非线性动态系统,每个神经元结构和功能比较简单,而由其组成的系统却可以非常复杂,具有人脑的某些特性,在自学习、自组织、联想及容错方面具有较强的能力,能用于联想、识别和决策。
在模式识别方面,与前述方法显著不同的特定之一是训练后的神经网络对待识模式特征提取与分类识别在该网络可以一同完成。
神经网络模型有几十种,其中BP(误差反传播算法)网络模型是模式识别应用最广泛的网络之一。
它利用给定的样本,在学习过程中不断修正内部连接权重和阈值,使实际输出与期望输出在一定误差范围内相等。
BP算法的主要思想是从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。
算法分成两个阶段:
第一阶段(正向过程)输入信息从输入层经隐层逐层计算各单元的输出值;第二阶段(反向传播过程)内输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值。
Hopfield网络与BP网络不同的是它是一种反馈网络。
反馈网络的基本单元时与前馈网络类似的神经元,其特性可以是阈值函数或sigmoid函数。
反馈网络是单层的,各单元地位平等,每个神经元都可以与所有其他的神经元连接。
如果考虑一个二层前馈网络,其输出层与输入层的神经元数相同,每一个输出都直接连接(反馈)到相对应的一个输入上,该网路就等价于一个反馈网络。
反馈网络有一般非线性系统的许多性质,如稳定性问题、各种类型的吸引子以及混沌现象等,在某些情况下还有随机性、不可预测性。
同时,Hopfield网络还满足权值对称和无自反馈性质。
(5)逻辑推理法
逻辑推理法是对待识客体运用统计(或结构、模糊)识别技术,或人工智能技术,获得客体的符号性表达即知识性事实后,运用人工智能技术对知识的获取、表达、组织、推理方法,确定该客体所归属的模式类(进而使用)的方法。
它是一种与统计模式识别、句法模式识别相并列(又相结合)的基于逻辑推理的智能模式识别方法。
它主要包括知识表示、知识推理和知识获取三个环节。
(6)新的模式识别方法
1共享核函数模型
概率密度估计构成一个无监督的方法,该方法试图从所得到的没有标记的数据集中建立原始密度函数的模型。
密度估计的一个重要应用就是它可以被用于解决分类问题。
广泛应用于统计模式识别中密度估计的方法之一是基于混合密度模型的。
根据期望最大(EM)算法得到了这些模型中有效的训练过程。
在参考文献[6]中,作者指出,按照共享核函数可以得出条件密度估计的更一般的模型,这里类条件密度可以用一些对所有类的条件密度估计产生作用的核函数表示。
作者首先提出了一个模型,该模型对经典径向基函数(RBF)网络进行了修改,其输出表示类条件密度。
与其相反的是独立混合模型的方法,其中每个类的密度采用独立混合密度进行估计。
最后提出了一个更一般的模型,上面提到的模型是这个模型的特殊情况。
2粗糙集理论(RoughSetTheory,简记RST)方法
在20世纪70年代,波兰学者PawlakZ和一些波兰的逻辑学家们一起从事关于信息系统逻辑特性的研究。
粗糙集理论就是在这些研究的基础上产生的。
1982年,PawlakZ发表了经典论文RoughSets,宣告了粗糙集理论的诞生。
此后,粗糙集理论引起了许多科学家、逻辑学家和计算机研究人员的兴趣,他们在粗糙集的理论和应用方面作了大量的研究工作。
1991年,PawlakZ的专著和1992年应用专集的出版,对这一段时期理论和实践工作的成果作了较好的总结,同时促进了粗糙集在各个领域的应用。
此后召开的与粗糙集有关的国际会议进一步推动了粗糙集的发展。
越来越多的科技人员开始了解并准备从事该领域的研究。
目前,粗糙集已成为人工智能领域中一个较新的学术热点,在模式识别、机器学习、知识获取、决策分析、过程控制等许多领域得到了广泛的应用。
模拟传感器信号的一个方法,在点的非空不可数集合下实现集合的近似,引入了基于粗糙集理论的离散粗糙积分。
离散粗糙积分有助于近似推理和模式识别中连续信号的分割。
在近似推理中,离散粗糙积分为确定某特定采样期间传感器的相关性提供一个基。
在模式识别中,离散粗糙积分可用于如雷达天气数据的分类、汽车模式分类及动力系统故障波形分类等方面。
粗糙集理论是处理模糊和不确定性的一个新的数学工具。
用粗糙集理论构造决策规则的算法一般都是考虑决策规则的数量而不是它们的代价。
采用多目标决策来协调规则的简明性和代价之间的冲突,以及提高粗糙集的效率和效力。
基于模式识别方法的动力系统瞬态稳定性估计(TSA)通常按两个模式的分类问题进行处理,即区分稳定和不稳定类。
其中有两个基本问题:
(1)选择一组有效的特征;
(2)建立一个具有高精度分类的模式分类器。
参考文献[10]将粗糙集理论与向后传播的神经网络(BPNN)相结合来进行瞬态稳定性估计,包括特征提取和分类器构造。
首先,通过初始输入特征的离散化,利用基于RST的诱导学习算法来简化初始特征集。
然后,利用采用半监督学习算法的BPNN作为一个“粗糙分类器”将系统稳定性分为三类,即稳定类、不稳定类和不确定类(边界区域)。
不确定类的引入提供了减少误分类的一个切实可行的方法,且分类结果的可靠性也因此而大大提高。
3仿生模式识别(拓扑模式识别)
一种模式识别理论的新模型,它是基于“认识”事物而不是基于“区分”事物为目的。
与传统以“最佳划分”为目标的统计模式识别相比,它更接近于人类“认识”事物的特性,故称为“仿生模式识别”。
它的数学方法在于研究特征空间中同类样本的连续性(不能分裂成两个彼此不邻接的部分)特性。
文献[11]中用“仿生模式识别”理论及其“高维空间复杂几何形体覆盖神经网络”识别方法,对地平面刚性目标全方位识别问题作了实验。
对各种形状相像的动物及车辆模型作全方位8800次识别,结果正确识别率为99.75%,错误识别率与拒识率分别为0与0.25%。
(7)利用模式识别方法实现分类
1文献内容方法介绍
问题来源于自动车型识别器的设计,分类器的输入为一个三维的数据,分别为汽车的三个特征,顶蓬长度与车辆长度之比,称之为顶长比;顶蓬长度与车辆高度之比,称之为顶高比;以顶蓬中垂线为界,前后两部分之比,称之为前后比。
分类目标为把汽车分为客车,货车,轿车三种,因此我们设计一个三输入三输出的三层bp网络,中间层节点的数目我们选择8个,实验证明,这个3-8-3的三层神经网络分类器能达到很好的效果。
神经网络的结构为下图:
一般的BP神经网络存在着许多问题,如学习算法的收敛速度很慢,存在局部极小值,网络学习具有不稳定性等。
这些问题一直限制着BP神经网络在大范围内的应用。
动量BP神经网络是带动量的批处理梯度下降的网络,它是通过改变学习率η来提高网络的性能,并且利用附加动量的作用自动避免陷入局部极小值。
而且动量BP算法可使网络在修正其权值时,除考虑误差在梯度上的作用外,还会考虑在误差曲面上变化趋势的影响。
本文采用的就是在权值改变量中加入一个动量因子来加速收敛并防止网络振荡。
增加动量因子η的BP算法,即为动量BP算法。
在引入动量项后,网络连接权的迭代关系具有如下形式:
x(k+1)=x(k)+Δx(k+1)
Δx(k+1)=ηΔx(k)+α(k)(1-η)
式中,x(k)为第k次迭代各层之间的连接权向量或者是阀值向量。
η为引入的动量因子,要求0<η<1。
为第k次迭代的神经网络输出误差对各权值或阀值的梯度向量。
E(k)为第k次迭代的网络输出的总误差性能,一般采用的网络误差为均方误差MSE(meansquareerror)。
α(k)为第k次迭代的网络学习率,在训练时,当误差以减小的方式趋于目标时,说明修正方向正确,可以使步长增大,因此可以将学习率乘以一个增量因子kinc使学习率增加。
动量项的作用在于记忆前一时刻连接权的变化方向(即变化量的值),这样就可以采用较大的学习速率η,以提高学习的速度。
增加动量项,利用其“惯性效应”来抑制可能产生的振荡,起到了平滑的作用。
2程序复现及结果分析
样本数据:
data=[0.8645,2.3053,0.9288;%%客车的样本
0.8456,1.7366,0.9721;
0.8329,1.9963,0.9626;
0.9498,2.4015,0.9466;
0.8735,2.4342,0.8956;
0.7797,1.5103,0.9315;
0.8805,1.5903,0.9466;
0.7453,1.3771,0.9543;
0.1473,0.4372,0.3926;%%货车的样本
0.1526,0.4592,0.4588;
0.3421,1.0006,0.5166;
0.3164,0.9250,0.1875;
0.2311,0.9459,0.1875;
0.1534,0.5280,0.5172;
0.3006,0.8367,0.1874;
0.3926,1.0277,0.1875;
0.3692,0.7500,1.5238;%%轿车的样本
0.3687,0.8138,2.8823;
0.4444,1.0012,2.1818;
0.2921,0.9845,2.3000;
0.3319,1.0764,1.4878;
0.3745,1.3827,1.3600;
0.2747,0.9566,1.4878;
0.3331,1.1811,1.5531];%%客车的样本
目标把数据分为三类,客车样本的目标为:
[100],货车样本的目标为:
[010],轿车样本的目标为:
[001]。
把实验数据等间隔的分为训练集与测试集。
通过反复实验,我们最终选择了一个隐含层为8个神经元,输出为3个神经元的BP神经网络来实现。
如下为参数设置:
net.trainParam.show=100;
net.trainParam.lr=0.2;
net.trainParam.mc=0.90;
net.trainParam.epochs=100000;
net.trainParam.goal=0.01;
下图是经过反复训练后得到的平方误差曲线。
红色表示训练集误差,蓝色表示测试集误差。
从图中可以看出,当目标值设为0.01时,训练刚开始会有一点小振荡。
当平方误差训练目标值取到net.trainParam.goal=1e-5时,下图表示出很好的收敛性,达到了很好的分类效果。
an=sim(net,pn);
a=poststd(an,meant,stdt)
仿真网络后得到
a=
Columns1through8
1.00110.99770.99951.00480.99880.95781.00060.8878
-0.00240.00060.0005-0.00930.00150.14790.00040.2761
-0.00090.00570.0006-0.00300.0002-0.05980.0001-0.0814
Columns9through16
-0.0016-0.00180.00090.00110.0007-0.0003-0.00010.0123
1.00000.99670.99581.00191.00100.99111.00310.9936
-0.00120.00230.003