模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc

上传人:牧羊曲112 文档编号:3879624 上传时间:2023-03-26 格式:DOC 页数:22 大小:666KB
返回 下载 相关 举报
模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc_第1页
第1页 / 共22页
模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc_第2页
第2页 / 共22页
模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc_第3页
第3页 / 共22页
模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc_第4页
第4页 / 共22页
模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc》由会员分享,可在线阅读,更多相关《模式识别论文——手写数字识别的GMM与最近邻分类器系统比较资料.doc(22页珍藏版)》请在三一办公上搜索。

1、2015 年 秋季 季学期研究生课程考核(读书报告、研究报告)考核科目: 模式识别 学生所在院(系): 航天学院学生所在学科: 控制科学与工程学 生 姓 名: 学 号: 15S004001学 生 类 别: 学术型考核结果阅卷人模式识别课程结业报告2015秋季学期姓 名: 学 号:15S004001专 业:控制科学与工程哈尔滨工业大学2015年12月 两种手写数字识别系统的比较摘要:手写体数字识别是图像识别中一个较成熟的研究课题,是模式识别领域最成功的应用之一。本论文旨在研究GMM分类器和最近邻分类器这两种基本算法在数字识别这一问题上的应用。实验直接调用MNIST中数据集,集中每个手写数字存储为

2、一个784维的归一化后的二值特征向量,因此可以省略数字的预处理过程,包括灰度化及二值化处理等。直接进行特征提取即主成分分析,把重点放在不同样本总数下二种方法的识别正确率的比较,验证最近邻法的渐进错误率最优极限为贝叶斯错误率这一结论。关键词:数字识别;特征提取;主成分分析;GMM分类器;最近邻分类器;渐进错误率1课题的背景自上世纪六十年代以来,计算机视觉与图像处理越来越受到人们的关注,并逐渐成为一门重要的学科领域。而作为它们的研究对象的数字图像,也因为它含有研究目标的丰富信息而成为越来越重要的研究对象。图像识别的目标是用计算机自动完成某些信息的处理,用来替代人工去处理图像分类及识别的任务。而模式

3、识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人及某些动物对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。1.1 手写数字识别的发展手写数字识别是图像识别学科下的一个分支,是图像处理和模式识别领域研究的课题之一,由于其具有很强的实用性一直是多年来的研究热点。由于手写体数字的随意性很大,例如,笔画的粗细,字体的大小,倾斜等等都直接影响到字符的正确识别。在过去的数十年中,研究者们提出了许多的识别方法,取得了较大的成果。按提取的数字特征的不同,可以将这些方法分为两类:基于结构特征的方法和基于统计特征的方法。统计特征通常包括点

4、密度的测量、矩、特征区域等;结构特征通常包括圆、端点、交叉点、笔划、轮廓等,一般来说,两类特征各有优势。例如,使用统计特征的分类器易于训练,而且对于使用统计特征的分类器,在给定的训练集上能够得到相对较高的识别率;而结构特征的主要优点之一是能描述字符的结构,在识别过程中能有效地结合几何和结构的知识,因此能够得到可靠性较高的识别结果。在此次的设计中使用的是统计特征。在近几年国内外对手写数字识别系统的研究已经取得了进展,一些新的理论例如基于深度置信神经网络、基于小波技术、基于BP神经网络以及支持向量机的研究应用在建立手写数字识别系统平台,并且在多数数据库中取得了较好的测试结果。但是目前仍然存在亟需深

5、入研究解决的问题:一是识别的准确度需要达到较好的水平;二是识别的效率要达到很高的水平。数字识别输入的数据通常是很大的,而高精度与高速度是相互矛盾。这些难点存在的原因是:1)数字的笔划简单,而且其笔划差别相对较小,字形相差不大,使得准确区分某些数字有一些困难;2)数字虽然只有10种,且笔划简单,但同一数字写法却千差万别,全世界的各个国家各个地区的人都在用,则其书写上带有区域特性,很难做出可以兼顾世界各种写法的、识别率极高的通用性数字识别系统。3)特征库的训练不够会导致识别率不高。1.2 手写数字识别研究的意义手写体数字识别实用性很强,在大规模数据统计(如例行年检,人口普查),财务,税务,邮件分拣

