首页> 中国专利> 一种基于改进距离核主成分分析的手写体数字识别方法

一种基于改进距离核主成分分析的手写体数字识别方法

摘要

本发明涉及一种基于改进距离核主成分分析的手写体数字识别方法,属于模式识别与人工智能领域。本发明的特征在于,采用MNIST数据库作为实验对象,首先对样本进行二值化预处理,将处理后的样本数据利用距离核映射的核特征空间,在核特征空间利用K均值聚类将训练样本集分为N类子集,然后在核空间中计算核矩阵的特征向量得到变换矩阵,利用变换矩阵进行特征提取,将提取的特征数据集放入支持向量机建立训练模型,最后利用模型预测测试样本的识别率。本发明可以很好的提高手写体数字识别率高,减少运行时间,并且可以解决大样本的计算代价巨大的问题。

著录项

  • 公开/公告号CN103093235A

    专利类型发明专利

  • 公开/公告日2013-05-08

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201210592487.8

  • 申请日2012-12-30

  • 分类号G06K9/62;

  • 代理机构北京思海天达知识产权代理有限公司;

  • 代理人楼艮基

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2024-02-19 19:06:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-01-20

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):G06K9/62 申请日:20121230

    实质审查的生效

  • 2013-05-08

    公开

    公开

说明书

技术领域

本发明涉及字符识别技术领域,尤其涉及一种基于改进的距离核主成分分析的 手写体数字识别方法,属于模式识别领域。

背景技术

手写体数字识别具有非常广泛的应用,如银行,邮局,税务等。虽然人们在文 字识别的研究中已取得很多成就,但距真正意义上的应用还有一定的距离。数字识 别的关键在于特征提取,选取的特征要具有可分辨性、可靠性、独立性。

目前,数字特征提取的方法有很多,主要可以分为统计特征方法和结构特征方 法。主成分分析(Principal Component Analysis,PCA)是模式识别领域中一种经典 的特征抽取方法,但是在非线性数据分布情况下该方法不够理想,由于真实的数字 图像中存在着光照、旋转等非线性变化,主成分分析作为一种线性方法不能很好的 描述这些非线性特征。提出将核方法推广到核空间的核主成分分析 (KPCA)方法可以很好的解决非线性问题并且KPCA在人脸识别等方面取得了非 常好的成果。但对于大样本的手写体数字来说,由于KPCA计算过程中的复杂性而 面临巨大的计算代价,这就限制了它的实用性。

基于此,有必要改进KPCA,并可以将其应用在实际的手写体数字识别系统中。 为了解决KPCA处理大样本问题时计算代价大的问题,首先将距离核函数作为 KPCA的核函数,因为在计算核矩阵的过程中,该函数不需要进行复杂的高维运算, 因而不会增加时间的耗费。与此同时,采用基于K均值聚类的方法对映射到核特征 空间的训练样本进行子集划分,划分为若干子集,并将每个子集在特征空间中的协 方差矩阵用一些特征向量近似表示,基于这种近似表示,使KPCA在求解过程,只 需对一个阶数等于这些特征向量数目之和的核矩阵进行特征值分解即可,这种方法 简单有效。

发明内容

本发明的手写体数字识别方法是为了提高手写体数字识别率,解决标准核成分 分析应用在大样本数据集上计算复杂度高的问题,提出一种基于改进的距离核主成 分分析的数字特征提取方法,并且利用支持向量机(SVM)作为分类器,以达到较 高的手写体数字识别准确率。

为了解决上述技术问题,本发明在计算机中按以下技术方案予以实现:

(1)将手写体数字样本以特征向量的形式输入计算机。采用MNIST数据库, 把数据库中样本进行解压缩,得到单个图像样本的形式,将这些样本进行二值化预 处理后以特征向量的形式输入计算机。

(2)选择距离核函数,利用非线性映射Φ将原始空间样本映射到核特征空间F 中;

(a)选择一种新的可用于核学习方法的核函数,距离核函数:

K(xi,xj)=<Φ(xi),Φ(xj)>=-c||xi-xj||d          (1)

