SVM 在小字符集手写体汉字识别中的应用研究
朱 辉 杨 扬 颉 斌 封 筠
( 北京科技大学信息工程学院 100083)
** 摘 要: ** 本文将支持向量机(SVM)引入到小字符集脱机手写体汉字识别中。文章首先介绍了SVM的基本原理和主要算法,然后在实验中采用了LibSVM训练软件,针对银行票据手写汉字的小字符集进行了仿真,同时与欧氏距离分类方法进行了比较。实验结果表明此方法的汉字识别率较高,在小字符集手写体识别中具有较强的实用性。
** 关键词: ** 支持向量机(SVM);LibSVM;脱机手写体汉字识别
** Small-set Off-line Handwritten Chinese Characters Recognition ** **
**
** Based on Support Vector Machine
**
Zhu Hui, Yang Yang, Xie Bin, Feng Jun
( Information Eng. School , Univ. of Science and Technology Beijing 100083)
** Abstract: ** This paper presents the application of SVM in small-set off-line handwritten Chinese characters recognition. The paper begins with basic introduction of SVM theories and algorithms. Then software LibSVM is pro
-posed for handwritten Chinese characters training of bank forms. The results are also compared with Euclidean Distance classifier, which indicates that the SVM strategy can improve recognition rate and therefore has more practicability.
** Key words: ** Support Vector Machines (SVM); LibSVM; Off-line Handwritten Chinese Character Recognition
近年来,脱机手写体汉字识别这一模式识别领域中最棘手的问题,取得了大量的研究成果。但是,非特定人手写汉字识别仍然被认为是文字识别领域最困难的问题之一,其原因可以归结为:汉字规模大;相似汉字较多,且有些相似字差别极其细微;存在大量的不规则书写变形。由于后两个因素的存在,导致相似字在特征空间中的距离变小,使得普通距离分类器的推广能力变弱。因此,如何补偿手写汉字的书写变形,提高分类器的泛化和推广能力,就成为汉字识别研究的关键问题之一。
支持向量机(Support Vector Machines)简称SVM,是AT&T Bell实验室的V. Vapnik等人根据统计学习理论提出的一种新的机器学习方法,它已初步表现出很多优于已有方法的分类性能,在解决小样本学习、非线性以及高维模式识别等问题中表现出许多特有的优势。其基本思想可概括为:首先通过非线性变换将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,而这种非线性变换是通过定义适当的内积函数实现的。根据结构风险最小化准则,在使训练样本分类误差极小化的前提下,尽量提高分类器的泛化推广能力。从实施的角度看,训练支持向量机等价于解一个线性约束的二次规划问题,使得分隔特征空间中两类模式点的两个超平面之间距离最大,而且它能保证得到的解为全局最优点,使得基于支持向量机的手写汉字分类器能够吸收手写的变形,从而具有较好的泛化和推广能力 [1] 。
** 1. ** ** 支持向量机 ** ** (SVM ** ** ) **
** 1.1 ** ** 单类问题 **
由于支持向量机(SVM)具有良好的泛化特性,因此可以用来进行向量估计,以包含大多数的相关图像,并使用规则剔除野值 [2] 。单类问题的命名缘自于在训练集和测试集中只使用正定样本。它的思想就是将数据规划到特征空间中,用最小半径的超球面包围最多的训练数据,特点是数据样本非常密集。主要应用于工程诊断的状态监测和医学诊断中判断是否正常等。具体算法详见文献 [3] 。
** 1.2 ** ** 两类问题 **
SVM方法是从线性可分情况下的最优分类面提出的。首先考虑一个二维两类模式分类问题,设模式样本为 支持向量机就是要解决下列优化问题:
( 1 )
约束条件:
函数 把 规划到高维(或是无限维)空间中, SVM 就是要解决在高维空间中寻找具有最大分隔空间的线性分离超平面的问题。其中 , 是错分样本的惩罚因子, 是内积函数(又称核函数) [4][5] 。
** 2. ** ** 针对汉字识别的多类问题 ** **
**
** 2.1 ** ** 多类问题 **
汉字识别属于多类问题,识别方法较多,但就特征而言,主要可以分为两类:统计方法和结构方法。此外还有目前较流行神经网络方法。本文的小样本字符集的识别问题中,采用的则是SVM中的多类识别方法。 目前多类 SVM 的方法主要有 one-against-all, one-against-one, DAGSVM 等 [6] 。
One Against All , 有时也称为 One Versus Rest 。如果数据有 类 , 需要训练 个分类器。第 个分类器取第 类数据为正例,其余数据为负例。给定 个训练数据 ,第 类的约束条件为 , 支持向量机解决下列问题:
,
( 2 )
函数 把训练数据 规划到一个高维的线性空间, 是惩罚因子。
最小化 实际上等价于最大化 ,即两组数据的最大间隔。当数据线性不可分时,惩罚因子 可以减少训练误差的数值。 SVM 的基本问题就是要在正则项 和训练误差之间寻找均衡值。
(2) 式的问题解决后,还需要考虑下列 个决策函数
最后归为有最大决策值的类。
( 3 )
在实际问题中解决的是跟( 2 )式有相同变量值的对偶问题。这样, 个 变量的二次规划问题得以解决。
One Versus One ,也 称 One Against One ,在本文的分类识别中用的是这种方法 。算法思想如下:如果有 类数据,选取第 类数据和第 类数据构造一个分类器,其中 (一般设 为正例, 为负例),这样需要训练 个分类器。对于第 和第 类数据,需要解决下列的两分类问题:
( 4 )
用投票法解决上述问题,若 判断 属于第 类,第 类的票数加 1 ;反之,第 类票数加 1 。 最后归为拥有最多票数的类。这种投票法称为 “ Max Wins” 法。但如果两类具有同样的票数,该方法就不太适用了,这时可以选择索引值较小的类。
在实际问题中,通常解( 4 )式的对偶问题,因为它的变量个数和两类的数据个数相同。若平均每类有 个数据点,可以解决 个二次规划问题,其中每个有大约 个变量。
** 2.2 ** ** 核函数的选择 **
常用的核函数有以下四种:
线性函数:
多项式函数:
径向基函数(RBF):
Sigmoid函数:
其中 是核参数。
本文将RBF函数作为核函数的首选,原因主要有以下几点:
首先,RBF函数可以将样本非线性地规划到更高维的空间中,从而解决类标签和属性间非线性的关系问题,这是线性核函数无法解决的。进一步而言,线性核函数是RBF核函数的特例(可从线性函数的惩罚因子 和RBF核函数的 性能的相关性得到)。另外,Sigmoid核函数取某些特定参数时性能和RBF相同。
其次,超参数的数目影响模型选择的复杂性。多项式核函数数目比RBF核函数多,因此其模型选择更为复杂。
最后,RBF函数的数值限制条件少。由于 被限制在0和1之间,而多项式核函数的值可能会趋于不定值 或零值 且幂值更高;Sigmoid核函数在取某些参数值时则可能无效。