一种基于多元多项式拟合的支持向量机模型近似方法及其应用与流程

文档序号:12721456阅读:314来源:国知局

本发明涉及一种基于多元多项式拟合的支持向量机模型近似方法及其应用



背景技术:

支持向量机(Support Vector Machine,SVM)是基于统计学习理论(Statistical Learning Theory,SLT)的一种新的机器学习算法。通常应用在模式识别、分类和回归分析等方面。核函数是支持向量机的核心组成部分,通过引入核函数,将原空间中线性不可分的数据样本映射到高维特征空间中,实现数据的线性分类,克服了传统机器学习方法存在的维数灾难和局部最小化问题。

然而支持向量机的训练过程实际上是求解一个二次规划问题,其时间复杂度为O(n3),由于要存储核矩阵,其空间复杂度为O(n2)。所以当训练集规模很大时,即使一般的通用计算机也无法正常处理,因此需要对传统的支持向量机算法进行改进。于是国内外研究人员提出了一些支持向量机的简化算法。其中大部分基于分解迭代的思想,即将原始的二次规划问题分解成若干规模较小的二次规划问题,包括Vapnik等人提出的分块(Chunking)算法及Platt提出的串行最小优化(Sequential Minimal Optimation,SMO)算法。还有一些思想是通过选取部分训练集的方法来降低系统的资源需求,如由Lee和Mangasarian提出的精简支持向量机(Reduced SVM,RSVM)等。

机器学习包含两个过程:训练和测试。上述的支持向量机简化方法主要针对的是降低训练过程的资源消耗,很少考虑测试过程的资源需求。在支持向量机的测试过程中,需先存储所有的支持向量及其对应的拉格朗日系数,而计算一个新输入样本数据的标签时,需计算输入样本与所有支持向量和拉格朗日系数的乘积,因此测试过程对系统的存储空间、计算资源需求也很大。

近年来,无线传感器和基于无线传感器的穿戴式医疗监护系统由于其具有的便利性得到了极大的发展。在无线传感器中,无线通信能耗远高于数据采集和处理的能耗,因此无线传感器节点使用支持向量机对数据进行处理,将处理后的结果发给用户可以显著地降低系统的通信能耗。受制造成本、体积等的限制,无线传感器节点的资源有限,其计算能力和存储能力远低于通用的计算机, 使得节点的资源无法满足支持向量机分类过程所需的硬件资源要求,因此不能在可穿戴装置等基于经济型CPU平台的系统上使用支持向量机模型,限制了医疗监护系统性能与技术发展。

因此,有必要设计能应用于基于经济型CPU平台的系统的支持向量机模型。



技术实现要素:

本发明所解决的技术问题是,针对现有技术的不足,提出一种基于多元多项式拟合的支持向量机模型近似方法及其应用,通过在高性能平台上训练得到传统支持向量机模型,并采用本方法得到的近似支持向量机模型进行在线预测,可以降低支持向量机对系统的资源需求,将近似模型应用到无线传感器网络等基于经济型CPU平台的系统上进行在线分类,扩大了支持向量机的应用范围。

为实现上述目的,本发明的解决方案如下:

一种基于多元多项式拟合的支持向量机模型近似方法,包括以下步骤:

步骤一:给定训练数据集T={(xi,yi)|i=1,2,…,l},其中,xi是n维空间上的样本数据,yi是与xi对应的类别标签。训练数据集T中共有l个样本数据,当支持向量机应用于分类问题时,这些样本数据分属于两个类别,即有yi∈{+1,-1};选择最佳的核函数类型和参数,利用训练集中数据对支持向量机进行训练,得到传统的支持向量机模型其中,αi*和b*分别是计算得到的拉格朗日系数和偏置,xi为支持向量,yi为与xi对应的类别标签,x0为n维未知输入数据,x0=[x01,x02,…,x0n],其中,x0k为x0的第k维分量,k=1,…,n;y是模型输出的与x0对应的类别标签;。