其中参数0<d≤2,c为常数,当d=2时,核KPCA等于PCA。

(b)选择核函数之后要确定核函数的参数c和d的值,由于参数的选择没有 严格的理论依据,采用多次实验验证的方法来选择最优参数,将样本值代入核函数 计算,这样就将原始空间样本映射到核特征空间F中;

(c)对每一个训练样本的映射样本数据进行标准化处理,得到:

φ(xij)=Φ(xij)-AjSj---(2)

其中样本均值:Φ(xij)表示每个样本的像素集合,第j个样本 的标准差:得到标准化后的训练样本的数据映射样 本集如下:φ={(φ(x11),...,φ(x1M)),(φ(x21),...φ(x2M)),(φ(xL1),...φ(xLM))},M=784;

(3)采用K均值聚类的方法将(2)得到标准化的训练样本的训练数据映射样 本集数据分成N类子集;

本发明从聚类的角度出发,以距离为相似度准则把相似样本聚在一类,把每一 类作为一个子集,以此对核特征空间样本集进行划分。又由于KPCA算法实际上是 对训练样本经过核函数变换到核特征空间中的特征点进行PCA分析。核聚类算法步 骤如下:

(a)确定初始聚类中心,即在核特征空间F中,将标准化后的训练样本的训 练数据映射样本集L随机分成N类子集,将每一类训练数据映射样本的均值作为初 始聚类中心;

(b)在核特征空间中,将每个样本根据最近邻原则分配到N类子集中;

(c)确定新的聚类中心和总的误差平方和D*的值;

对于步骤(b)中得到的每类子集,分别以每个训练数据映射样本为类中心, 计算类内其它各映射样本的样本点到类中心的距离,并算出距离之和,距离之和 最小的类中心就是该类的类中心cn*。最小的距离之和就是该类的误差平方和,将 各类的误差平方和加起来就得到总的误差平方和的值D*

(d)重复步骤(b)和(c),直到连续n次迭代D*<0.001为止,这样就将训 练样本分成了N类子集,并得到每类子集的聚类中心。

(4)在核特征空间F中对每类子集进行主成分分析,并计算得到变换矩阵;

(a)首先,在核特征空间中计算每类子集的协方差矩阵的特征值及其特征向 量,将特征值按降序排列,特征向量作相应的调整;

(b)然后,计算特征值的累积贡献率,根据累积贡献率选择前pn个的特征值 对应的特征向量,累积贡献率的值就是所选的前pn个的特征值的和与总的特征值的 和的比值,在本发明中,选择的累积贡献率的值为85%;

(c)最后,根据每类子集协方差矩阵Rn与总训练集协方差矩阵R的关系得到 变换矩阵;

将对R的特征值分解近似转化每一类子集的协方差矩阵的和就可以求得R的特 征向量,也就是所要求的变换矩阵,该变换矩阵可以使高维数据集映射成低维数据 集,对训练数据集Ptrain和测试数据集Ptest利用变换矩阵进行特征提取;

(5)对训练数据集Ptrain和测试数据集Ptest利用变换矩阵进行降维,分别得 到训练样本的特征数据集Strain和测试样本的特征数据集Stest。

(6)利用训练样本特征数据集Strain训练支持向量机,得到数字识别的分类器;

(a)支持向量机也是基于核方法的思想,选择径向基函数作为核函数:

径向基核函数形式为:K(x,xi)=exp(-||x-xi||2δ2)---(3)

δ为函数的半径参数,控制函数的径向作用范围,xi是核函数中心;

(b)采用LIBSVM2.86软件包来建立支持向量机的训练模型;

训练模型是:model=svmtrain(TrainLabel,Strain,'-c1024-g0.25');

其中,TranLabel表示训练样本表示的数字大小,Strain表示训练样本特征数 据集,c表示径向基核函数的惩罚因子,g即δ,表示径向基核函数的半径参数。

(7)将测试样本特征数据集Stest输入到已训练好的支持向量机分类器,得到 数字识别结果;

