APP下载

基于机器学习模型的手写数字识别

2019-01-08黄志超乔振华

电脑知识与技术 2019年33期
关键词:支持向量机

黄志超 乔振华

摘要:手写数字识别是将人手写的0-9十个数字识别出来的一个过程,本文首先分别使用逻辑斯蒂回归算法和支持向量机算法对提取出特征向量的图片进行训练,建立模型;其次,针对不同的样本数测试以上两个模型的准确性;最后通过Py-thon3.7实验仿真,实验结果表明,这两种模型的识别的准确率较高。

关键词:手写数字识别;逻辑斯蒂回归;支持向量机

中图分类号:TP18 文献标识码:A

文章编号:1009-3044(2019)33-0215-03

1概述

随着信息全球化时代的到来,互联网技术数字化加速发展,人工智能已称为当今世界最为前沿的热点方向之一。人工智能技术已渗入到生活的方方面面。手写数字识别技术属于人工智能范畴,手写数字识别是一种传统的数字识别技术,而数字识别技术又是一个典型的模式识别问题。模式识别使用计算机算法对图像进行自动处理和判讀,自动模式识别由机器自动进行模式识别,无须人为干涉。随着大数据的兴起,像邮政、金融等这些行业由于手写的数据较多、数据量庞大且对数据的准确性要求较高,因此,急需一个能准确高效自动识别手写数字的方法。

虽然数字是由0~9十个数字,但是每个人的书写方式和习惯差别较大,写法截然不同,且很多数字自身相似度较高,因此,想要准确识别出每个手写数字还是存在一定难度的。

2基于机器学习模型的手写数字识别原理

本文的手写数字识别方法可分为两个过程与三个步骤,两个过程分别是:训练(学习)与测试(识别),如图1所示,三个步骤是:1)生成手写数字样本库;2)特征提取;3)模型训练和测试。

2.1LR(Logistic Regression)原理

LR(逻辑斯蒂回归)是一种线性分类模型,采用Sigmoid函数作为后验概率分布函数来对输人数据集进行分类,除了可用于解决二分类问题,同时也可用于解决多分类问题。该算法计算量小,易于实现,既能应用于分布式场景,也能应用于在线实施场景,其基本原理如下:

3实验过程与结果

3.1实验过程

通过Pvthon3.7实验仿真手写数字识别,手写数字识别主要以下三个步骤:生成手写数字样本库、特征提取、模型训练和测试。

1)生成手写数字样本库

如上文所述,手写数字因人而异,因此,首先应建立自己的手写数字样本库。当然,还可以直接选用现有的手写数字样本库。这两种方法各有优缺点,第一种方法是量身定做的手写数字样本库,更为适合实验环境场景,但缺点是费事费力。第二种方法的优点是简单方便,但缺点是不能面向大规模的应用,可能导致误差较大。本实验采用第一种方法建立自己的手写数字样本库。生成手写数字样本库核心思想是随机生成数字0-9,然后利用python的PIL画笔工具进行画图,通过对图像进行扭曲,生成手写数字样本库。手写数字样本库具体生成步骤如下图所示。

2)特征提取

特征提取是通过剔除图像中对分类没有帮助的部分,提取出具有代表性的几个特征的过程。手写数字样本库中的图片是30*30的灰度图片即900个像素点,本文采用的特征提取方法是选取每行中黑点的个数以及每列中黑点的个数作为输入,这样也可达到降低维度目的,将维度从900降到了60,如下图所示。

3)模型训练和测试

手写数字识别实质上是一个图像分类问题,及其学期中大多数分类算法都可以应用到手写数字识别中,这里主要介绍两种分类方法:

(1)基于LR的分类器

通过sigmoid函数作为预测函数,来预测条件概率P(y=1x)。输人图片使用sigmoid函数计算出图片属于数字0-9的概率,范围在[0,1]之间。为了提高模型预测的准确率,在模型训练过程中,不断最小化极大似然代价函数。

(2)基于支持向量机的分类器

通过训练数据不断地迭代计算,在多维空间中找到一个最佳的决策平面,从而实现二分类,但是,手写数字识别并不是一个标准的二分类问题,因此,需要训练多个支持向量机的模型,每个模型能将一个数字与其他数字区分开,例如,支持向量机模型SVMl能够区分数字1和其他数字,给出输入图片为1的概率。对于给定输入,将其带人这10个支持向量机模型,从而可以分别得出图片属于0-9的概率,其中概率值最大的即为最后的分类结果。

3.2实验结果

在手写数字识别中,通过最常见的正确率来评价该模型性能的高低,其中正确率的计算公式如下:

计算手写数字样本库中图片数量从100至10000的识别准确率,其中,训练数据占比75%,测试数据占比25%,计算结果如下表和下图所示。由此可见,当样本数低于1000个时准确率较低;当样本数在1000至6000之间,SVM模型的准确率高于LR模型的准确率,且准确率都在0.9以上;当样本数在6000至10000之间,SVM模型的准确率与LR模型的准确率不相上下,且准确率大部分都在0.96以上。本实验结果表明,这两种模型的识别的准确率较高。

4结束语

手写数字识别是对人们手写的数字进行分析处理,自动识别的过程。该文分别通过逻辑斯蒂回归算法和支持向量机算法建立模型,通过测试集对其进行测试,计算准确率。通过此方法可实现手写数字识别,且识别效果较好,但是,该文所讨论的方法,对于样本个数较少的情况,识别准确率不高。

猜你喜欢

支持向量机
基于支持向量回归机的电能质量评估
基于智能优化算法选择特征的网络入侵检测
基于改进支持向量机的船舶纵摇预报模型
基于支持向量机的金融数据分析研究
管理类研究生支持向量机预测决策实验教学研究