6、等等应用领域中都有广阔的应用前景。手写体数字识别在特定的环境下,如邮政编码自动识别系统,税表和银行支票自动处理系统等一般情况都有应用。当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写的金额部分,更是如此。针对这类问题的处理系统设计的关键环节之一就是设计出高可靠性和高识别率的手写体数字识别方法。这个领域取得了飞速的发展,部分是由于更好的学习算法,部分是由于更优良的训练集。美国国家科学学会(NIST)建立了一个包含60000个经过标注的数字的数据库,它已经成为对新的学习算法进行比较的性能测试标准。然而可以说还没有哪个手写体数字识别器达到完美的识别效

7、果。手写数字识别的研究不仅存在很大的应用价值,由于手写数字识别本身的特点,对它的研究也存在着重要的理论价值:1) 阿拉伯数字作为唯一被世界各国通用的符号,所以对手写体数字识别的研究基本上与文化背景无关,各地的研究工作者可以说是基于同一平台开展工作的,有利于研究的比较和探讨。2) 手写数字识别应用广泛,如税表系统,银行支票自动处理和邮政编码自动识别等。在以前,这些工作需要大量的手工录入,投入的人力物力都相对较多,而且劳动强度较大。为了适应无纸化办公的需要,大大提高工作效率,研究实现手写数字识别系统是必须要做的。3) 由于数字类别只有0-9共10 个,比其他字符识别率较高,可将其用于验证新的理论或

8、做深入的分析研究。许多机器学习和模式识别领域的新理论和算法都是先用手写数字识别进行检验,验证其理论的有效性,然后才会将其应用到更为复杂的领域当中。在这方面的典型例子就是人工神经网络和支持向量机。4) 手写数字的识别方法很容易将其推广到其它一些相关的问题上,如对英文之类拼音文字的识别。事实上,有许多学者就是把数字和英文字母的识别放在一起研究的。1.3数字识别系统的一般结构小型的手写体数字识别系统需要完成以下主要方面的研究与设计工作: 手写数字绘制的问题、数字的预处理问题、特征提取问题、特征库的建立问题、数字识别问题。在本实验中数字识别程序用Python来实现,程序实现了手写数字的输入、学习、识别

9、过程。在最初的训练样本为数据集中全部60000个数据。在数字识别时分别使用了Bayes决策与最近邻决策两种方法。首先,通常小型手写数字识别系统应包含以下结果模块:1)数字的获取与预处理一般图像系统的预处理需要对图像进行灰度化处理、去噪处理等基本操作。在手写数字图像识别系统中,预处理是为了突出手写体数字的特征。图像的二值化处理就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。在手写数字识别系统中,我们利用程序保存的坐标值就可以对生成一张二值化图像,相当于图像处理系统的二值化处理。这样内存中图像的数据区域的二维数组就跟手写区域的坐标相同,我们再取出手写区域的坐标值

10、,将这些坐标值对应到图像图像数据区域中,并且将它的灰度值置为255(白色),将图像数据区域的其它坐标值下的灰度值置为0(黑色),这样我们就得到了一张手写数字的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能突显出感兴趣的目标的轮廓。2)特征的提取若直接把预处理后的数据作为输入量,进行分类计算时数据时数据量大,同时由于手写字体的多样化及图像本身和预处理过程中附带的某些干扰的影响,对系统的容错能力要求较高。特征提取的目的就是从分析数字的拓扑结构入手,把它的某些结构特征提取出来,使数字的位移、大小变化、字形畸形等干扰相对