(a)首先利用建立好的分类模型测试训练样本的识别率:

preTrainlabel=svmpredict(TrainLabel,Strain,model);

(b)然后将测试样本特征集放入分类模型中,得到分类结果:

cv=svmpredict(TestLabel,Stest,model);

其中,TestLabel是测试样本集中每个样本的真实数字大小,Stest表示测试样本 的特征数据集,model是建立好的训练模型,cv得到的结果就是测试样本利用分类 模型得到的识别结果。

本发明的特征在于,具体方法在计算机中是按以下步骤实现的:

步骤(1),将手写体数字样本以特征向量的形式输入计算机,首先将MNIST 手写体数字数据库进行解压,分解为单个图像的形式,并进行二值化预处理,其中 包括:60000个训练样本和20000个测试样本,

设定:从中选择至少20000个训练样本L组成训练样本数据集合,用{L}表示, 每副图像表示为:xl,l=1,2,...,l,...,L,其中,每副图像的大小为28×28个像素点,L 个训练样本图像共有L×784个像素点,L个训练样本内样本数据的协方差矩阵R为:

R=1LΣl=1LxlxlT---(1)

步骤(2),选择距离核函数K(xi,xj),利用非线性映射集合Φ把原始空间的训 练数据集L映射到核特征空间F中;

步骤(2.1),设定Φ为每个所述训练样本xl的非线性映射关系Φ(xl)的集合, Φ={Φ(x1),Φ(x2),...,Φ(xl),...,Φ(xL)},则距离核函数K(xi,xj)定义为训练样本数据集L 中任意两个样本xi,xj的非线性映射关系Φ(xi),Φ(xj)的内积:

K(xi,xj)=<Φ(xi),Φ(xj)>,i∈L,j∈L,

当把原始空间的训练样本数据集L用距离核函数K(xi,xj)映射到核特征空间F 中时:K(xi,xj)=<Φ(xi),Φ(xj)>=-c||xi-xj||d,0≤d≤2,当取c=1时,d=0.3,得到训 练样本的数据映射样本集;

步骤(2.2),对每一个训练样本的数据映射样本进行标准化处理,得到:

φ(xij)=Φ(xij)-AjSj---(2)

其中样本均值:Φ(xij)表示每个样本的像素集合,第j个样本 的标准差:得到标准化后的训练样本的数据映射样本 集如下:φ={(φ(x11),...,φ(x1M)),(φ(x21),...φ(x2M)),(φ(xL1),...φ(xLM))},M=784;

步骤(3),采用K均值聚类的方法将步骤(2)得到的标准化的训练样本的训 练数据映射样本集数据分成N类子集;

步骤(3.1),在核特征空间F中,将标准化后的训练样本的训练数据映射样本 集L随机分成N类,每一类的训练数据映射样本个数相等,每一类的训练数据映射 样本个数为Ln,则n=1,2,...,N,将每一类的训练数据映射样本的均值作为 初始聚类中心的集合,N<<L,其中,第n个初始聚类中心为Cn

Cn=1LnΣn=1Lnφ(xni),n=1,2,...,N,i=1,2,...,Ln     (3)

其中,φ(xni)是第n类的第i个样本在核特征空间F上的投影;

步骤(3.2),在核特征空间F中分别计算每一个标准化后的训练数据映射样本 φ(x)与N个初始聚类中心的距离D:

D=||φ(x)-Cn||2=||φ(x)-1LnΣn=1Lnφ(xni)||2                (4)

=<φ(x),φ(x)>-2Ln<φ(x),Σi=1Lnφ(xni)>+

1Ln2Σl=1LnΣm=1Ln<φ(xnl),φ(xnm)>,l∈Ln,m∈Ln,l≠m

其中,φ(xnl),φ(xnm)分别表示第n类的第l个样本和第m个样本;

步骤(3.3),根据步骤(3.2)所得到的结果,若给定训练样本x的标准化训 练数据映射样本φ(x)与第n个初始聚类中心的距离最小,则给定的训练样本x属于 第n个初始聚类中心所在的类别,从而得到N类子集;

