实验指导书(模式识别).doc_第1页
实验指导书(模式识别).doc_第2页
实验指导书(模式识别).doc_第3页
实验指导书(模式识别).doc_第4页
实验指导书(模式识别).doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

模式识别实验指导书河北工业大学信息工程学院模式识别课程组2008年1月前 言模式识别是电子信息工程专业的一门重要的专业选修课。其目的是通过对模式识别基本理论、概念和方法的学习,使学生能够灵活运用所学知识,借助计算机解决实际工程应用中的自动识别问题。而模式识别实验是本门课程重要的教学环节,其目的是使学生掌握统计模式识别中常见分类方法的算法设计及其验证方法,通过接受实验的训练,以提高学生的分析和解决问题的能力。为此,河北工业大学信息工程学院编写了模式识别实验指导书。在编写中由于可供参考的实验指导资料有限,因此本书肯定存在不少不妥之处,恳请读者予以批评指正。本实验指导书共包含三个实验。第一个实验为安装并使用模式识别工具箱,通过本次实验可以让学生了解模式识别软件的具体形态、基本设置以及运行流程,了解一些基本识别方法的工作过程。第二个实验为用人工神经网络对二维样本进行分类,通过本次实验可以让学生掌握人工神经网络的运行机理,了解神经网络在解决实际问题时如何进行参数设置和模型选择。第三个实验为用支持向量机进行人脸识别,通过本次实验可以让学生掌握支持向量机的运行机理、参数选择与快速算法等,了解在实际分类中学习样本库的重要性。目 录 实验一 安装并使用模式识别工具箱-4实验二 用人工神经网络对二维样本分类-13实验三 用支持向量机进行人脸识别-22实验一 安装并使用模式识别工具箱 (2学时)一、实验目的 1掌握安装模式识别工具箱的技巧,能熟练使用工具箱中的各项功能;2熟练使用最小错误率贝叶斯决策器对样本分类;3熟练使用感知准则对样本分类;4熟练使用最小平方误差准则对样本分类;5了解近邻法的分类过程,了解参数K值对分类性能的影响(选做);6了解不同的特征提取方法对分类性能的影响(选做)。二、实验内容 1安装模式识别工具箱;2用最小错误率贝叶斯决策器对呈正态分布的两类样本分类;3用感知准则对两类可分样本进行分类,并观测迭代次数对分类性能的影响;4用最小平方误差准则对云状样本分类,并与贝叶斯决策器的分类结果比较;5用近邻法对双螺旋样本分类,并观测不同的K值对分类性能的影响(选做);6观测不同的特征提取方法对分类性能的影响(选做)。三、实验仪器、设备 1 PC机系统最低配置 512M 内存、P4 CPU;2 Matlab 仿真软件 7.0 / 7.1 / 2006a等版本的Matlab 软件。四、实验原理 1模式识别工具箱模式识别工具箱是学习模式识别基本原理、灵活应用既有的模式识别方法、开发研制新的识别方法、提高学生分析和解决问题能力的一个良好平台。本实验采用的模式识别工具箱是由Elad Yom-Tov,Hilit Serby和David G. Storka等人开发的。2最小错误率贝叶斯决策器在模式识别领域,贝叶斯决策通常利用一些决策规则来判定样本的类别。最常见的决策规则有最大后验概率决策和最小风险决策等。设共有个类别,各类别用符号代表。假设类出现的先验概率以及类条件概率密度是已知的,那么应该把划分到哪一类才合适呢?若采用最大后验概率决策规则,首先计算属于类的后验概率 然后将判决为属于类,其中 若采用最小风险决策,则首先计算将判决为类所带来的风险,再将判决为属于类,其中 可以证明在采用0-1损失函数的前提下,两种决策规则是等价的。贝叶斯决策器在先验概率以及类条件概率密度已知的前提下,利用上述贝叶斯决策规则确定分类面。贝叶斯决策器得到的分类面是最优的,它是最优分类器。但贝叶斯决策器在确定分类面前需要预知与,这在实际运用中往往不可能,因为一般是未知的。因此贝叶斯决策器只是一个理论上的分类器,常用作衡量其它分类器性能的标尺。3感知准则设有一组样本,其中是规范化增广样本向量。现欲寻找一个解向量,使得。感知准则通过使 最小而求出向量,其中是被解向量错分的样本集。上式一般用梯度下降法求解。4最小平方误差准则设有一组样本,其中是规范化增广样本向量。现欲寻找一个解向量,使得。最小平方误差准则通过使 最小而求出向量。上式一般用最小二乘法求解。5近邻法原理近邻法是一种经典的模式识别方法。正如其名所示,近邻法在分类时运用如下“最近邻分类规则”对测试样本进行分类:在的周围找出离其最近的个近邻样本,该个样本中最频繁出现的那一类样本所对应的类别就是所属的类别。以图1-1为例,图中存在两类样本,第一类记为并用黑点表示,第二类记为并用方框表示。现欲用NN判决是属于类还是类。假设取,则可找出的5个近邻样本并用圆圈围住,圆圈中有3个样本属于类(目标值,),2个样本属于类(目标值,),那么根据规则应属于类。图1-1 近邻法的分类原理示意图6特征提取特征提取是模式识别中的关键一环。因为原始的特征数量可能很大,或者说样本处于一个高维空间中,因此可以通过映射或变换的办法在低维空间中来表示样本,这个过程就是特征提取。常见的特征提取方法有主成分分析(PCA)与主曲线等。更详细的内容可参见教材第8章。五、实验步骤 1安装模式识别工具箱。首先将工具箱文件拷贝至指定文件夹里,然后在MATLAB环境下将该文件夹设置成“current directory”(即当前文件夹);最后在MATLAB命令行状态下,键入Classifier并按回车键;则可得到如图1-2所示主界面。在该主界面上,可以装入样本文件(见界面“Filename”处),可以选择特征提取方式(见界面“preprocessing”处),可以选择不同的模式识别方法(见界面“algorithms”处),识别结果(识别错误率)显示在界面“classification errors”处。图1-2 模式识别工具箱主界面2用最小错误率贝叶斯决策器对呈正态分布的两类样本分类。首先点击界面“Filename”处的下拉式菜单,在文件列表中选择双螺旋样本文件XOR.mat;然后在界面“preprocessing”处下拉式菜单中选择“None”,在界面“Algorithm”处下拉式菜单中选择“None”,最后点击界面上的“Start”按钮,得到如图1-3所示的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。图1-3 最小错误率贝叶斯决策器的分类结果3用感知准则对两类可分样本进行分类。首先点击界面“Filename”处的下拉式菜单,在文件列表中选择可分样本文件Seperable.mat;然后在界面“preprocessing”处下拉式菜单中选择“None”,在界面“Algorithm”处下拉式菜单中选择“Perceptron”,在界面“Num of iteration”处填入数字“300”,最后点击界面上的“Start”按钮,得到如图1-4所示的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。图1-4用感知准则对两类可分样本分类后的结果现在界面“Num of iteration”处重新填入数字“10000”,然后点击界面上的“Start”按钮,可得到新的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。最后比较不同迭代次数情形下分类效果的异同。4用最小平方误差准则对两类样本进行分类。首先点击界面“Filename”处的下拉式菜单,在文件列表中选择可分样本文件Clouds.mat;然后在界面“preprocessing”处下拉式菜单中选择“None”,在界面“Algorithm”处下拉式菜单中选择“LS”,最后点击界面上的“Start”按钮,得到如图1-5所示的分类结果,其中黑线为最小平方误差准则的分类结果,红线为贝叶斯决策器的分类结果。将这两种分类结果的比较(分类效果好坏,能否将样本完全分开等)记录下来,并使用屏幕拷贝方式将分类结果保存于WORD文档里,最后如实记录界面“classification errors”处显示的分类错误率。图1-5用最小平方误差准则对两类可分样本分类后的结果5用近邻法对双螺旋样本进行分类。首先点击界面“Filename”处的下拉式菜单,在文件列表中选择双螺旋样本文件Spiral.mat;然后在界面“preprocessing”处下拉式菜单中选择“None”,在界面“Algorithm”处下拉式菜单中选择“Nearest Neighbor”,在界面“Num of nearest neighbor”处填入数字“3”,最后点击界面上的“Start”按钮,得到如图1-6所示的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并记录界面“classification errors”处显示的分类错误率。图1-6 近邻法对双螺旋样本分类后的结果在界面“Num of nearest neighbor”处重新填入数字“12”,然后点击界面上的“Start”按钮,可得到新的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。最后比较“k=3”与“k=12”两种情形下分类效果的异同。6特征提取方法对分类效果的影响。用感知准则对两类可分样本进行分类。首先点击界面“Filename”处的下拉式菜单,在文件列表中选择可分样本文件XOR.mat;然后在界面“preprocessing”处下拉式菜单中选择“PCA”,在界面“New data dimension”处填入数字2,在界面“Algorithm”处下拉式菜单中选择“Nearest Neighbor”,在界面“Num of nearest neighbor”处填入数字“3”,最后点击界面上的“Start”按钮,得到如图1-7(a)所示的分类结果。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。现在界面“New data dimension”处重新填入数字1,其它条件不变,然后点击界面上的“Start”按钮,可得到新的分类结果如图1-7(b)所示。使用屏幕拷贝方式将该分类结果保存于WORD文档里,并如实记录界面“classification errors”处显示的分类错误率。最后比较提取的特征数目不同的情形下分类效果(即图1-7(a)(b)两个图)的异同。 (a)主成分分析 提取2个特征 (b)主成分分析 提取1个特征图1-7 特征提取方法对分类结果的影响六、实验报告要求 1 按照固定格式(见附录1)撰写实验报告;2 在实验报告中,必须对实验指导书中所列思考题给予回答;3 详细写出实验总结与心得体会,可以根据自己的实验情况,在实验设置等方面给出合理化建议。七、实验注意事项1 在实验中如遇到问题,可仔细阅读该工具箱自带的用户指南(User guide)。八、思考题 1 在图1-7中使用主成分分析进行特征提取,为什么提取的特征数目为1时(见图1-7(b),分类效果不尽人意?附录1:实验报告固定格式实 验 报 告班级: 姓名: 学号: 组别: 同组人: 课程名称: 实验室: 实验时间: (使用实验报告纸的,以上内容可按照实验报告纸格式填写)实验一 实验项目名称一、实验目的:二、实验内容与原理:三、实验器材(设备、元器件、软件工具、平台):四、实验步骤:五、实验数据及结果分析:六、实验结论:七、思考题:八、其他(实验总结、心得体会及对本实验方法、手段及过程的改进建议等)。实验二 用人工神经网络对二维样本分类(2学时)一、实验目的 1掌握人工神经网络的运行机理、参数设置和模型选择等;2熟悉感知器的原理、特性与功能;3熟悉误差反传网的原理、特性与功能;4熟悉径向基函数网的原理、特性与功能;二、实验内容 1观察人工神经元的输出随权值与的变化;2生成两类样本,然后用感知器对两类样本进行分类;3用误差反传网实现函数逼近,观察参数设置和拓扑结构对逼近性能的影响;4用径向基函数网逼近任意函数;三、实验仪器、设备 1 PC机系统最低配置 512M 内存、P4 CPU;2 Matlab 仿真软件 7.0 / 7.1 / 2006a 等版本的Matlab 软件。四、实验原理 1人工神经网络:人工神经网络(artificial neural networks, ANN)学习,在模式识别领域占有重要地位。现在的计算机尽管有很高的计算速度与超大的存储容量,但它却缺乏感知、识别、联想、决策和适应环境等人脑具备的能力,因此能否让计算机象人脑那样工作多少年来一直是不同领域的学者试图认识并回答的问题。人脑是由极大量的的生物神经元经过复杂的相互连接而成的一种非线性并行信息处理系统,尽管单个生物神经元的反应速度比构成计算机的基本单元逻辑门慢五六个数量级,但人脑中神经元数目巨大且连接复杂,因此对有些问题的处理速度比计算机还快。由此看来人脑的组织结构和运行机制有其绝妙的特点,从模仿人脑出发,探究更接近人类智能的信息处理系统具有重大意义,这促使人们大力研究人工神经网络学习方法与模型。人工神经网络是用大量的简单计算-处理单元(神经元)构成的非线性系统,它具有学习能力、记忆能力、计算能力以及各种智能处理功能,在不同程度和层次上模仿人脑神经系统的信息处理、存储及检索功能。当然这种模拟是粗略而且简单的,无论是在规模上还是功能上都与人脑差得太远,但这并不妨碍它在一些实际工程应用领域显示出威力。2 一个典型的人工神经元模型:生物神经元是生物神经系统总最基本的单元,是构成生物神经系统的基石。它由细胞体、树突和轴突组成,轴突与其它神经元形成功能性接触。当外界刺激达到一定阈值时,神经元处于兴奋状态并经轴突输出,否则处于抑制状态。人工神经元是生物神经元的某种简化和抽象,下面以M-P神经元为例介绍其基本原理。图2-1(a)是一个M-P神经元模型,它有个输入结点,一个输出结点。若输入,则输出,其中为第个输入结点与输出结点间的连接权值,为激活函数,为激活阈值。图2-1 神经网络模型拓扑结构图。(a)M-P神经元; (b)感知器; (c)径向基函数网3 两个重要的学习规则:学习是神经网络最重要的特征之一。神经网络通过学习改变其内部状态,使输入与输出呈现出某种规律性。学习是按照一定的学习规则进行的,Hebb规则和误差修正规则是两种最重要的规则。Hebb规则可以归结为:如果神经网络中某一神经元与另一直接与其相连的神经元同时处于兴奋状态,那么这两个神经元间的连接强度(权值)应增强。假设第和个神经元的状态分别为和,则两个神经元间的权值修正量为,称为学习因子。误差修正规则的最终目的是使网络中某一神经元的实际输出在均方意义上最逼近于期望输出,令第个神经元的期望输出为,实际输出为,则第个输入结点与第个神经元间的权值修正量为。4 三种经典的网络模型:在神经网络的研究中经常提到神经网络学习模型的概念,神经网络模型是关于一个神经网络的综合描述,包括网络的拓扑结构、信息传递方式、学习方式和学习算法等。目前人们已提出了上百种神经网络模型,表2-1列出了其中最经典的三种。神经网络模型按学习方式可分为有监督学习和无监督学习;按拓扑结构可分为前向网和反馈网,前向网有明显的层次,信息的流向由输入层到输出层,反馈网没有明显的层次,存在输出单元到输入单元的反馈连接;按网络活动方式可分为确定型网和随机型网,确定型网由确定性输入经确定性作用函数,产生确定性输出,随机型网由随机输入或随机作用函数,产生遵从一定概率分布的随机输出。网络模型感知器误差反传网径向基函数网英文缩写BPRBF提出时间195719861988学习方式有监督有监督有监督拓扑结构前向前向前向活动方式确定型确定型确定型表2-1 三种经典的神经网络模型比较 感知器感知器在神经网络乃至整个机器学习领域都有重要意义。即使是对其持激烈批评态度的Minsky,在1988年重版其名著感知器时也在扉页上写上了“仅以此纪念Rosenblatt”。图2-1(b)就是一个感知器示意图,它是一个双层网络,输入层有个结点,输出层有个计算单元,采用误差修正规则作为学习准则。误差反传网误差反传网(BP网)得名于运行其上的BP算法,它又名多层前向网或者多层感知器(multi-layer perceptron, MLP)。与经典的感知器只有输入层与输出层相比,BP网在输入层与输出层间还有若干隐层,通过BP算法从后向前修正各层之间的连接权值,能求解感知器所不能解决的问题。经典的感知器的收敛性不受权值的初值影响,但BP网权值的初值选择会影响收敛速度,而且有时会陷入局部极小点,不能保证收敛到全局最优点;当BP网的层数大于三层时,陷入局部极小点的可能性很大,此时需利用先验知识缩小搜索范围。另外BP网的输入层与输出层结点数由问题本身决定,例如在模式识别中输入层结点数为特征维数,输出层结点数为类别数;但中间隐层的结点数只能靠经验确定。一般而言,要解决的问题越复杂,需要的隐层的结点数越多,但过多的结点会导致“过学习”,从而使网络的泛化能力变差。径向基函数网1988年Broomhead等将径向基函数(radial basis function, RBF)首先用于神经网络设计,从而构成了RBF网。RBF网如图2-1(c)所示,它与感知器很相似,只是感知器多了一个隐层,因此是一种三层网。隐层单元采用径向基函数作为其输出特性,输入层到隐层的权值固定为1,输出结点为线性求和单元,隐层到输出结点间的权值可调。假设RBF网输入层有个结点,隐层有个结点,若输入,是基函数的中心,为基函数的宽度,则输出为。一个函数可以表示成一组基函数的加权和,因此RBF网可以看作是用隐层单元的输出函数构成的一组基去逼近一个函数。五、实验步骤 1在MATLAB命令行状态下,键入DEMO并按回车键;得到如图2-2所示的界面。然后点击“Toolboxes”,打开MATLAB工具箱。再点击“Neural networks”,选定神经网络工具箱,如图2-3所示。图2-2 打开MATLAB工具箱图2-3 选定神经网络工具箱2观察并记录人工神经元(Neurons)的特性与功能。首先在如图2-3所示界面上,将鼠标移至“simple neuron and transfer function”并双击之,得到如图2-4所示界面。然后双击如图2-4所示界面上的文字“run this demo”,得到图2-5。图2-4 选定神经元演示程序图2-5神经元演示模块在如图2-5所示界面上,拖动与与对应的“”符号,从而改变与的值,观察神经元的输出随权值与的变化情况,并将改变后的界面保存下来(在菜单“Edit”中选择“Copy figure”,再粘贴至WORD文档中)。3观察并记录感知器(Perceptrons)的特性与功能。在如图2-3所示界面上,将鼠标移至“Decisions Boundaries”并双击之,得到一个界面;然后双击界面上的文字“run this demo”,得到图2-6。仔细阅读该图上的英文说明,并照该说明一步步操作,以此实现用感知器对两类样本分类的目标,最后将分类结果保存下来。图2-6 感知器演示模块4观察并记录误差反传网(Back propagation Networks)的特性与功能。在如图2-3所示界面上,将鼠标移至“Generalization”上并双击之,得到一个界面;然后双击界面上的文字“run this demo”,得到图2-7。仔细阅读该图上的英文说明,并照该说明进行操作,以此达到用误差反传网逼近函数的目标,最后将逼近结果保存下来。图2-7 误差反传网演示模块5观察并记录径向基函数网(Radial Basis Networks)的特性与功能。在如图2-3所示界面上,将鼠标移至“Radial basis approximation”并双击之,得到图2-8。现将该图上的所有源代码拷贝至一个新文件“Raba.m”中,并在MATLAB命令行状态下执行Raba,以此实现用径向基函数网逼近函数的目标,最后将逼近结果保存下来。图2-8 径向基函数网演示模块六、实验报告要求1按照固定格式(见实验一的附录1)撰写实验报告;2在实验报告中,必须对实验指导书中所列思考题给予回答;3详细写出实验总结与心得体会,可以根据自己的实验情况,在实验设置等方面给出合理化建议。七、实验注意事项1 如果实验有充裕时间,可在如图2-3所示界面上,用鼠标双击“Application examples”中的几个例子,进一步加深对人工神经网络的理解。八、思考题1请详述感知器、误差反传网与径向基函数网等三种经典的网络模型间的联系与区别。实验三 用支持向量机进行人脸识别(2学时)一、实验目的 1掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等;2熟悉人脸识别的一般流程与常见识别方法;3熟悉不同的特征提取方法在人脸识别的应用;4了解在实际的人脸识别中,学习样本数等参数对识别率的影响;5了解非人脸学习样本库的构建在人脸识别的重要作用。二、实验内容 1构建非人脸学习样本库;2观测不同的特征提取方法对人脸识别率的影响;3观测不同的学习样本数对人脸识别率的影响;4观测支持向量机选用不同的核函数(线性核或径向基核)后对人脸识别率的影响;5观测支持向量机选用不同的核参数后对人脸识别率的影响。三、实验仪器、设备 1 PC机系统最低配置 512M 内存、P4 CPU;2 Matlab 仿真软件 7.0 / 7.1 / 2006a 等版本的Matlab 软件。3 CBCL人脸样本库;四、实验原理 1 人脸识别:人脸识别也就是利用计算机分析人脸图象,进而从中提取出有效的识别信息,用来“辨认”身份的一门技术。人脸识别技术应用背景广泛,可用于公安系统的罪犯身份识别、驾驶执照及护照等与实际持证人的核对、银行及海关的监控系统及自动门卫系统等。常见的人脸识别方法包括基于KL变换的特征脸识别、基于形状和灰度分离的可变形模型识别、基于小波特征的弹性匹配、基于传统的部件建模识别、基于神经网络的识别、基于支持向量机的识别等。其中特征脸方法、神经网络方法、基于支持向量机的方法等是基于整体人脸的识别,而基于提取眼睛等部件特征而形成特征向量的方法就是基于人脸特征的识别。虽然人类的人脸识别能力很强,能够记住并辨别上千个不同人脸,可是计算机则困难多了。其表现在:人脸表情丰富;人脸随年龄增长而变化;人脸所成图象受光照、成象角度及成象距离等影响;而且从二维图象重建三维人脸是病态过程,目前尚没有很好的描述人脸的三维模型。另外,人脸识别还涉及到图象处理、计算机视觉、模式识别以及神经网络等学科,也和人脑的认识程度紧密相关。这诸多因素使得人脸识别成为一项极富挑战性的课题。通常人类进行人脸识别依靠的感觉器官包括视觉、听觉、嗅觉与触觉等。一般人脸的识别可以用单个感官完成,也可以是多感官相配合来存储和检索人脸。而计算机的人脸识别所利用的则主要是视觉数据。另外计算机人脸识别的进展还受限于对人类本身识别系统的认识程度。研究表明,人类视觉数据的处理是一个分等级的过程,其中最底层的视觉过程(视网膜功能)起信息转储的作用,即将人眼接收的大量图象数据变换为一个比较规则的紧凑表达形式。生理学的研究表明,人眼视网膜上存在着低层次和高层次的细胞。其中,低层次的细胞对空间的响应和小波变换的结果相似;而高层次的细胞则依据一群低层次细胞的响应,而作出具体的线、面乃至物体模式的响应。以此为依据,在计算机人脸识别中,可以将那些通过大量图象数据简单处理后获得的特征定义为低层次特征,而将线、面、模式等描述特征定义为高层次特征。由此图象变换后的系数特征、小波变换特征及一些统计特征均属低层次特征的范畴,而人脸部件形状分析的结果则为高层次特征。由于视觉数据经传输后的重建,需依赖于人脑中早期形成的先验知识,因此在人的识别系统中,人脸的检测是一个整体识别和特征识别共同作用的结果。具体说来,远处辨认人,主要是整体识别,而在近距离的人脸识别中,特征部件的识别则更重要。另外,人脸的各部件对识别的贡献也不相同,如眼睛和嘴巴的重要程度大于人的鼻子,人脸上半部分重要性大于人脸下半部分,其中特别的人脸更容易被识别记住,比如说歪嘴,或是独眼龙等人脸就更容易为人记起,没有个性的人脸相对就需要更长的时间来辨认。根据对人脑的研究表明,人脸的表情识别和人脸识别虽然存在联系,但总体说是分开的、并行的处理过程。这些结论对于设计有效的识别方法起到了一定启发作用。人脸识别是一个跨学科富挑战性的前沿课题,但目前人脸识别还只是研究课题,尚不是实用化领域的活跃课题。人脸识别难度较大,主要难在人脸都是有各种变化的相似刚体,由于人脸部件不仅存在各种变形,而且和皮肤之间是平缓过渡,因此人脸是不能用经典的几何模型来进行识别分类的典型例子。如今人脸识别研究人员已经慢慢地将研究重点从传统的点和曲线的分析方法,过渡到用新的人脸模型来表达和识别人脸,其中弹性图匹配就是较成功的尝试。2支持向量机:SVM近年来成为模式识别领域发展最快的研究方向之一,并且在各个领域得到了广泛应用。SVM通过一个非线性映射将输入空间中的学习样本映射到高维特征空间中,然后利用结构风险最小化原则在中求取线性分类超平面,巧妙地引入核函数实现特征空间中的内积运算。SVM的基本原理可用图3-1来说明。如图3-1(a)所示,如果个独立样本,,不是线性可分的,这时可以通过一个未知的映射函数将样本映射到某特征空间中,得到,然后在中构造线性最优分类面(图(b),从输入空间的角度看,所得最优分类面是非线性的(图(c)。可记的集合为,的集合为。图3-1 SVM基本原理示意图 (a)输入空间中的个待分类样本 (b)样本被映射到特征空间中,并构建最优分类面 (c)从输入空间的角度看,分类面是非线性的在中构造线性最优分类面的方式与上节在输入空间中构造最优分类面的方式是一样的。设与对应的线性判别函数表达式为 (3.1)上式中求取与可归结为求解下面的约束优化问题 (3.2) 上式的解由下面的拉格朗日函数的鞍点给出 (3.3)上式中,为拉格朗日乘子。为得到鞍点令 (3.4) (3.5)将(3.4)和(3.5)一起代入到(3.3)中可得(3.2)的对偶规划 (3.6) 上式含有映射函数。若在中定义内积 (3.7) 将之代入到(3.6)后有 (3.8) 又设,矩阵的第行第列为,则(3.8)可写成矩阵形式。解(3.8)可得的最优值,并将(3.4)代入到(3.1)中可得中的线性判别函数表达式 (3.9)式(3.7)中的被称为核函数,它欲成为中的内积必须满足Mercer条件:使得积分算子为正。如果的维数很高,(3.7)等号右边的计算量会很大,甚至会陷入“维数灾难”而使得计算不可行;但通过上述代换,中的内积可基于中的变量通过给定的核函数直接计算得到,即使的维数非常高,SVM本身也并没有增加多少计算复杂度。特别是对某些映射函数而言,的维数是无限的,此时内积必须用积分来计算,这种代换的作用就更为明显。另外从以上推导过程可看出,在特征空间中构造最优分类面,并不需要以显式形式来考虑特征空间,也没有必要知道映射函数的形式,只需通过(3.7)计算内积即可。值得指出的是,以上推导的假设前提是个样本被映射到中以后能够线性可分,如果该前提不满足,则必须在中构造广义最优分类面。相应地(3.2)要改成 (3.10) 在(3.9)中,假设输入空间内的向量为,另有个向量,对应的不为零,它们被称为支持向量,则SVC的拓扑结构如图3-2所示,从图中看出SVM的计算复杂度取决于支持向量的数目。图3-2 SVC拓扑结构图五、实验步骤 1将CBCL人脸样本库放在硬盘上的指定位置;构建非人脸学习样本库并将之放在硬盘上的指定位置;2观测不同的特征提取方法对人脸识别率的影响。在MATLAB命令行状态下,首先键入faceclassify1(1)并按回车键,记录不采用任何特征提取时,程序的执行结果;然后键入faceclassify1(2) 并按回车键,记录采用主成分方法进行特征提取时程序的执行结果;最后键入faceclassify1(3) 并按回车键,记录采用核主成分方法进行特征提取时程序的执行结果;3观测不同的学习样本数对人脸识别率的影响。将源代码中的一个语句“face_lean=200”(见本实验附录1中的源代码片段),分别修改成“face_lean=20”、 “face_lean=50”、“face_lean=100”、“face_lean=300”后,再在MATLAB命令行状态下键入faceclassify1(1)并按回车键,记录程序的执行结果;4观测支持向量机选用不同的核函数(线性核或径向基核)后对人脸识别率的影响。先将源代码中的一个语句“ker=linear;”(即线性核),修改成“ker=rbf;”(即径向基核),再在MATLAB命令行状态下键入faceclassify1(1)并按回车键,记录程序的执行结果;5观测支持向量机选用不同的核参数后对人脸识别率的影响。先将源代码中的一个语句“p1=sqrt(sumsqr(svm_xlean(1,:)-mean(svm_xlean(1,:)./idlean);”,分别修改成“p1=0.5;”、 “p1=1;”、 “p1=2;”(即改变核参数p1的值),再在MATLAB命令行状态下分别键入faceclassify1(1)并按回车键,记录程序的执行结果。六、实验报告要求1按照固定格式(见实验一的附录1)撰写实验报告;2在实验报告中,必须对实验指导书中所列思考题给予回答;3详细写出实验总结与心得体会,可以根据自己的实验情况,在实验设置等方面给出合理化建议。七、实验注意事项 1在人脸识别源代码中(见附录一),有一行语句为“face_pname=D:userdatasetfaceface19X19_mit_cbcl;”,从该语句看出人脸学习样本库在硬盘上的具体位置为D:userdatasetfaceface19X19_mit_cbcl。如果人脸学习样本库在硬盘上的具体位置改变,上述语句也应随之修改,否则程序运行时会出现找不到人脸样本的情形。八、思考题 1为什么用计算机识别人脸比起人类自己识别人脸要困难得多?附录1:基于支持向量机的人脸识别源代码片段function faceclassify1(iflag)%参数 faceclassify(iflag)% iflag=1 不进行特征提取,直接利用象素点信息进行分类% iflag=2 用主成分分析方法进行特征提取后,再进行分类% iflag=3 用核主成分分析方法进行特征提取后,再进行分类%作者 Zhou yatong (Xian jiaotong university) 2001.01.18 if (nargin=1) help faceclassify1 returnend % The parameter of face and non_face dataset face_pname=D:userdatasetfaceface19X19_mit_cbcl; %人脸学习样本库在硬盘上的位置face_fname=face; nonface_pname=D:userdatasetnonface; %非人脸学习样本库在硬盘上的位置nonface_fname=nonface;nonface_test_pname=D:userdatasetnonfacenonface_test; %非人脸测试样本库在硬盘上的位置nonface_test_fname=nonface_test;imlen=19; % images pixels number in horizontal direction(image matrixs col num)imhigh=19; % images pixels number in vectical direction (image maxtixs row num)idlean=imlen*imhigh; % the dimension of learning sample idtest=idlean; % the dimension of testing sample % 学习样本与测试样本参数设置face_lean=200; % 人脸学习样本数nonface_lean=200; % 非人脸学习样本数face_test=100; % 人脸测试样本数nonface_test=100; % 非人脸测试样本数face_test_startnumber=1100; % 第一个人脸测试样本在人脸库中的序号nlean=face_lean+nonface_lean; % the total learning samples number ntest=face_test+nonface_test; % the total testing sample number %读取学习样本 for ix1=1:1:face_lean % face learn ix1temp=ix1; fprintf(+ learn sample no:%dn,ix1temp); face_sample=face_sampleread(face_pname,face_fname,ix1temp,imlen,imhigh); xlean(ix1,:)=face_sample; end for ix2=face_lean+1:1:nlean % nonface learn ix2temp=ix2-face_lean; fprintf(- learn sample no:%dn,ix2temp); nonface_sample=nonface_sampleread(nonface_pname,nonface_fname,ix2temp,imlen,imhigh); xlean(ix2,:)=nonface_sample; end %读取测试样本 for ix3=1:1:face_test % face test ix3temp=ix3+face_test_startnumber; fprintf(+ test sample no:%dn,ix3temp); face_sample=face_sampleread(face_pname,face_fname,ix3temp,imlen,imhigh); xtest(ix3,:)=face_sample; endfor ix4=face_test+1:1:ntest % nonface test ix4temp=ix4-face_test; fprintf(- test sample no:%dn,ix4temp); nonface_sample=nonface_sampleread(nonface_test_pname,nonface_test_fname,ix4temp,imlen,imhigh); xtest(ix4,:)=nonface_sample; end % class value of ylean sample and ytest samplefor iy1=1:1:face_lean % face learn ylean(iy1)=1.0; endfor iy2=face_lean+1:1:nlean % nonface learn ylean(iy2)=-1.0; end for iy3=1:1:face_test % face test ytest_real(iy3)=1.0;endfor iy4=face_test+1:1:ntest % nonface test ytest_rea

温馨提示

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

评论

0/150

提交评论