11、较小,也就是把那些反映数字特征的关键信息提供给系统,这样就等于间接地增加了系统的容错能力,而且经过特征提取后数据量也大大减少了,这样就提高了识别的效率。因此得到手写数字的二值化图像后,通常要进行特征提取前需要对此图像的数据区域进行定位,在程序中我们遍历此二值化图像,找到手写数字区域的上、下、左、右边界,重新生成一张数字图片,利用新生成的数字图片分成N*N的区域,统计每个区域的目标像素个数和整个小区域像素个数,计算目标像素个数与整个小区域像素的比值,得到N*N个特征值,作为这个手写数字的特征值。手写数字识别的特征提取极大程度地影响着分类器的设计和性能,以及识别的效果和效率。为了保证所要求的分类识

12、别的正确率和节省资源,希望依据最少的特征达到所要求的分类识别的正确率。在进行手写数字识别的过程中,特征提取应遵循以下原则:1特征应能尽量包含字符的有用信息;2特征的提取方法应简单而且提取快速:3各个特征之间的相关性应尽可能小;4特征数量尽可能少;5特征应有较好的抗干扰能力,同时要考虑到算法的实时性、快速性和准确性。3)特征库的训练我们需要训练一个特征库,作为识别的标准。我们可以手写一个数字提取出它的特征值,再输入这些手写数字,将数字与这些特征值相对应存储到特征库里面,在程序中将此输入数字与所有特征值相对应,作为模板库的一条记录,初始化模板库之后,就可以对手写数字进行识别,在识别的过程中我们不断

13、的丰富模板库,如果手写数字识别成功则不需要将此数字存储到模板库中,如果识别失败就需要将此数字存储到模板库中,这样我们的模板库将越来越丰富,特征库越丰富,识别率越高。本实验我们简化了这一过程,直接使用MNIST数据库中储存样本信息。4)数字识别在手写数字识别中,即分类器准则的设计,是整个过程的核心。如本实验中使用的一个方法是最近邻法,其实质就是提取出手写数字的特征值,利用这些特征值与特征库的数字的特征值进行比对,它是将从待识别的图像提取的若干特征量与模板对应的特征量进行比较,计算图像和模板特征量之间的距离,用最小距离法判定所属类。模板匹配通常事先建立标准模板库。这里,模板库中的标准模板是数字样本

14、的特征向量。找出待识别数字特征值与特征库里存储的特征值最接近的数字,作为识别结果。5)性能需求分析得到数字识别系统后,我们要对这一系统的识别效果做出评价,通常从以下三个方面入手:1正确性:根据手写数字识别系统的设计流程,流程中的每个步骤在系统中都必须有所体现,以保证程序的正确性;2精确性:根据手写数字识别系统的应用领域,该系统的识别结果必须有很高的识别精度,这样才能真正的实现该系统的价值;3效率性:根据该系统的应用领域可知,系统一旦投入应用需要处理大量的数据,所以对系统的处理速度也有很高的要求。综上所述,数字识别系统的基本结构一般分为左右两部分,左半部分完成未知类别模式的分类;右半部分属于设计

15、分类器的训练过程,利用样品进行训练,确定分类器的具体参数,完成分类器的设计。而分类决策在识别过程中起作用,对待识别的样品进行分类决策。2理论基础2.1贝叶斯分类理论Bayes方法是模式识别中的一种经典方法。用Bayes方法进行分类时需要满足两个前提条件。其一是各类别的总体概率分布是已知的,也即类条件概率密度P(X|Wi)和先验概率P(Wi)是已知的;其二是决策类别数目已知。类条件概率密度函数P(X|Wi)是指在已知某类别Wi的特征空间中,出现特征值X的概率密度,也即在Wi条件下出现X的概率密度。其中对于待分类样本数字X ,Bayes公式可以计算出该数字分属与各个类别的概率,称为后验概率。考察X