步骤二:选取步骤一中所得支持向量机模型y的所有支持向量及其拉格朗日系数,将训练数据集T中样本数据xj(j=1,2,…,l)依次代入支持向量机模型y的核函数计算,将得到的l个函数值记为数值序列F=[f(x1),f(x2),…,f(xl)]。

步骤三:采用多元多项式拟合方法,利用训练数据集T中样本数据和数值序列F建立超定方程组,求解超定方程组得到多元多项式的系数α;

步骤四:利用步骤三中求解得到的多元多项式系数与未知类别标签的n维输入数据x0构建多项式,替代支持向量机模型y的核函数部分,得到近似的支持向量机模型y'=sgn[X'α+b*];其中,d为多元多项式的次数,α=(α011,…,α1n,…,αd1,…,αdn)T为多元多项式的系数。

所述的基于多元多项式拟合的支持向量机模型近似方法,步骤一中所得的传统支持向量机模型y的训练方法如下:

对训练数据集T,求解最优分类超平面(ω·x)+b=0,使得不同类别的样本数据可以分开并保证分类间隔最大。其中,ω为分类超平面的法向量,b是分类超平面的偏移量。

当数据线性可分时,求解最优分类超平面的问题转化为求解如下二次规划问题:

其中,<xi,xj>为两个n维数据xi和xj的内积,即<xi,xj>=xi·xj;αi为引入的拉格朗日系数,C是一个正常数,称为惩罚因子,用来权衡最大化分类间隔和最小误差;

解式(3)可得到最终的决策函数,即支持向量机模型y为:

其中,αi*和b*都可以通过(1)式求解;αi*为使min后的函数值最小的αi的取值,选取正的支持向量xj,则这种情况下xi与x0的内积<xi,x0>视为核函数K(xi,x0);

当数据线性不可分时,支持向量机通过引入核函数K将样本数据映射到高维特征空间,然后在高维特征空间内进行分类。其最优分类超平面的求解问题转化为求解如下二次规划问题:

由式(4)得到最终的决策函数,即支持向量机模型y为:

其中,αi*和b*都可以通过(2)式求解。αi*为使得min后函数值最小的αi的取值,选取正的支持向量xj,则

所述的基于多元多项式拟合的支持向量机模型近似方法,在步骤一中训练支持向量机时,需选择使得支持向量机性能最佳的核函数类型,选择方法如下:

应用验证方法,从支持向量机中常用的支持核函数如多项式核函数K(xi,x0)=[g(xi·x0)+coef]d、径向基(RBF)核函数K(xi·x0)=exp(-g||xi-x0||2)以及Sigmoid核函数K(xi·x0)=tanh[g(xi·x0)+coef](g和coef是核函数参数)等函数中选取核函数,即将核函数分别带入进行实验找到使SVM性能最好的核函数。此外,可将样本数据线性可分视为线性不可分的一种特殊情况,即其核函数K(xi·x0)=xi·x0

所述的基于多元多项式拟合的支持向量机模型近似方法,在步骤一中训练支持向量机时,需选择使得支持向量机性能最佳的参数,参数包括核函数参数及惩罚因子C,选择方法如下:

采用网格搜索(GridSearch)的参数寻优方法对核函数参数及惩罚因子C进行选择,让支持向量机参数在一定范围内取值变化,常用的参数取值范围为2^(-5)到2^(5)。对于取定的参数,利用K-CV方法得到该组参数的分类准确率,最终选择使得测试集分类准确率最高的那组参数作为模型的参数。

K-CV为一种常用的交叉验证(Cross Validation,CV)方法,把原始数据均分为K个子集,(当原始数据集不能完全均分时,选择最大的可均分数据子集均分,剩余部分作为测试集),将每一个子集分别作为一次测试集,其余的K-1个子集作为训练集,得到K个模型,用这K个模型的测试集准确率作为分类器的性能指标。

所述的基于多元多项式拟合的支持向量机模型近似方法,步骤三中关于关于超定方程组的建立方法如下:

设n维数据xj=(xj1,…,xjn),则xjd=(xj1d,…,xjnd)。对训练数据集T中n维样本数据xj(j=1,2,…,l)和步骤二计算得到的f(xj),其构造的多元多项式方程为 在训练数据集T中,若样本个数为l,这样就得到l个方程;当样本数据维度为n时,要求l>>dn,d为多元多项式次数。将所得l个方程组成的超定方程组写作矩阵形式,有:

F=X·α

其中,F=[f(x1),f(x2),…,f(xl)]T为l个样本数据按原支持向量机中核函数计算得到的函数值;是以l个n维样本数据的各维分量的0到d次幂为元素组成的l行、(1+nd)列的矩阵,α=(α011,…,α1n,…,αd1,…,αdn)T为多元多项式的系数。

所述的基于多元多项式拟合的支持向量机模型近似方法,步骤三中多元多项式的次数是可变的,对同一训练数据集,根据选择的多项式次数的不同,构造不同的超定方程组,利用最小二乘法求解出方程组的解,解即为多元多项式系数α的值。

所述的基于多元多项式拟合的支持向量机模型近似方法的应用,将步骤四得到的近似的支持向量机模型y’应用于基于经济型CPU平台(例如低功耗MCU)的系统,对未知类别的输入数据进行在线分类,得到其类别标签。

在基于经济型CPU平台的系统上使用近似的支持向量机模型时,需确定近似的支持向量机模型y’模型中多元多项式的次数,其选择方法如下:

首先选择使得测试集分类准确率最高的近似支持向量机模型,利用与具体硬件对应的系统仿真器或仿真软件检测系统硬件所能提供的资源(根据具体CPU型号明确其程序与数据存储空间等硬件资源)是否满足该模型计算所需资源;若其所需资源超过了系统硬件所能提供的资源,则将近似的支持向量机模型模型中多元多项式的次数降低一次,直至近似模型的计算资源小于系统资源。

所述基于经济型CPU平台的系统包括无线传感器、可穿戴装置以及便携式终端。

有益效果:

本发明公开了一种基于多元多项式拟合的支持向量机模型近似方法及应用,该方法以对已知支持向量机模型的核函数逼近为目标,运用多元多项式拟合的方法,运用多元多项式拟合的方法,根据训练集上样本点的值,得到超定方程组,并据此求出多元多项式的表达式;同时,根据对多项式函数的精度要求和对硬件的存储、计算等系统资源需求,在保证硬件系统资源满足模型需求的前提下,选择精确度最高的多项式函数;最后,利用确定的多项式函数替代核函数得到近似的支持向量机模型。本发明的多项式模型支持向量机近似方法,简化了支持向量机模型对未知样本数据进行分类时的计算过程,降低了传统算法的复杂度和对系统的资源需求,使其可适应具体应用系统的不同存储空间等硬件资源条件。将近似模型应用到无线传感器、便携式终端等基于经济型CPU平台的系统上进行在线分类,扩大基于支持向量机的处理方法的应用范围,为穿戴式医疗监护系统等的发展进步起到促进作用。

表1为本发明方法与传统支持向量机对未知数据x进行分类时的资源需求对比。在传统支持向量机的模型中,对其核函数而言,对未知数据x计算输出f(x)时,需要的参数为所有的支持向量及其拉格朗日系数;而由多元多项式模型f(x)=X’·α可知,计算f(x)时,需要的参数仅为多项式的系数。因此利用多元多项式代替原模型中核函数得到近似的支持向量机模型y'=sgn[X'α+b*],对未知数据x而言,计算其标签y的运算量与支持向量个数无关,仅与多项式的次数有关,而在支持向量机中,支持向量的个数远远大于多 元多项式的次数,因此本发明方法降低了支持向量机的计算量,且不再需要存储支持向量,只需存储多项式参数,降低了支持向量机对系统存储资源的需求。

表1.本发明方法与传统支持向量机方法对未知数据x进行计算时的资源需求对比