步骤(3.4),对于步骤(3.3)中得到的每类子集,分别以每个训练数据映射 样本为类中心,计算类内其它各映射样本点到类中心的距离,并算出距离之和,距 离之和最小的类中心就是该类的类中心cn*,最小的距离之和就是该类的误差平方 和,将各类的误差平方和加起来就得到总的误差平方和的值D*,计算公式如下:

D*=Σn=1NΣi=1Ln||φ(xi)-cn*||---(5)

其中D*表示总的误差平方和,cn*表示更新后的聚类中心;

步骤(3.5),重复步骤(3.3)和步骤(3.4),直到N类子集总的误差平方和 的变化值小于设定的误差平方和变化值ΔD为止,ΔD<0.001,从而把训练样本集L 分成N类子集,并得到每类的聚类中心;

步骤(4),按以下步骤在核特征空间F中对步骤(3.5)中的每类子集进行主 成分分析计算得到变换矩阵

步骤(4.1),计算第n类训练数据映射样本子集的核矩阵中的特征值和特征向 量,步骤如下:

步骤(4.1.1),设定经过子集划分后的第n类子集为n=1,2,...,N, Ln为子集Xn的样本个数,显然,有以及成立,经过非线性变换之 后,子集Xn对应的特征点集为核矩阵K分为N×N块,即K=Kij, i=1,2,...,N,j=1,2,...,N,其中:Kij=φT(Xi)φ(Xj),Xi,Xj表示第i,j类子集的原始训 练样本;