16、属于那个类的可能性最大,就把X归于可能性最大的那个类。在Bayes决策中,后验概率作为识别待分类样的类别依据。其公式可表示如下: 其中,P(X|Wi)表示在X出现的条件下,待识别对象为Wi类的概率。基于Bayes决策的分类在已知先验概率和类条件概率密度函数的情况下,可以用Bayes方法进行分类。根据分类类别数目的不同,后验概率计算公式可以表示为不同的形式;下面分两种情况进行讨论: 两类情况:待分类样本分别属于W1和W2类中的一类,在已知这两类的类条件概率密度P(X|W1)和P(X|W2),先验概率分别为P(W1)和P(W2)时,对于任一个待分类样本X,X分属于两类的后验概率Bayes公式可以改

17、写为: 其中i=1或2,针对两类情况,可以用后验概率进行判别;后验概率较大的对应的类别为该对象X所属的类别。 多类情况:待分类样本可能的类别有N类,分别为W1、W2、Wn,各类的类的条件概率密度P(X|Wi)和先验概率P(Wi)已知。我们可以利用式子计算待分类样本对应的各个类的后验概率,后验概率最大的对应的类别为待分类样本的类别。在本系统中将以使用者联机手写的数字作为测试样本。当手写一个数字时,就进行分类识别测试,得出其所属的类别,并可根据需要决定是否要学习该数字。在识别之前须首先知道先验概率和类条件概率密度函数,其中先验概率P(Wi)可以由训练样本集中的各类数字的个数和样本总数之比近似计算;

18、类条件概率密度函数P(X|Wi)可以按照模板匹配等方法进行数字的区域划分再进行进一步计算得到。在得到先验概率和类条件概率密度函数以后,可以运用Bayes公式进行后验概率P(Wi|X)的计算;由于手写数字09共有十类,该公式可以表示如下: 在这是i为总类别数,分别为0、1、9等。紧接着就可以进行后验概率的比较,其中值最大的所对应的类别即为该手写数字的所属的类别,即:则xWi。2.2GMM分类器算法名称:Gaussian-mixture-model Classifier(GMM Classifier)由于贝叶斯理论本身并未给出概率密度分布模型的估计方法,将贝叶斯分类理论中获取的概率密度分布参数看做

19、多个高斯分布混合模型,可以得到GMM算法,算法步骤如下:输入:降维后的训练样本集,其中是降维后的数据维数,是训练样本个数;降维后的测试样本集,其中是降维后的数据维数,是测试样本个数;CTrain是每个类别的训练样本数目;是预设的每个类别最大的组件数目。步骤一 估算训练数据的概率密度函数。采用BIC准则来估算最优值。步骤二 计算测试样本集中每个样本的归属类别。计算每个测试样本对每个类别的概率密度函数值,取最大的函数值类别作为此测试样本的归属类别。输出: 测试样本集的概率密度值和样本所属类别。一个GMM结构可以看作两个或更多常规高斯分布模型的混合。在一个典型的GMM分布中,的概率密度函数被写为个高

20、斯分布的和:其中:在上式中,是混合的高斯分布的个数,是第个高斯分布的权重因子,表示每个高斯分量在总体中所占的比例,并且,是模型的期望,通常用样本均值来代替,是模型方差,通常用样本协方差矩阵来代替。最后这三个量能用一个参数向量来表示。当组成每个GMM的高斯分布最优数目确定后,混合模型的参数能通过期望最大化算法(EM,一种迭代优化策略)来估计。EM算法能找到参数的一个(局部)最大似然或最大后验概率估计。给定一个数据集,是第个高斯分布子集 中的数据向量,是中的样本数目,由此产生的完整的数据对数似然函数是:其中是GMM中第个分布的后验概率,可以写为:每次迭代中,通过求最大似然函数式来求得参数(M步骤)