附图说明

图1为本发明一种基于多元多项式拟合的支持向量机模型近似方法的流程示意图

具体实施方式

以下结合具体实施例对本发明做进一步的描述

如图1所示,一种基于多元多项式拟合的支持向量机近似方法及其应用,包括以下步骤:

步骤一:给定训练数据集T={(xi,yi)|i=1,2,…,l},其中,xi是n维空间上的样本数据,yi是xi对应的类别标签。训练数据集T中共有l个样本数据,当支持向量机应用于分类问题时,这些样本数据分属于两个类别,即有yi∈{+1,-1};

本实例选择UCI(University of California Irvine)提供的heart-scale(心脏病)数据集(https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#heart)和breast-cancer-scale(乳腺癌)数据集(https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#breast-cancer)。其中heart-scale有270个病例数据,数据维度为13,每一个维度包含不同的信息,病例信息有:年龄、性别、胸腔疼痛类型、休息时血压、血清胆固醇、空腹血糖含量、静息心电图结果、最高心跳速率、运动诱发心绞痛、运动与休息ST段对比、ST段斜率、被荧光剂标记的血管数,最后一个数据维度为其类别标签指病例是否有心脏病;breast-cancer-scale具有683个病例数据,数据维度为10,其信息包括:肿瘤厚度、细胞大小一致性、细胞形状一致性、边缘黏滞性、单一 上皮细胞大小、原子核裸露程度、染色质、细胞核正常程度、有丝分裂,最后一个维度作为标签将病例分为良性肿瘤和恶性肿瘤两类。将两个数据集都分为两部分:训练集T和测试集Te,其中训练集用来训练得到支持向量机模型,测试集用作测试得到模型的性能。本实例中,heart-scale数据集中选取前220个数据作为训练集,剩余的50个数据作为测试集;breast-cancer-scale数据集中选取前400个数据作为训练集,剩余的283个数据作为测试集。

对训练数据集T,求解最优分类超平面(ω·x)+b=0,使得不同类别的样本数据可以分开并保证分类间隔最大。其中,ω为分类平面的法向量,b是超平面的偏移量。

当数据线性可分时,求解最优分类超平面的问题转化为求解如下二次规划问题:

其中,<xi,xj>为两个n维数据xi和xj的内积,即<xi,xj>=xi·xj;αi为引入的拉格朗日系数,C是一个正常数,称为惩罚因子,用来权衡最大化分类间隔和最小误差;

解式(5)可得到最终的决策函数为:

其中,αi*和b*都可通过(1)式求解,αi*为使min后的函数值最小的αi的取值,选取正的支持向量xj,则

当数据线性不可分时,支持向量机通过引入核函数K将样本数据映射到高维特征空间,然后在高维特征空间内进行分类。其最优分类超平面的求解问题转化为求解如下二次规划问题:

由式(6)得到最终的决策函数为:

其中,αi*和b*都可以通过(2)式求解。αi*为使得min后函数值最小的αi的取值,选取正的支持向量xj,则

训练支持向量机时,需选择使得支持向量机性能最佳的核函数类型,常用的支持核函数有多项式核函数K(xi,x0)=[g(xi·x0)+coef]d、径向基(RBF)核函数K(xi·x0)=exp(-g||xi-x0||2)以及Sigmoid核函数K(xi·x0)=tanh[g(xi·x0)+coef],其中,g和coef是核函数参数。应用验证方法选取核函数,即将核函数分别带入进行实验找到使SVM性能最好的核函数。此外,可将样本数据线性可分视为线性不可分的一种特殊情况,即其核函数K(xi,x0)=xi,x0

在实际处理中,对heart-scale数据集和breast-cancer-scale数据集都先后选择了这三种常用的核函数:RBF核函数、多项式核函数、Sigmoid核函数分别进行训练得到对应的支持向量机模型。

对支持向量机进行训练时,需选择使得支持向量机性能最佳的参数,参数包括核函数参数及惩罚因子C,选择方法如下:

采用网格搜索(GridSearch)的参数寻优对核函数参数及惩罚因子C进行选择,让支持向量机参数在一定范围内取值变化,常用的参数取值范围为2^(-5)到2^(5)。对于取定的参数,利用K-CV方法得到该组参数的分类准确率,最终选择使得测试集分类准确率最高的那组参数作为模型的参数。

K-CV为一种常用的交叉验证(Cross Validation,CV)方法,把原始数据均分为K个子集,(当原始数据集不能完全均分时,选择最大的可均分数据子集均分,剩余部分作为测试集),将每一个子集分别作为一次测试集,其余的K-1 个子集作为训练集,得到K个模型,用这K个模型的测试集准确率作为分类器的性能指标。

步骤二:选取步骤一中所得支持向量机模型y的所有支持向量及其拉格朗日系数,将训练数据集T中样本数据xj(j=1,2,…,l)依次代入支持向量机模型y的核函数计算,将得到的l个函数值记为数值序列F=[f(x1),f(x2),…,f(xl)]。

步骤三:采用多元多项式拟合方法,利用训练数据集T中样本数据和步骤二所得函数值序列F建立超定方程组,求解超定方程组得到多元多项式的系数α;

设n维数据xj=(xj1,…,xjn),则xjd=(xj1d,…,xjnd)。对训练数据集T中n维样本数据xj和经过步骤二计算得到的f(xj),其构造的多元多项式方程为 在训练数据集T中,若样本个数为l,这样就得到l个方程;当样本数据维度为n时,要求l>>dn,d为多元多项式次数。将所得l个方程组成的超定方程组写作矩阵形式,有:

F=X·α

其中,F=[f(x1),f(x2),…,f(xl)]T为l个样本数据按原支持向量机中核函数计算得到的函数值;是以l个n维样本数据的各维分量的0到d次幂为元素组成的l行、(1+nd)列的的矩阵,α=(α011,…,α1n,…,αd1,…,αdn)T为多元多项式的系数。

将训练数据集样本T中样本数据和步骤二中计算得到的对应f(xj)代入多元多项式表达式得到矛盾方程组,求解矛盾方程组得到多项式系数α。

多元多项式的次数是可变的,对同一训练数据集,根据选择的多项式次数的不同,构造不同的超定方程组,利用最小二乘法求解出方程组的解,解即为多元多项式系数α的值。在保证得到的近似支持向量机模型精确度不低于原模型的前提下,选择最低次数的多项式函数,以降低计算的复杂度。在实例中,多元多项式表达式的次数先后选择1、2、3和4得到不同的矩阵X和不同超定方程组, 并进行求解。

步骤四:利用步骤三中求解得到的多元多项式系数与未知类别标签的n维输入数据x0=[x01,x02,…,x0n](其中,x0k为x0的第k维分量,k=1,…,n)构建多项式,替代支持向量机模型y的核函数部分,得到近似的支持向量机模型y'=sgn[X'α+b*];其中,d多元多项式的次数,α=(α011,…,α1n,…,αd1,…,αdn)T为多元多项式的系数。