步骤(4.1.2),按下式计算每类映射子集的协方差矩阵Rn,Rn=φ(XnT(Xn) 其中:φ(Xn)表示第n类子集在特征空间中的样本训练集,Xn表示第n类子集的样 本,计算得到Rn的特征值为:对应的特征向量是:得 到:

Rn=Σj=1Lnλjnvjn(vjn)T=Σj=1Lnv·jn(v·jn)T,j=1,2,...,Ln     (6)

其中,为核矩阵Knn的单位特征向量,其对应特征值 为

步骤(4.2),根据累积贡献率选择Rn的最大的前pn个特征值对应的特征向量, 设Rn的Ln个特征值为则Rn的前t个特征值的累积贡献率γ(t)为:

γ(t)=Sn(t)Sn---(7)

其中,t为设定值,是任意选择的,Sn为总特征值:Sn(t)为前t个 特征值,给定一个累积贡献率ra=85%,逐渐增加t直到某一个ts,有 γ(ts)≥ra,则选择Rn的最大的前pn个特征值对应的特征向量,pn的个数为ts个;

步骤(4.3),根据各类子集与总训练集L的协方差矩阵的关系求变换矩阵根据步骤(4.2)的结果,若满足以下条件:

Σn=1NΣj=pn+1Lnλjn<<Σn=1NΣj=1Lnλjn---(8)

即在标准化后的训练数据映射样本集中,每类子集内第pn+1个特征值以后的所有特 征值之和相对于每类子集标准化后的训练数据映射样本集的特征值之和非常小可 以忽视的情况,则令Rn的近似矩阵用表示:

R·n=Σi=1pnv·jn(v·in)T---(9)

用前pn个特征值的特征向量来表示Rn的协方差矩阵,又由于总训练样本集的协方差 矩阵和每类子集的协方差矩阵满足以下的关系:

R=1LΣi=1Lφ(xi)φT(xi)

=1LΣn=1NΣi=1Lnφ(xni)φT(xni)---(10)

=1LΣn=1NRn

总协方差矩阵的近似矩阵表示为可表示为:

R·=1LΣn=1NR·n=1LΣn=1NΣj=1pnv·jn(v·jn)T---(11)

得到这样对R的特征值分解就可以近似的转换为对的特征值分 解,设和为的特征值和特征向量,则有:

R·μ·=λ·μ·---(12)

特征向量即是变换矩阵,变换矩阵可表示为:

μ·=Σn=1NΣj=1pnv·jkβ·nj=Σk=1NΣj=1pnφ(Xn)αjnβ·nj---(13)

系数n=1,2,…,N,j=1,2,…,pn为设定值;

步骤(5),对训练样本数据集和测试样本数据集利用变换矩阵进行投影,分 别得到训练样本的特征数据集和测试样本的特征数据集;

步骤(5.1),利用变换矩阵求训练样本的特征数据集,将式(9)、(13)代入 式(12),得到:

K·a·=λ·a·---(14)

式中,i=1,…N,j=1,…,N为近似核矩阵,是一个分块矩阵,是pi×pj阶矩阵,pi,pj分别表示选择的前pi,pj个特征值和特征向量,这样利用近似核矩阵就可以计算得到它的特征向量即训练样本特征集:

a·=[(γ·11,...,γ·1p1),(γ·21,...,γ·2p2),(γ·N1,...,γ·NpN)]T---(15)

步骤(5.2),计算测试样本的特征数据集,对于测试样本集合z,它在特征向量 上的投影为:

μ·Tφ(z)=Σn=1NΣj=1pnβ·nj(αjn)TφT(Xn)φ(z)=Σn=1NΣj=1pnβ·nj(αjn)ιn---(16)

式中,K(xn1,z)表示第n类样本集中第一个样本 数据与测试样本数据集的核矩阵;

步骤(6),利用训练样本特征数据集训练支持向量机,得到数字识别的分类器; 步骤(6.1),选择径向基函数作为核函数,建立训练模型,其中,径向基核函数形 式为:K(x,xi)=exp(-||x-xi||2δ2)---(17)

δ为函数的半径参数,控制函数的径向作用范围;

步骤(6.2),采用LIBSVM2.86软件包来建立支持向量机的训练模型,确定径 向基核函数的惩罚因子和参数半径的最优值,利用LIBSVM软件包建立的训练模型 是:model=svmtrain(TrainLabel,Strain,’-c1024g0.25’);

其中,TrainLabel表示训练样本的真实标签值,Strain表示训练样本的特征数据 集,c表示径向基核函数的惩罚因子值,g表示径向基核函数的半径参数,采用十折 交叉验证法来选择最优参数来提高预测精度,将训练集分成十份,轮流将其中九份 做训练样本,一份做测试样本,平均十次的结果最终得到一个单一估测值;

步骤(7),将测试样本特征数据集输入到已训练好的支持向量机分类器,得到 数字识别结果;

步骤(7.1),利用建立好的分类模型测试训练样本的识别率:

preTrainlabel=svmpredict(TrainLabel,Strain,model);

步骤(7.2),将测试样本特征集放入分类模型中,得到分类结果:

cv=svmpredict(TestLabel,Stest,model);

其中,TestLabel是测试样本集中每个样本的真实标签值,Stest表示测试样本的 特征数据集,model是建立好的训练模型,cv得到的结果就是测试样本利用分类模 型得到的识别结果,将由支持向量机识别得到的结果和标准的测试样本值做比较, 如果相同则识别正确,否则识别错误,以此得到识别率。

与现有技术相比,本发明的优点和积极效果是:一方面,选择距离核函数作为 核主成分分析的核函数,在计算核矩阵的过程中,该函数不需要进行复杂的高维运 算就可以完成输入空间到核特征空间的映射,因而不会增加时间的耗费;另一方面, 对于标准的KPCA算法需要对一个L×L的核矩阵进行特征值分解,它的计算复杂 度就是O(L3),当训练大样本集时,该方法的算法复杂度会特别大,因此面临计算 代价巨大的问题。经过子集划分后的核矩阵,核矩阵K被分成N×N块,核矩阵K 的计算复杂度就变为了改进后的KPCA就大大的降低了计算复杂 度。采用改进后的距离核主成分分析算法提取数字特征,得到的特征更具有分类判 别性,可以得到较高的识别率。

结合附图阅读本发明的实施方式的详细描述之后,本发明的其他优点也将变得 更加清楚。

附图说明

图1具体实施方式中所选的MNIST数据库中样本图像;

图2手写体数字识别方法流程图;

图3利用核聚类算法进行训练集子集划分的的流程图;

图4利用改进距离核主成分分析的方法提取不同主元个数时的识别率;

具体实施方式

本发明的手写体数字识别方法是为了提高数字识别率,解决标准KPCA应用在 大样本数据集上计算复杂度高的问题。下面结合附图对本发明的具体实施方式做进 一步详细地说明。

实施例一,为验证所提出方法的高效性,以MNIST手写体数据库为例,其中数 据库中部分图像如图1。手写体数字识别过程具体实施步骤如图2所示:

第一步:将MNIST手写体数据库进行解压分解成单副图像的形式,并对每个样 本进行二值化预处理;

数据库中包括60000个训练样本和20000个测试样本,实验过程中选择L=20000 个训练样本图像,每副图像表示为:xl,l=1,2,…,l…,L。其中,每副图像的大小为 28×28个像素点,L个训练样本图像共有L×784个像素点,L个训练样本内样本 数据的协方差矩阵R为:

R=1LΣl=1LxlxlT---(1)

第二步:选择距离核函数,利用非线性映射Φ将原始空间样本映射到核特征 空间F中,步骤如下:

首先,设非线性映射Φ={Φ(x1),Φ(x2),…Φ(xl),…Φ(xL)};

其次,设距离核函数为K(xi,xj)令K(xi,xj)=<Φ(xi),Φ(xj)>=-c||xi-xj||d,其中, <Φ(xi),Φ(xj)>表示内积的形式,利用距离核函数把原始空间样本数据集映射到核特 征空间F中:K(xi,xj)=<Φ(xi),Φ(xj)>=-c||xi-xj||d0≤d≤2,c为常数,采用多次试验 验证的方法得到参数的最优值:c=1和d=0.3;

最后,对每一个训练样本的数据映射样本进行标准化处理,得到:

φ(xij)=Φ(xij)-AjSj---(2)

其中样本均值:Φ(xij)表示每个样本的像素集合,第j个样本 的标准差:得到标准化后的训练样本的数据映射样 本集如下:φ={(φ(x11),...,φ(x1M)),(φ(x21),…φ(x2M)),(φ(xL1),…φ(xLM))},M=784,

采用核方法的思想,并不需要了解具体的非线性映射Φ的形式,只要了解映 射后内积的核函数形式即可。在核空间中只需要进行内积运算,这个内积运算可 以在原空间中用核函数来实现。

第三步:采用K均值聚类的方法将第二步得到的标准化后的训练样本的训练数 据映射样本集分成N类子集,K均值聚类算法步骤如图3所示,步骤如下:

(1)将标准化后的训练样本的训练数据映射样本集L随机分成N=10类,每一 类的训练数据映射样本个数相等,每一类的训练数据映射样本个数为Ln=2000,则 n=1,2,…,10,将每一类的训练数据映射样本的均值作为初始聚类中心的集 合,其中,第n个初始聚类中心为Cn

Cn=1LnΣn=1Lnφ(xni),n=1,2,…,10,i=1,2,…,Ln     (3)

其中,φ(xni)是第n类的第i个样本在核特征空间F上的投影;

(2)对于某个给定的样本x,计算它在特征空间中与某类中心Cn的距离为:

D=||φ(x)-Cn||2=||φ(x)-1LnΣn=1Lnφ(xni)||2=<φ(x),φ(x)>-        (4)

2Ln<φ(x),Σi=1Lnφ(xni)>+1Ln2Σl=1LnΣm=1Ln<φ(xnl),φ(xnm)>.

其中,φ(xnl),φ(xnm)分别表示第n类的第l个样本和第m个样本;

(3)在核特征空间F中分别计算每一个标准化后的训练数据映射样本φ(x)与N 个初始聚类中心的距离D:

D=||φ(x)-Cn||2=||φ(x)-1LnΣn=1Lnφ(xni)||2             (5)

=<φ(x),φ(x)>-2Ln<φ(x),Σi=1Lnφ(xni)>+

1Ln2Σl=1LnΣm=1Ln<φ(xnl),φ(xnm)>,l∈Ln,m∈Ln,l≠m

其中,φ(xnl),φ(xnm)分别表示第n类的第l个样本和第m个样本,

这样,计算出每一个映射样本φx)与N类样本中心的距离,若φ(x)与第n类的中心 距离比较小,那么给定的样本x就属于第n类,这样以此计算出每个样本所属的子 集类别。