21、。参数集随后作为期望参数值更新式(2-30)来进行下一次迭代(E步骤),其中更新参数为:直到式中完整的数据对数似然函数的连续的数值相对差异达到某些预设的收敛阈值时停止迭代。预估一个合适的组件/模型数值对于分类任务中成功学习和使用GMM算法很重要。信息准则(AIC)是一个常用的用来估计最优值的度量。对于参数向量,AIC准则表述为如下的似然函数:其中是依据每个模型的最大对数似然函数,是估算的高斯分布的数目。首选的模型是有最小数值的模型。贝叶斯信息准则(BIC)是另一个常用来估算最优值的度量,表示为:其中是样本总数,据悉模式识别领域的具体应用中,AIC会过度估计值,而BIC由于会得到一个小的多的值而

22、更有效。因此采用BIC作为GMM分类的度量。2.3主成分分析(PCA)算法名称:Principal Component Analysis(PCA)本实验为了解决针对贝叶斯分类器中特征矩阵奇异不可求逆,引入PCA降维算法。PCA是基于K-L变换思想的特征提取方法,它的出发点是从一组特征中计算出一组按重要性从大到小排列的新特征,它们是原有特征的线性组合,且相互之间是极大不相关的。PCA的目标是使新特征的方差达到极大值,可用于线性分类,最大化类间离散度。方法具体可描述为,对于一幅个像素组成的图像,可以将其看作一个特征为维向量的样本。设训练样本集有类样本,每类样本的个数为,则所有样本个数为,样本集表示

23、为。样本集的平均向量表示为,每个样本减去平均向量,得到差值,协方差矩阵(也称总体散布矩阵)表示为,其中,因为矩阵的维度为,因此考虑另一个矩阵,它的维度为,通常。矩阵的特征方程为,两边同时左乘,得,记,则上式可写成因此,维的矩阵和维矩阵具有相同的特征值,特征向量具有如下关系,两规范化特征向量的关系为,将特征值从大到小排列,选取前个特征值,满足一定的贡献率,即则这个特征值在这些新的规范正交基上的投影构成了对原图像的降维表示,所在空间为特征脸空间。根据K-L变换的性质,这种降维表示是所有相同维数的线性表示中误差最小的。特征空间可用矩阵表示,其列向量为规范正交基,即,表示的差值在其上投影,投影系数可表

24、示为,而特征向量可通过下式重构出原始图像,。总得来说,PCA算法通过利用规范正交基的线性组合描述、表达和逼近图像,因此可以进行图片的识别和重建。PCA 为了获得数目和计算量最小的主成分需要从信息压缩最大方向寻求图像的低维信息表达,所以对应的 K-L 变换的信息熵最小,获得的识别空间也是对原图像的最优逼近。且归一化后的特征向量的范围被限制在0,1之间,简化了运算过程,提高了运算速度。采用主成分分析法对繁杂的特征向量进行提取,以降低分类代价,提高分类性能。然而,PCA具有两点不足:其一,将二维图像一维向量化,丢失了图像中像素的邻域相关信息;其二,图像中所有像素点的权重相同,没有突出重要信息PCA算

25、法具体步骤如下:(1)对各维数据进行无量纲化;设 那么得到其中是各维特征向量的均值,是各维特征向量的标准差。(2)计算Y的协方差矩阵S: (3)解特征值和特征向量根据特征方程 求解S的特征值和特征向量u。而后将从大到小排列:,并找到与之对应的: (4)计算主成分 这里 (5)选取主成分P的取值原则要让主成分满足最大程度包含原信息量最小值的条件。这里依据主成分贡献率 选取主成分。2.4最近邻分类器算法名称:Nearest Neighbor Classification最近邻法是将分段线性分类器得思想推广,把每一个训练样本作为一个子类模板,利用两两样本间的分类面构造出非线性分类面,对于一个新样本,