步骤五:将近似的支持向量机模型y’应用在基于经济型CPU平台的系统上,对未知类别标签的数据进行分类,得到其标签。在基于经济型CPU平台的系统上使用近似的支持向量机模型时,需确定近似模型中多项式函数的次数,其选择方法如下:

首先选择使得测试集分类准确率最高的近似支持向量机模型,若其所需计算资源超过了系统所能提供的资源,则选择多项式函数的次数低一次的近似模型,直至近似模型的计算资源要求小于系统所能提供的资源。

实例1:

利用步骤一中heart-scale数据和breast-cancer-scale数据的两个测试集来测试本发明得到的近似支持向量机模型,主要选择对测试集的分类准确率和分类时间作为本发明的评价标准。对测试集的分类准确是系统的基本要求,而所需的分类时间体现了算法的复杂度及对系统的资源需求。实例1是在Matlab R2014a中采用Matlab语言编程进行实验,PC的具体配置为Intel Core I5,3.10GHz,4GRAM。

表2和表3对heart-scale数据的测试集和breast-cancer-scale数据的测试集采用本发明方法与传统支持向量机进行分类实验的结果进行比较,其中,在支持向量机的训练过程中,两个数据集都先后选择了三种常用的核函数进行训练并选择一次多项式来近似核函数。此外,当选择多元多项式次数为2、3或4时,其结果与一次多项式类似。