(4)根据上一步得到的每类子集,分别以每个训练数据映射样本为类中心, 计算类内其它各映射样本点到类中心的距离,并算出距离之和,距离之和最小的类 中心就是该类的类中心cn*。最小的距离之和就是该类的误差平方和,将各类的误差 平方和加起来就得到总的误差平方和的值D*,计算公式如下:

D*=Σn=1NΣi=1Ln||φ(xi)-cn*||---(6)

其中D*表示总的误差平方和,cn*表示更新后的聚类中心;

(5)重复(3)和(4),直到N类子集总的误差平方和的变化值小于设定的误 差平方和变化值ΔD为止,ΔD<0.001,从而把20000个训练样本集分成10类子集, 并得到每类的聚类中心;

第四步:在核特征空间对每类子集进行主成分分析计算,得到变换矩阵

(1)在特征空间中计算每类子集核矩阵的特征值及其特征向量,将特征值按降 序排列,特征向量作相应的调整;

经过上述子集划分训练样本集划分的N个子集为 n=1,2,…,10,Ln为子集Xn的样本个数。显然,有以及成立。经过非线性变换以及标准化后,子集Xn对应的特征点集为对 应地,把核矩阵K分成了N×N块,即K=Kij,i=1,2,…,N,j=1,2,…,N,其中: Kij=φT(Xi)φ(Xj),Xi,Xj表示第i,j类子集的原始训练样本。

