支持向量机训练算法的实验比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
支持向量机训练算法的实验比较
姬水旺,姬旺田
(陕西移动通信有限责任公司,陕西西安710082)
摘 要:S VM是基于统计学习理论的结构风险最小化原则的,它将最大分界面分类器思想和基于核的方法结合在一起,表现出了很好的泛化能力。并对目前的三种主流算法S VM light,Bsvm与SvmFu在人脸检测、M NIST和USPS手写数字识别等应用中进行了系统比较。
关键词:统计学习理论;支持向量机;训练算法
中图法分类号:TP30116 文献标识码:A 文章编号:100123695(2004)1120018203 Experimental C omparison of Support Vector Machine Training Alg orithms
J I Shui2wang,J I Wang2tian
(Shanxi Mobile Communication Co.,LTD,Xi’an Shanxi710082,China)
Abstract:Support vector learning alg orithm is based on structural risk minimization principle.It combines tw o remarkable ideas:maxi2 mum margin classifiers and im plicit feature spaces defined by kernel function.Presents a com prehensive com paris on of three mainstream learning alg orithms:S VM light,Bsvm,and SvmFu using face detection,M NIST,and USPS hand2written digit recognition applications.
K ey w ords:S tatistical Learning T heory;Support Vector Machine;T raining Alg orithms
1 引言
支持向量机(Support Vector Machine)是贝尔实验室研究人员V.Vapnik等人[30]在对统计学习理论三十多年的研究基础之上发展起来的一种全新的机器学习算法,也是统计学习理论第一次对实际应用产生重大影响。S VM是基于统计学习理论的结构风险最小化原则的,它将最大分界面分类器思想和基于核的方法结合在一起,表现出了很好的泛化能力。由于S VM 方法有统计学习理论作为其坚实的数学基础,并且可以很好地克服维数灾难和过拟合等传统算法所不可规避的问题,所以受到了越来越多的研究人员的关注。近年来,关于S VM方法的研究,包括算法本身的改进和算法的实际应用,都陆续提了出来。但是,到目前为止,还没有看到有关支持向量算法总体评价和系统比较的工作,大多数研究人员只是用特定的训练和测试数据对自己的算法进行评价。由于支持向量机的参数与特定的问题以及特定的训练数据有很大的关系,要对它们进行统一的理论分析还非常困难,本文试从实验的角度对目前具有代表性的算法和训练数据进行比较,希望这些比较所得出的经验结论能对今后的研究和应用工作有指导意义。本文所用的比较算法主要有S VM light[14],Bsvm[12]和SvmFu[25],它们分别由美国C ornell University的Thorsten Joachims教授,National T aiwan U2 niversity的Chih2Jen Lin教授和美国麻省理工学院Ryan Rifkin博士编写的,在实验的过程中,笔者对算法进行了修改。由于这些算法有很大的相似之处,而且训练支持向量机是一个凸函数的优化过程,存在全局唯一的最优解,训练得到的模型不依赖于具体的算法实现,因此,本文在实验过程中不对具体的算法做不必要的区别。实验所采用的训练和测试数据也是目前非常有代表性的,它们大部分由国内外研究人员提供。
2 比较所用数据简介
本文所用的人脸检测数据是从美国麻省理工学院生物和计算学习中心[31](Center for Biological and C omputational Lear2 ning)得到的,这些数据是C
BC L研究人员在波士顿和剑桥等地收集的,每个训练样本是一个由19×19=361个像素组成的图像,我们用一个361维的向量来代表每一个图像,每一个分量代表对应的像素值。用于训练的样本共有6977个,其中有2429个是人脸,其余4548个是非人脸;在测试样本集中共有24045个样本,包含472个人脸和23573个非人脸。这是一个两类分类问题。图1是训练样本中部分人脸的图像。
图1 人脸检测数据中部分人脸的图像
M NIST手写数字识别数据是由美国AT&T的Y ann LeCun 博士收集的[32],每个样本是0~9中的一个数字,用28×28= 784维的向量表示。在训练集中有60000个样本,测试集中有10000个样本。图2是训练样本中前100个样本的图像。
USPS手写识别数据是由美国麻省理工学院和贝尔实验室的研究人员共同从U.S.P ostal Service收集的[33],每个样本是0~9中的一个数字,用16×16=256维的向量中的各个分量表示所对应像素的灰度值。训练集中共有7291个样本,测试集中有2007个样本。图3是训练集中部分样本的图像。
・
8
1
・计算机应用研究2004年
收稿日期:2003206220;修返日期:2003211212
3 人脸检测数据的分析比较
由文献[14,21]可知,S VM训练过程中的大部分时间花在了核函数的计算上,我们在实验过程中采用了缓冲核函数的方法。除特殊说明外,本文的所有仿真实验中缓冲区的大小统一取40M B。对于缓冲的替换策略,我们依照文献[14]中的做法,采用Least Recently Used的方法,将最长时间没有使用过的值替换出去,以便为最近计算出的值让出缓冲空间。由于规范化参数C对最后的分类结果有很大的影响,因此,我们在实验过程中不断调整C的值,以期达到最佳效果。表1列出了核函数为径向基函数时S VM在人脸检测中的仿真结果。表1中的T ime是训练所用的时间,Accuracy是测试精度,NumS V为支持向量的个数,Num BS V是α值为边界值C的支持向量的个数。
表1 核函数K(x,y)=exp(-0.013‖x-y‖2)时对应于
不同C值的实验结果
C T ime(s)Accuracy NumS V Num BS V
116197.81%(23518/24045)766594
1011698.29%(23633/24045)44947
5011398.31%(23638/24045)4390
10011498.31%(23638/24045)4350
200/10011398.38%(23656/24045)4350
500/10011598.31%(23638/24045)4350
50011798.27%(23638/24045)4280
100012198.23%(23638/24045)4170
在调整参数C的过程中,我们发现当C逐渐增大时,训练所需时间有增加的趋势;当C大于100时,测试精度有所下降,此结果符合文献[12]中得出的结论,即随着C的增加,测试精度首先增高,超过一定值以后,精度开始下降。同时,随着C 的增加,支持向量的个数严格减少,处于边界值的支持向量的个数迅速减少,直到为0。在训练样本中,我们注意到人脸和非人脸两类样本的数目相差近两倍(2429/4548),样本的不平衡可能使分类面偏离最佳位置,于是我们在C=100时,给人脸和非人脸两类样本赋予不同的惩罚系数,结果显示此策略可以提高预测精度。于是我们建议在各类样本数目不平衡的情况下,对于样本较少的类别施加较大的错分惩罚系数,惩罚系数的大小应该与各类样本数成反比。为了验证上述结论,我们进一步增大错分惩罚系数的比例,结果显示如果这个比例过大则会适得其反,矫枉过正,造成精度进一步下降。
为了验证缓冲部分核函数值对于训练速度的影响,我们在C=100处不断调整缓冲区的大小。表2列出了缓冲区在0M B (没有缓冲核函数)~100M B之间变化时所对应的训练时间。从表2可以看出,缓冲策略对提高训练算法的速度有非常重要的影响,当缓冲区的大小大于40M B时,训练时间下降得比较缓慢,这表明核函数的计算已经不再成为阻碍算法快速收敛的障碍,其他部分的计算时间占据了算法运行的大部分时间,此时如果继续增大缓冲区,将不会进一步加快算法的速度。
表2 缓冲区在0M B~100M B之间变化时
所对应的训练时间
Cache(M B)0151020304050100
T ime(s)34048466352190162142114107101
4 MNIST数据的分析比较
M NIST手写数字识别数据共有60000个训练样本和10000个测试样本。由于此数据数量大,维数高(784维),为了避免训练时间过长,我们将缓冲区增加到80M B。表3是在核函数为径向基函数时得到的实验结果。
表3 核函数K(x,y)=exp(-0.013‖x-y‖2)时
M NIST数据的实验结果
C T ime(m)Accuracy NumS V Error Rate(%)
105596.10%(9610/10000)12174 3.90
505897.38%(9738/10000)9917 2.62
1006197.60%(9760/10000)9517 2.40
5006497.59%(9759/10000)9415 2.41
10006797.56%(9756/10000)9399 2.44
由表3可知,当C取100时,测试精度达到最高,进一步增加参数C值,则会使错分率增大,训练时间增加。因此,如何在训练前决定C的值是一个非常重要的问题。然而,得到C 的最佳值是很困难的,C的取值和特定的问题有很大的关系,目前还没有一个一般意义下的方法指导我们去选择C的初值,一般的做法是用实验的方法试凑。由表3还可以看出,随着C的增大,支持向量的个数严格减少。
5 USPS数据的分析比较
USPS是一个十类数据分类问题,训练集中有7291个样本,测试集中有2007个样本。B.Sch¨
o lkopf等人[27]用USPS数据对基于径向基函数的S VM和R BF网络进行了比较,具体的做法是,他们在文献[27]中构造了三个分类器:①传统的R BF 网络,即用聚类的方法选中心,误差反向传播方法训练输出层的权值;②用支持向量作为R BF的中心,然后再用误差反向传播方法训练输出层的权值;③S VM分类器。实验结果显示,第三个分类器的精度最高,第二个次之,第一个最差。我们得到的结果与文献[27]得到的结果非常接近。在实验中,我们仍然取核函数为径向基函数。实验结果与我们用人脸识别和M NIST得到的结果非常相似。表4给出了这些实验结果。
表4 核函数K(x,y)=exp(-0.013‖x-y‖2)
时USPS数据的实验结果
C T ime(s)Accuracy NumS V
116595.17%(1910/2007)2077
515295.32%(1913/2007)1919
1015195.32%(1913/2007)1930
10015295.32%(1913/2007)1938
100015195.32%(1913/2007)1938
6 结论
本文对目前S VM研究和应用中有代表性的算法在不同参数和数据的情况下进行了较全面和系统的比较,其结果为:
(1)C参数的值对训练结果有很大影响,但它的最佳取值与具体问题有很大的关系,一般来说,用于训练的数据量越大,训练结果对C的变化越不敏感;如果训练数据很少,C的较大取值很容易使模型过拟合训练数据。然而,目前还没有一个统一的方法来决定C的最佳取值,一般的方法是试凑,通过不断
・
9
1
・
第11期 姬水旺等:支持向量机训练算法的实验比较