26、逐一与已知样本比较,找出距离新样本最近的已知样本类别作为决策,即最近邻法。可以表述为为样本特征向量,为对应样本类别,设共有c个类别,定义两个样本间的距离度量,通常用欧式距离计算即可。则判别函数可以写作决策规则可以写作在已知样本足够多时,这种直观的最近邻决策可以取得较好的效果,理论上最近邻法的错误率结果如下:设N个样本下最近邻法平均错误率为 定义最近邻法渐进错误率P为当N趋于无穷时平均错误率的极限,则可以证明 P*为理论最优错误率,即贝叶斯错误率。由此可知,最近邻法的渐进错误率最坏不会超出两倍贝叶斯错误率,当样本足够多时,最优可以达到贝叶斯错误率,如图2.4所示。 图2.4最近邻法与贝叶斯法理论

27、错误率关系2.5K最近邻分类器算法名称:k-Nearest Neighbor Classification ()最近邻(k-Nearest Neighbor,)分类器算法是一种在理论上很成熟的分类算法,并且是最简单机器学习算法之一。K最近邻法相当于是最近邻法的推广,后者只是K=1的特例。算法的思想是:已知一个训练样本集,并且训练样本集中的每个样本的类别是确定的。对于给定的待分类样本,计算它和训练样本集中所有样本的距离度量,常见的距离度量包括欧氏距离,皮尔逊系数,余弦函数。根据距离度量找出样本的个最近的训练样本,然后根据这个训练样本的所属类别来确定的类别,其中待分类样本类别由这个训练样本中类别最

28、多的来确定。如图2.5所示,相比较最近邻法,K近邻法的正确率会显著提高,但仍以贝叶斯错误率为渐进错误率的极限。图2.5 K近邻法与贝叶斯法理论错误率关系K近邻算法步骤如下:输入:训练样本集和测试样本集,其中为训练样本个数,为测试样本个数,为样本的维数,为每个训练样本所属样本类别的集合, ,近邻域。步骤一 计算测试样本集中每一个样本与所有训练样本的距离度量。计算测试样本集中的每一个样本与所有训练样本的欧氏距离,寻找与测试样本距离最小的个训练样本,并记录这个训练样本所属的类别。步骤二 统计个训练样本中每个类别的样本出现的频率。统计中出现频率最高的类别,并将这个类别作为测试样本的预测类别。输出: 测

29、试样本集所属的类别向量。 3实验设计3.1MNIST数据样本集介绍MNIST数据集是一个真实世界中采集的手写数字图像数据集,它由NIST会议收集并持有,读者可到MNIST主页免费获取该数据集。这个数据集一共含有4个文件,分别存储训练数据、训练标签、测试数据、测试标签。文件以二进制文件形式存储,不过我们可以很容易编写一段小代码将其转换成图像。训练集共含有60000个样本,测试集含有10000个样本,这些样本收集自 500位不同的人的手写字体。MNIST是手写数字的数据库,其中包含有60000个样本的训练样本集以及10000个样本的测试样本集。这是从NIST这个更大的数据库中截取的。这些数据已经进

30、行过归一化,存储在一个尺寸固定图像的中心。NIST中原来的黑色和白色(双层)图像尺寸归一化以存储于一个20X20像素盒而保持纵横比。所得到的图像包含灰度级的归一化算法所使用的抗混叠的技术。图像被集中在一个28x28的图像中。并通过计算像素的质量中心,将图像以位置中心点置于28x28场中心。对于基于模板的方法,图像预处理时,以像素盒边界为中心识别的正确率要高于以数字图像自身重心为中心的结果。手写体数字的二进制图像:这其中的原因在于事实SD-3的数据集是在人口普查局职工中收集的,而SD-1收集自高中生。从学习实验中得出合理的结论,这就要求结果是独立的训练集的选择和测试的完整样本集。因此,有必要通过