表2.采用本发明方法与传统支持向量机对heart-scale数据集进行分类测试的结果比较

表3.采用本发明方法与传统支持向量机对breast‐cancer‐scale数据集的分类测试结果比较

通过上述的比较试验可知,与传统支持向量机模型相比,采用本发明方法得到的近似支持向量机模型用于样本在线分类时,计算时间大大减低同时分类的准确率不低于传统模型的分类准确率。两个对比试验的结果均证明了本发明方法用于对未知样本分类时能够在保证近似模型的分类准确率的同时大大的提高了计算速度,增加了算法的实时性。

实例2:

采用breast-cancer-scale数据集来测试本发明得到的近似支持向量机模型在典型的经济型CPU平台MSP430F1611上使用时的资源消耗。MSP430F1611具有48KB FLASH和10KB RAM。资源消耗主要就是模型对FLASH和RAM的占用。实例2是在IAR Embedded Workbench IDE的编译环境中用C语言编写算法程序进行软件仿真。

表4给出了传统支持向量机模型与采用本发明方法得到的近似支持向量机模型对典型经济型CPU平台MSP430F1611的资源占用。选择RBF核函数,通过对breast-cancer-scale数据集训练得到表4中传统支持向量机模型。其中,在用多元多项式对传统支持向量机模型进行拟合时,多项式的次数d先后选择1、2、3、4,因此对一个传统支持向量机模型有四个近似模型。

表4中的资源占用主要指对系统的RAM和FLASH的资源占用情况,在RAM中存放程序的变量,可以对其进行快速读取和修改,体现了系统的计算速度与能力;FLASH的存储空间包括CODEmemory和CONSTmemory,CODEmemory指的是代码所占的存储空间,而CODEmemory则是代表数据占用的存储空间。 表4.本发明方法与传统支持向量机在MSP430F1611上处理样本数据时的资源占用对比

实例2仅对一个样本数据进行分类,传统的支持向量机占用大量的RAM和FLASH,本实验中选用的MSP430F1611的能够刚好满足其RAM占用,但其他典型的经济型CPU平台如MSP430F2616(4KB RAM、92KB FLASH)、MSP430F1610(5KB RAM、32KB FLASH)及MSP430F1612(5KB RAM、55KB FLASH)等就不能满足其RAM的需求,也就不能在这些硬件上使用传统的支持向量机模型。

从表4中数据可知,采用本发明方法得到的近似支持向量机模型与传统支持向量机模型进行样本分类时,对系统的RAM和FLASH占用大大降低,使得上述RAM无法满足使用传统支持向量机的MSP430F2616等典型经济型CPU平台也可以使用近似的支持向量机,增加了支持向量机的应用范围。此外,在本发明方法得到的近似支持向量机模型中,随着选择的多项式次数增加,近似模型对系统RAM和FLASH的需求也会增加,如MSP430F155(512B RAM、16KB FLASH)就无法满足实例2中多项式次数大于2的近似模型。因此,在近似支持向量机模型的次数选择时,若使得测试集分类准确率最高的近似支持向量机模型所需计算资源超过了系统所能提供的资源,则选择多项式函数的次数低一次的近似模型,直至近似模型的计算资源小于系统资源。

从上述两个实例可以看出,将本发明的近似支持向量机模型应用在穿戴式医疗监护系统等基于经济型CPU平台的系统上,扩大了传统支持向量机的应用范围,可以判别可疑患者的身体健康状况,做到早发现,早治疗。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1