记每一类子集的协方差矩阵为:Rn=φ(XnT(Xn)

其中,Rn表示第n类子集的协方差矩阵,Xn表示第n类子集的样本。

计算Rn的特征值为:对应的特征向量是:那么可 以得到:

Rn=Σj=1Lnλjnvjn(vjn)T=Σj=1Lnv·jn(v·jn)T,j=1,2,…,Ln     (7)

其中,为核矩阵Knn的单位特征向量,其对应特征值 为计算得到特征值之后,将其按降序排列。

(2)计算特征值的累积贡献率,选择累积贡献率为85%,根据累积贡献率的大 小选择前pn=70个的特征值对应的特征向量,利用每个子集特征值的累计贡献率 来确定pn的值:设Rn的Ln个特征值为记:总特征值大小:前t个特征值的大小:令Rn前t个特征值的累积贡献率为:

γ(t)=Sk(t)Sk---(8)

给定一个比率ra=85%,逐渐增加t直到某一个ts,有γ(ts)≥ra,则pn=ts,即 选择Rn的最大的前70个特征值对应的特征向量。

(3)根据每类子集与总训练集协方差矩阵的关系求变换矩阵

则由KPCA算法原理计算:

R=1LΣi=1Lφ(xi)φT(xi)=

1LΣn=1NΣi=1Lnφ(xni)φT(xni)=---(9)

1LΣn=1Nφ(Xn)φT(Xn)=1LΣn=1NRn

从Rn的Ln个特征值中选择最大的前pn个特征值对应的特征向量 为:满足则:第n类的协方差矩阵近似表示为:

R·n=Σi=1pnv·in(v·in)T---(10)

总的协方差矩阵近似表示为:R·=1LΣn=1NR·n=1LΣn=1NΣj=1pnv·jn(v·jn)T---(11)

显然有这样对R的特征值分解,就可以近似地转换为对的特征 值分解。设和为的特征值和特征向量,则有:

R·μ·=λ·μ·---(12)

特征向量即是变换矩阵,变换矩阵可表示为:

μ·=Σn=1NΣj=1pnv·jkβ·nj=Σk=1NΣj=1pnφ(Xn)αjnβ·nj---(13)

系数n=1,2,...,10,j=1,2,...,70为设定值。

第五步:对训练数据集Ptrain和测试数据集Ptest利用变换矩阵进行降维, 分别得到训练样本的特征数据集Strain和测试样本的特征数据集Stest;

(1)利用变换矩阵求训练样本特征集Strain,将式(10)、(13)代入式(12), 可得:K·a·=λ·a·---(11)

式中,i=1,…,10,j=1,…,10为近似核矩阵,是一个分块矩阵,是pi×pj阶矩阵,pi,pj分别表示选择的前pi,pj个特征值和特征向量,这样利用近似核矩阵就可以计算得到它的特征向量即训练样本特征集:

a·=[γ·11,...,γ·1p1,γ·21,...γ·2p2,γ·N1,...γ·NpN]T---(15)

(2)选择4000个测试样本,z表示测试样本点的集合,它在变换矩阵上的 投影为:

μ·Tφ(z)=Σn=1NΣj=1pnβ·nj(αjn)TφT(Xn)φ(z)=Σn=1NΣj=1pnβ·nj(αjn)τn---(16)

式中,K(xn1,z)表示第n类样本集中第一个 样本数据与测试样本数据集的核矩阵。

第六步:利用训练样本特征数据集Strain训练支持向量机,得到数字识别的分 类器;对于支持向量机参数的选择,在众多的核函数中,选择径向基核函数(RBF): 建立训练模型,xi是核函数中心,δ为函数的半径参数,控制 函数的径向作用范围,利用LIBSVM软件包的训练模型是:

model=svmtrain(TrainLabel,Strain,'-c1024-g0.25');

其中,TrainLabel表示训练样本的真实标签值,Strain表示训练样本的特征 数据集,在使用径向基核函数时,需要确定两个参数:惩罚因子c=1024和RBF核 函数的半径参数δ=g=0.25,本实施例中采用十折交叉验证来选择最优参数来提高 预测精度,将训练集分成十份,轮流将其中九份做训练一份做测试,平均十次的结 果,最终得到一个单一估测值。

第七步:将降维后的测试样本特征数据集Stest输入到已训练好的支持向量机分 类器,得到数字识别结果。

(a)首先利用建立好的分类模型测试训练样本特征集Strain的识别率:

preTrainlabel=svmpredict(TrainLabel,Strain,model);

(b)然后将测试样本特征集Stest放入分类模型中,得到分类结果:

cv=svmpredict(TestLabel,Stest,model);

其中,TestLabel是测试样本集中每个样本的真实数字大小,cv得到的结果就是 测试样本利用分类模型得到的识别结果。将由支持向量机识别得到的结果和标准的 测试样本值做比较,如果相同则识别正确,否则识别错误,以此得到识别正确率。

识别率=识别正确的数字个数/样本总个数;

利用本发明提出的识别方法在MNIST数据库上验证,在实验过程中,当选取 不同的主元个数时的识别率如图4所示,当主元个数为70时,识别率是最高的。 在选取主元个数为70时,实验30次,取30次实验结果的平均值,得到的训练样 本的识别率为100%,测试样本的识别率为99.2%。

本发明的手写体数字识别方法,基于核主成分分析,既能保持核主成分分析的 优点,在数字特征提取方面可以在对高维数据进行降维后有效的保留数据内部的非 线性结构,得到数字特征更具有分类判别性,提高识别率,又针对核主成分分析在 解决大样本问题上计算复杂度大、耗费时间大的问题进行改进,选择距离核函数作 为核主成分分析的核函数,并且提出了基于核聚类分析的子集划分方法,大大降低 了核矩阵的计算复杂度和存储资源,适用于实际的手写体数字识别系统。在保持手 写体数字高识别率的同时减少计算复杂度,更重要的是当样本数据非常大时,本发 明所提出的方法仍然可以使用。

最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技 术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明, 但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换, 其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号