31、混合NIST的数据集建立一个新的数据库。训练集和测试集中的样本各有一半来自SD-3,一半来自SD-1。参与数据采集的书写人一共约500人。 图 3-1 MNIST数据集部分数据样本每个数据样本是28 28像素的灰度图像,由于引入了抗锯齿效果,所以图像数值范围是0 255而不是二值图像。图像已经经过预处理,因此图像会集中在中心 20 20的区域内,此外,图像的中心点与像素点的重心重合,所以如果要使用模板匹配的方法(比如k近邻,GMM, SVM等)进行分类的话对图像再进行一些预处理使得数字的几何中心与图像中心重合会改善你的算法性能。如图3-1是MNIST数据集中的一小部分样本的展示,原始的数据应该

32、是黑底白字的,为了美观,我们将其颜色反转并加上周围的边框。数据集链接:MNIST(3.2实验流程介绍首先,读入MNIST的SD-1、SD-3中含有的60000个含标签的训练样本,样本存储类型为60000*784矩阵模式,即每个样本对应28*28为二值灰度矩阵,再存为784维特征向量,一种做GMM分类处理,先得到对应的10个高斯混合分布模型,再根据PCA算法首先将样本降为20维向量,最后利用贝叶斯最小错误率决策理论,对数据集MNIST中的10000个手写数据测试样本集进行分类,分为09十个类别;另一种用最近邻分类器处理,首先直接把训练所有样本集都存储为模板,然后根据最近邻决策规则直接对测试样本集

33、进行判别。改变训练样本数目,从1000直到60000,记录整个过程的识别率变化,比较并绘出曲线。最后输出不同方法识别的正确个数以及识别正确率,对两种方法的正确率,精确性及辨识效率进行比较。实验流程图如图3.2所示。 图3.2实验流程图4 实验结果 实验程序在Python环境运行结果如下图4.1所示,最终记录的识别率如表4.1所示,将辨识率绘制成折线图如图4.2所示:单纯就两种算法的识别正确率直观来说,可以看出最近邻法的识别正确率随样本数目升高的明显更快,最终正确率也要高于GMM,这表面上与最近邻法的渐进错误率最优极限为贝叶斯错误率这一结论是相悖的。其实际原因主要有二:一是贝叶斯错误率本身为理论

34、最优错误率,而真实情况中由于在概率密度函数估计环节的近似,理论错误率实际上是达不到的;二是由于本实验中特征矩阵奇异不可求逆,我们首先对样本进行了PCA降维操作,由原来的784维降至20维,虽然大大提高了辨识效率,确是基于降低了GMM辨识精度的基础上,导致最终最近邻法辨识正确率要高于GMM。但是从中却可以看出贝叶斯理论本身对样本数量的依赖不像最近邻法那么高,在很大的训练样本数范围内识别率都不会有过大的变化。训练样本数100050008000100001500020000300004500060000GMM识别率(%)91.0894.3494.5594.5594.8295.0495.0495.11

35、95.03最近邻识别率(%)86.993.4394.2794.6395.4295.5796.1896.5796.91 表4.1两种方法对应的识别率比较 图4.1Python环境下程序最终输出结果图4.2两种方法辨识正确率折线图从识别的效率角度,贝叶斯方法即GMM整个辨识过程的时间均在二十秒至四十秒之间,前后差异不大,而最近邻方法的辨识时间从1000个测试样本时的一分钟指数增长为60000个样本时对应的一个半小时,可以看出GMM的识别速度较快,但识别正确率提升较低;最近邻法的识别正确率虽然有显著提升,但耗费时间过长。同时在训练样本较少时,二者时间虽然相差不大,但贝叶斯方法能保证的基础识别率相对比

36、较要更高。因此,我的结论是对于精度要求不大或者训练样本比较少的情况GMM方法的识别效率更高,训练样本数量在2000040000间时,可以考虑用最近邻方法。5参考文献1张学工. 模式识别M北京:清华大学出版社,2010.82王有伟. 手写体数字识别.D.山东:山东大学硕士学位论文.20043许东星.基于GMM和高层信息特征的识别研究.D.河北.中国科学技术大学博士学位论文.20094Bishop C M. Pattern recognition and machine learningM. Vol. 1:springer New York,20065朱小燕. 手写体字符识别研究J. 模式识别与人

37、工智能, 20006 张林娜. 手写数字识别系统的设计与实现.D北京.北京理工大学. 20096附录具体实现在Python环境下的程序代码:1.读取MNIST数据集代码:# -*- coding: utf-8 -*-from struct import * from numpy import *def getData(): #读入训练集trainingImageFile = open(rC:UsersAdministratorDesktopMNISTtrain-images.idx3-ubyte,rb) trainingImageFile.read(16) trainingData = fro

38、mfile(trainingImageFile, dtype = uint8)trainingData.shape = -1, 784#训练集数据标签切片trainingData = trainingData0:60000,: trainingImageFile.close() #读入训练标签集trainingLabelFile = open(rC:UsersAdministratorDesktopMNISTtrain-labels.idx1-ubyte,rb) trainingLabelFile.read(8)trainingLabel = fromfile(trainingLabelFil

39、e, dtype = uint8)#训练集标签切片trainingLabel = trainingLabel0:60000 trainingLabelFile.close() #读入测试数据 testImageFile = open(rC:UsersAdministratorDesktopMNISTt10k-images.idx3-ubyte,rb) testImageFile.read(16) testData = fromfile(testImageFile, dtype = uint8) testData.shape = -1, 784 testImageFile.close() #读入

