




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于支持向量机(SVM)算法的手写数字识别系统的实现摘要在银行、税务、财政、金融等领域,每天会产生大量的手写数字,人工录入工作量过大且无法保证准确率,需要机器及时准确地识别,因此研究高效率且高准确率的手写数字识别方式是非常有必要的。相较于其他手写文字,手写阿拉伯数字因为具有国际通用性,所以研究手写数字识别方法易推广且具有广泛的应用前景和理论意义。可用于手写数字识别的算法很多,本课题在分析了卷积神经网络(CNN)和支持向量机(SVM)算法后选择了SVM算法,且选用了在手写数字识别时经常对算法准确度进行测试的MNIST数据集测试算法,在MATLAB开发环境中进行编程,通过处理MNIST数据集,灰度化、二值化,HOG特征提取,训练和评估SVM分类器,使SVM算法在手写数字识别上达到了接近99%的准确度。并且利用了GUI面板,演示了手写数字的识别,准确预测了结果。证明了SVM算法作为机器学习中非常经典的算法,对于复杂程度不高、数据量也相对较少的识别任务,亦可以很好地完成。关键词:手写数字识别;CNN;SVM;MNIST数据集目录TOC\o"1-3"\h\u3820第一章引言 引言1、研究背景及意义手写数字识别研究的目的是设计一种有效的方法,用来识别用户通过数字设备提交的手写数字,本课题要求对目前的手写识别技术进行研究,设计实现手写数字识别。生活中很多场合都会涉及到大量手写数字,如在人口普查、财务报表等应用中,均会产生大量的数据需要统计输入,如果只靠人工录入,不仅准确率无法保证,时间成本和人力成本都会大大增加,所以研究一种高效准确的机器识别方法是非常有必要的。随着社会的发展,快递邮件分拣等领域利用手写数字识别+人工辅助识别的识别方法将会越来越普遍,大大提高生产生活效率。手写数字识别的研究成果不仅可以在现实生活中得到广泛的应用,解决很多问题,在理论研究方面也有重要意义。阿拉伯数字是唯一全球通用的数字语言,对其研究得出的方法具有通用性,研究成果也可以相互借鉴启发,虽然经过多年研究后手写数字识别的原理已经不算神秘和复杂,但其研究方法有助于深入分析及验证一些新的理论,也可推广到其他字符的识别问题。。2、研究现状文字识别的研究起源于二十世纪六十年代,主要由美国的IBM公司负责该工作。我国在手写体数字识别的研究方面虽然没有走在最前沿,也取得了一定的成果。如娄正良等人提出了一种新的基于小波变换和局部傅立叶变换的脱机手写数字特征提取方法,在MNIST数据集中该方法取得了较好的识别效果。常见的手写数字识别方法有卷积神经网络、支持向量机、贝叶斯算法、近邻算法、人工神经网络等。第一章CNN、SVM算法原理1.1卷积神经网络1.1.1卷积神经网络概述手写数字识别一直是机器学习、深度学习的一个研究热点,目前卷积神经网络(CNN)因为识别准确率高、算法较为先进而被广泛应用。卷积神经网络对数据处理方式和数学中的卷积类似,因此得名,是一种前馈型神经网络卷积神经网络,CNN模型众多,LeNet5就是一个经典的CNN模型,也是此后其他CNN模型的基本组成部分。卷积神经网络组成部分有:输入层、卷积层、池化层、全连接层。这些层使CNN具有局部连接、权重共享、空间上的下采样等特点。对于大数据量的图片,处理的成本会很大,效率也低,卷积神经网络可以很好地将其降维成小数据量。图像在数字化的过程中容易丢失特征,卷积神经网络可以有效保留图片特征。局部连接:指在卷积层输入特征图和输出特征图的神经元是局部相连的,然后经过卷积核运算学习输入特征图的局部特征。卷积神经网络中如果一个神经元对图像上的每个像素点都卷积一遍,产生的数据量过大,处理起来也会十分复杂,所以神经元只需要感知局部关联性较大的像素点即可,最后通过神经元得到全部感知。权值共享:指在提取图像的同一种特征时共享同一卷积核,这样可以减少参数量并且提高抗形变能力。下采样:指卷积层的输出特征图需要经池化层进行二次提取,这样大大降低了数据的维度,而且可以有效避免过拟合现象。1.1.2LetNet-5模型CNN架构的基本组件非常相似,LeNet-5模型是经典模型,因此对LetNet-5进行分析,图1-1是LetNet-5模型用于处理手写数字识别的结构图SEQ图\*ARABIC1-1LetNet-5模型输入层:输入数据,对原始数据进行预处理,包括去均值、归一化、PCA/白化。本设计中需要识别的是手写数字图片,数字特征较少且简单,图片分辨率不需要太大,28*28的像素即可,MNIST数据集便可满足此要求,输入的二维图像包含像素的灰度信息和位置信息。卷积层C1:特征的提取和映射需要用到卷积核,卷积层有6个不同的卷积核,尺寸为5×5。在卷积层中,输入的二维图像分别与若干个卷积核做卷积运算来实现特征提取。卷积后还需要经过偏置值和激活函数,其中通过激活函数得到的特征图才是最终的输出特征图。池化层S1:也称为下采样层,经过卷积层输入的特征图仍然较为复杂,为了较少数据的数量,池化层主要是对特征图进行压缩,减少模型过拟合的可能。池化层虽然压缩了数据,但不会改变输出特征图的数目,并且其输出特征图与上一个卷积层的输出特征图一一对应。一般情况下,池化层的输入图像会被分割为不重叠的2×2像素块,池化操作步长为2。卷积层C2:是该模型的第二个卷积层。其每个输出特征图同时对应6个输入特征图,因此对于6×12个的卷积核可提取出12个不同的输出特征图。池化层S2:是该模型的第二个池化层,操作和池化层S1相类似。全连接层:通常在卷积神经网络的最后,负责对之前得到的数据重新进行非线性拟合,图像的特征信息在之前一系列操作中必然会丢失一部分,全连接层的目的便是尽量减少特征信息的损失。池化层S2的输出特征图按照列顺序展开然后输入全连接层,并且与分类神经元通过全连接形成单层感知机网络。分类神经元数目需要根据类别要求进行设置。1.1.3卷积神经网络识别手写数字流程卷积神经网络模型首先将原始图片输入,再将原本分开进行的特征提取、分类器等步骤集合在一个密闭网络里,通过构建及优化不同的网络模型来学习原始图像有效的特征表达,流程如图1-2所示。传统识别方法不仅特征提取和重建等工作繁琐,还需要进行图像预处理,卷积神经网络简化了这些步骤,使得工作量大大减小。图SEQ图1-2\*ARABIC1-2卷积神经网络识别手写数字流程图1.2支持向量机1.2.1支持向量机简介SVM是非常经典的一种机器学习算法,在深度学习出现之前因为其优秀的学习和泛化能力成为了机器学习中最成功的算法。支持向量机方法属于经典的有监督机器学习方法,可用来解决二分类的相关问题,将实例的特征向量映射为空间中的一些点,为了最好地区分这两类点,需要画一条线,如果以后有了新的点,这条线也能做出很好的分类。如图1-3中的实心点和空心点就是两种不同类型的点,可以对样本点进行区分的线有无数条,每条线均可叫做一个划分超平面,因为样本特征可能是高维的,这时就不能用线划分样本空间了。区别就在于区分效果的好坏,比如图中H1,H2,H3三条线,可看出H3的划分效果显然优于另外两条。图1-3划分超平面图对于任意一个划分超平面,均会将数据点分割为两片区域,其两侧数据点都距离它有一个最小距离即垂直距离,间隔(margin)就是这两个最小距离的和。比如图1-4两条虚线构成的带状区域就是间隔,虚线是由距离中央实线最近的两个点所确定出来的(也就是由支持向量决定)。如果用图1-5的方式画,和图1-4相比间隔明显变大也更接近目标,更大的间隔代表犯错几率会更小,即更鲁棒。SVM将会寻找可以区分两个类别并且能使间隔最大的划分超平面。样本不是一成不变的,选择一个比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果鲁棒性最好、对未知样本的置信风险越小,置信风险可以简单理解为分类器在未知样本方面可信程度的大小。从图中可以看出,虚线上的点到划分超平面的距离都是一样的,超平面的位置也是由这几个点共同确定的,因此被称作“支持向量”,“支持向量机”也是由此而来的。图1-4划分超平面间隔图图1-5划分超平面间隔图1.2.2支持向量机分类SVM是二分类的机器学习算法,分类结果只有A或者B两种,即正类和负类,但实际遇到的问题大多都是多分类的,为了解决这个问题需要将二分类转换为多分类。有一种看起来似乎可以完美解决多分类问题的方法,如图1-5所示,所有的样本都有自己的分类,要想做到这一点,需要一次性考虑所有样本,求得多个划分超平面,这便成了多目标函数的优化问题,但这种方法计算量过大了,实际操作中根本不现实。因此为了解决这个问题一般有两种方法:一对一(OVO)或者一对多(OVR),OVO是通过一个优化的公式来优化所有类别的参数;OVR是通过组合多个SVM分类来解决多分类的问题。OVR所需要的分类时间比OVO要多一些,因为OVR训练时需要考虑所有的样本,即使分类器比OVO少,总体也会较慢。图1-6样本分类图1.2.3支持向量机优点支持向量机优点包括:(1)支持向量机的基本思想是求得一个分类效果最好的划分超平面,满足间隔的最大化,这使得支持向量机避免了因数据分布位置,数据规模大小改变对分类效果造成大的影响,针对小样本的机器学习问题有较好的效果,不过这里的小样本并不意味着样本的绝对数量少,而是说对于一个复杂的问题,SVM算法所需要的样本数量相对较少。(2)SVM将低维的特征维数空间转化为高维维数空间,样本的维数很高,一般情况下很容易认为低维到高维将问题复杂化了,但将分类任务的非线性问题转化为了线性问题,实际上是简化了问题。支持向量的个数决定了SVM训练好的模型算法复杂度,由于模型只依赖支持向量,因此如果去掉训练集中的非支持向量,再重复一遍训练过程,还是会得到和之前一样的模型。这里可以引入VC维这一概念表示问题复杂度,VC维越高问题越复杂,因为之前提到的SVM算法模型和样本的维数没有直接关系,因此SVM可将问题简单化。(3)所有算法都不可能确保得到的结果是最完美的那一个,机器学习本身就是在努力无限接近真实模型,不过理论上支持向量机得到的结果为全局最优解,基本不会存在像其他方法一样产生过拟合和局部最小的问题。此外SVM具有较好的鲁棒性,优秀的泛化能力和学习能力。第二章手写数字识别的设计2.1开发环境的选择通过查阅资料,了解到Python和Matlab均可以完成课题所需功能,Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言,是当前非常流行的编程语言。Python有众多的库,包括标准库和第三库,既可以开发些小工具应用,也可以开发大型的企业级应用,功能十分强大。Python相较于传统语言,语法相对简单,对代码格式的要求不是十分严格。Python是开源且免费的,这使其很受人们的欢迎,应用范围也更广泛。Matlab又名矩阵实验室,因此掌握好矩阵的知识在使用Matlab时有很大帮助。Matlab在计算和仿真方面表现十分优越,主要功能有:对大量数据进行分析处理,模拟各种物理模型;具有强大的3D绘图功能,绘图时可以调用Matlab中众多的工具箱,极大地减轻了绘图工作量;数学中常见的符号的运算如积分和微分也可以利用Matlab进行运算,Matlab中有很多现成的常用的数值计算方法。Python和Matlab都可以实现本次课程设计的功能,其中Matlab是大学课程中的一门,对其有一定的了解且有使用的经验,因此选择了Matlab作为本次课程设计的开发环境。2.2MNIST数据集MNIST数据集由250人手写的7万张不同的手写数字图像构成,每张图像均为黑底白字,分辨率为28×28,灰度等级为8。它将手写数字分为十类,分别表示数字0~9,包括训练数据集和测试数据集,其中6万张手写数字图像组成训练集,1万张组成测试集,数据集中还包括训练数据集标签和测试数据集标签,标签标记了同一个数字由多人写出的不同形态,可以作为验证算法的基准。如图2-1为MNIST数据集中部分手写数字样本。图2-1MNIST数据集部分样本图2.3基于SVM算法实现手写数字识别基本方法2.3.1算法流程图图2-2算法流程图2.3.2划分数据集数据集并不可以直接使用,应该是一部分用于训练,一部分用于测试,所以进行图像预处理之前首先需要利用函数把数据集合理划分成训练集和测试集,如果不分开,可能在训练中产生过拟合或欠拟合的问题,导致最终识别准确率降低。2.3.3图像预处理因为需要识别的图像中并不是所有内容都是必要的,所以为了简化识别内容,提高最终的识别准确度,需要对图像进行预处理。预处理包括对图像进行归一化、二值化、去噪等操作。归一化是将图像可用部分裁剪出来后把图片缩放为规定大小,输入一张有数字的图片,因为只有数字是需要识别的内容,所以要将图像区和非图像区分开,区分后求得图像中的数字上、下、左、右四个边界点,通过剪裁只留下有数字的图像区域,求出待识别数字的高度和宽度,然后将图像统一缩放为n*n像素,如在本课题中应该缩放为28*28像素。接着对图像二值化,将提取后的灰度数字图像二值化,即把n*n像素图像中的每一个像素点的0-255灰度值转化为0或1。预处理最后一步是去噪,图片中除数字以外的噪点可能干扰到特征向量的提取,进而影响数字的识别的准确率,因此需要将噪点去除。2.3.4特征提取本次课题设计使用了方向梯度直方图(HOG)技术进行特征提取,此技术最开始是用于图像中的人体检测,HOG技术类似于边缘方向直方图,但是HOG分析中涉及的计算基于利用均匀间隔的单元的密集网格以及重叠的局部对比度归一化来获得更好的性能。HOG技术利用了边缘方向的特性,即局部定向测量结果,该测量结果携带了有关物体形状和形状的有用信息,因此,HOG描述符可用于对象和形状的识别和分类。HOG描述符已使用合成数据集应用于数字识别,基于HOG描述符的分类和识别任务对相关计算所需的像元大小敏感,寻找合适的像元大小来计算HOG描述符在分类性能中起着至关重要的作用,使用新的多小区大小(MCS)概念来计算HOG描述符,可以较好的形成用于分类的特征向量。2.3.5训练与测试提取的HOG特征将用于训练支持向量机模型,不过训练前要对整个的训练数据集提取HOG特征并组合。所提取的特征向量可能线性不可分,不可以用来训练模型,应转化为线性可分,转化时要用到核函数。随后利用最大间隔超平面的原理,求出支持向量,进而求得最大间隔超平面方程和决策函数,SVM模型便训练完成。手写数字识别是多分类问题,识别0-9这10个数字需要多个SVM模型,将测试集应用于训练之后的SVM模型集合中,数据集中不仅有数据图像,还有数据自带的标签,因此分类完成得出结果以后与数据自带的标签做对比看是否一致,便可知训练效果如何且得出识别准确度,如果准确度较高说明训练出的模型识别效果较好,如果精度不够高则对训练过程进行调整后再次测试,直到精确度达到一个较高的数值。2.3.6分类过程训练出多个SVM模型后依次输入待分类的数据集,整合每个SVM决策函数的结果,仲裁该样本的具体类别。第三章手写数字识别的识别3.1训练和测试SVM算法3.1.1处理MNIST数据集图3-1处理MNIST数据集流程图MNIST数据集中存入的原始文件不可以直接使用,需要先将这几个文件转化为mat文件,然后逐一读取转换为图像矩阵并保存为图片文件。建立train和test即训练和测试文件夹,因为MNIST数据集中有数据的标签,所以需要在训练和测试文件夹中创建名为0-9的10个文件夹,按照数据的标签放入对应文件夹。图3-2为建立的训练集和测试集文件夹:图3-2训练集和数据集文件夹为了之后可以评估算法准确率,数据集图片需要按标签存入对应文件夹,读取原始数据并转存后的数据集便是mat文件,MNIST数据集中图片的尺寸是28×28,所以可以先通过reshape恢复数据尺寸,然后利用imwrite函数写入文件中(路径为对应标签的子文件夹)。每个子文件夹的名字和其中存放的数字图像对应,其中存放数字7的文件夹的截图如图3-3所示:图3-3数字7不同形态图准备完数据集以后可以通过文件夹读取图片。为了将训练和测试数据集分别被存放在trainSet、testSet变量中,需要用到imageDatastore函数批量读取图片集,具体操作为通过递归扫描文件夹目录,将每个文件夹名称自动作为图像的标签,可以简单查看训练和测试集每类标签的样本个数如图3-4。图3-4训练集和测试集样本个数图图3-5为读取的训练集和测试集的图片,第一行为训练图片,第二行为测试图片。图3-5训练图和测试图3.1.2灰度化、二值化对图片特征提取之前需要进行一项必要的操作:灰度化和二值化,为了方便比较,可以将原始图像和二值化后的图像在一个窗口同时显示,如图3-6对比结果:图3-6原始图像和二值化图像对比图3.1.3HOG特征提取图3-7HOG特征提取流程图图片在经过特征提取后得到特征向量才可以用于训练分类器,本课题使用的是HOG特征提取,即方向梯度直方图。正确提取出HOG特征对于后续工作非常重要,可以利用MATLAB自带的函数extractHOGFeatures进行HOG特征提取,除了提取HOG特征这一基本功能,此函数还可以显示特征的可视化结果。可以设置多种尺寸对图片进行特征提取,设置方法是改变细胞单元尺寸,提取了2×2、4×4、8×8三种尺寸的HOG特征进行可视化的结果如图3-8,从可视化的结果中可以明显看出不同的尺寸所包含的信息量也是不同的。图3-8不同尺寸HOG特征提取可视化图三种尺寸的可视化结果中,可以明显看出细胞尺寸为2×2的特征提取图所含有的形状信息量是最多的,8×8的细胞尺寸得到的特征量最少,长度数据也可以证明这一点。形状信息量的多少直接影响了HOG特征向量的维数,维数过大不易处理数据,过小可能降低使识别结果的准确率。细胞尺寸是一个需要调试的参数,一方面应该对足够的空间信息进行编码,另一方面需要减少HOG特征向量的维数,尺寸过大和过小均不合适,因此可以选择4×4的细胞尺寸。不过4×4的细胞尺寸也不是固定的,在之后的分类器训练和测试过程中,如果发现效果不理想,可以不断调整HOG特征的相关参数,以实现最佳参数设置。3.1.4训练和评估SVM分类器图3-9训练评估SVM分类器流程图训练支持向量机时需要使用之前提取的HOG特征,要对整个训练数据集提取HOG特征并组合,除了训练集,测试集也需要进行特征提取,进而方便之后的性能评估。构建支持向量机模型,利用提取的训练集特征进行训练,训练完后使用训练好的分类器进行预测,这里先利用测试集评估模型并计算分类评价指标得到了预测结果,可以使用混淆矩阵评估结果,将结果打印出来,但混淆矩阵的结果可能还不够直观,下面绘制混淆矩阵图帮助更好了解模型性能,运行代码后显示混淆矩阵图如图3-10所示,对角线上的绿色网格中显示了0-9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025(统编版)语文四年级下册第五单元教学设计
- 货物存储与管理技巧试题及答案
- CPMM相关理论探讨与试题及答案
- 传染病防控知识课件下载
- 餐饮美学基础 课件 1.3餐饮审美对象
- 2024年CPMM复习试题及答案
- 2024年CPSM考试前沿分析试题及答案
- 江苏扬州历年中考作文题与审题指导(2001-2024)
- 2024年CPSM考试复习习惯培养及试题及答案
- 《安全生产法》文化知识竞赛题库
- 第一讲设计伦理
- 函授本科《小学教育》毕业论文范文
- 陕西国际商贸学院
- 《导游讲解》课程标准
- 冀东海德堡(泾阳)水泥有限公司水泥窑协同处置污泥改(扩)建项目环评报告
- 发展汉语(第2版)高级听力Ⅰ第4课课件
- 世界各国民族服饰课件
- GB/T 7113.3-2011绝缘软管第3部分:聚氯乙烯玻璃纤维软管
- GB/T 41255-2022智能工厂通用技术要求
- GB/T 28885-2012燃气服务导则
- 教科版科学六年级下册实验报告单表格版本
评论
0/150
提交评论