40、训练标签集 testLabelFile = open(rC:UsersAdministratorDesktopMNISTt10k-labels.idx1-ubyte,rb) testLabelFile.read(8) testLabel = fromfile(testLabelFile, dtype = uint8) testLabelFile.close()return trainingData, trainingLabel, testData, testLabel2. PCA降维算法 #-*- coding: utf-8 -*-from numpy import *def PCA(trai

41、ningData, k = 2): means = mean(trainingData) covariance = cov(trainingData.T) scatterMatrix = (covariance.shape0 - 1) * covariance eigVal, eigVct = linalg.eig(scatterMatrix) topK = argsort(eigVal)-k : DimReduVct = eigVct:,topK principal = (trainingData - means) principal = dot(principal, DimReduVct)

42、return principal, DimReduVct,means3.贝叶斯决策分类器代码# -*- coding: utf-8 -*-from numpy import *from MNISTData import *from PCA import *#降维到20维D = 20trainingData, trainingLabel, testData, testLabel = getData()trainingData, DimReduVct, PCAmean = PCA(trainingData, D)#下标分类indexOf = None for i in range(10)for i

43、 in range(10): indexOfi = argwhere(trainingLabel = i)#均值meanOf = None for i in range(10)for i in range(10): meanOfi = mean(trainingDataindexOfi, : , axis = 0)#协方差矩阵covarianceOf = None for i in range(10)for i in range(10): temp = indexOfi temp.shape = -1 covarianceOfi = cov(trainingDatatemp.T)testDat

44、a = (testData - PCAmean)testData = dot(testData, DimReduVct)#识别(10000个)hit = 0for sample in range(10000): testPoint = testDatasample,: possibilityOf = 0 for i in range(10) for i in range(10): possibilityOfi = exp(-0.5*dot(dot(testPoint- meanOfi),inv(covarianceOfi),(testPoint- meanOfi).T) / sqrt(det(

45、covarianceOfi) guest = argmax( possibilityOf) if guest = testLabelsample: hit += 1print( ntest complete!)print( hit,hit) print (correct rate:, (hit/10000.0)*100,( %)4.最近邻算法代码:# -*- coding: utf-8 -*-from numpy import *from MNISTData import *trainingData, trainingLabel, testData, testLabel = getData()hit = 0for sample in range(10000

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号