您的位置:首页 > 其它

基于支持向量机的结构风险最小化

2015-10-14 18:45 246 查看
基于统计学习理论的支持向量机算法研究

1 理论背景

基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。迄今为止,关于机器学习还没有一种被共同接受的理论框架,关于其实现方法大致可以分为三种[3]:

第一种是经典的(参数)统计估计方法。包括模式识别、神经网络等在内,现有机器学习方法共同的重要理论基础之一是统计学。参数方法正是基于传统统计学的,在这种方法中,参数的相关形式是已知的,训练样本用来估计参数的值。这种方法有很大的局限性,首先,它需要已知样本分布形式,这需要花费很大代价,还有,传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设。但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。

第二种方法是经验非线性方法,如人工神经网络(ANN)。这种方法利用已知样本建立非线性模型,克服了传统参数估计方法的困难。但是,这种方法缺乏一种统一的数学理论。

与传统统计学相比,统计学习理论(Statistical Learning Theory或SLT)是一种专门研究小样本情况下机器学习规律的理论。该理论针对小样本统计问题建立了一套新的理论体系,在这种体系下的统计推理规则不仅考虑了对渐近性能的要求,而且追求在现有有限信息的条件下得到最优结果。V. Vapnik等人从六、七十年代开始致力于此方面研究[1],到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。

统计学习理论的一个核心概念就是VC维(VC Dimension)概念,它是描述函数集或学习机器的复杂性或者说是学习能力(Capacity of the machine)的一个重要指标,在此概念基础上发展出了一系列关于统计学习的一致性(Consistency)、收敛速度、推广性能(Generalization Performance)等的重要结论。

统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等);同时,这一理论基础上发展了一种新的通用学习方法──支持向量机(Support Vector Machine或SVM),已初步表现出很多优于已有方法的性能。一些学者认为,SLT和SVM正在成为继神经网络研究之后新的研究热点,并将推动机器学习理论和技术有重大的发展。

支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(Generalizatin Ability)。支持向量机方法的几个主要优点有:

1. 它是专门针对有限样本情况的,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;

2. 算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题;

3. 算法将实际问题通过非线性变换转换到高维的特征空间(Feature Space),在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无关;

在SVM方法中,只要定义不同的内积函数,就可以实现多项式逼近、贝叶斯分类器、径向基函数(Radial Basic Function或RBF)方法、多层感知器网络等许多现有学习算法。

统计学习理论从七十年代末诞生,到九十年代之前都处在初级研究和理论准备阶段,近几年才逐渐得到重视,其本身也趋向完善,并产生了支持向量机这一将这种理论付诸实现的有效的机器学习方法。目前,SVM算法在模式识别、回归估计、概率密度函数估计等方面都有应用。例如,在模式识别方面,对于手写数字识别、语音识别、人脸图像识别、文章分类等问题,SVM算法在精度上已经超过传统的学习算法或与之不相上下。

VC 维在有限的训练样本情况下,当样本数 n 固定时,此时学习机器的 VC 维越高学习机器的复杂性越高。VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大)。

所谓的结构风险最小化就是在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制。

推广的界(经验风险和实际风险之间的关系,注意引入这个原因是什么?因为训练误差再小也就是在这个训练集合上,实际的推广能力不行就会引起过拟合问题还。所以说要引入置信范围也就是经验误差和实际期望误差之间的关系):

期望误差R(ω) ≤ Remp (ω)+ Φ(h/n)注意Remp (ω)是经验误差也就是训练误差(线性中使得所有的都训练正确),Φ(h/n)是置信范围,它是和样本数和VC维有关的。上式中置信范围Φ 随n/h增加,单调下降。即当n/h较小时,置信范围Φ 较大,用经验风险近似实际风险就存在较大的误差,因此,用采用经验风险最小化准则,取得的最优解可能具有较差的推广性;如果样本数较多,n/h较大,则置信范围就会很小,采用经验风险最小化准则,求得的最优解就接近实际的最优解。可知:影响期望风险上界的因子有两个方面:首先是训练集的规模
n,其次是 VC 维 h。可见,在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这就是结构风险最小化(Structure Risk Minimization,简称 SRM)的由来。

在有限的训练样本情况下,当样本数 n 固定时,此时学习机器的 VC 维越高(学习机器的复杂性越高),则置信范围就越大,此时,真实风险与经验风险之间的差别就越大,这就是为什么会出现过学习现象的原因。机器学习过程不但要使经验风险最小,还要使其 VC 维尽量小,以缩小置信范围,才能取得较小的实际风险,即对未来样本有较好的推广性,它与学习机器的 VC 维及训练样本数有关。

线性可分的问题就是满足最优分类面的面要求分类面不但能将两类样本正确分开(训练错误率为 0),而且要使两类的分类间隔最大。

VC维在有限的训练样本情况下,当样本数 n 固定时,此时学习机器的 VC 维越高学习机器的复杂性越高。VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大)。

所谓的结构风险最小化就是在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制。

推广的界(经验风险和实际风险之间的关系,注意引入这个原因是什么?因为训练误差再小也就是在这个训练集合上,实际的推广能力不行就会引起过拟合问题还。所以说要引入置信范围也就是经验误差和实际期望误差之间的关系):期望误差R(ω)
≤ Remp (ω)+ Φ(n/h)注意Remp (ω)是经验误差也就是训练误差(线性中使得所有的都训练正确),Φ(n/h)是置信范围,它是和样本数和VC维有关的。上式中置信范围Φ 随n/h增加,单调下降。即当n/h较小时,置信范围Φ 较大,用经验风险近似实际风险就存在较大的误差,因此,用采用经验风险最小化准则,取得的最优解可能具有较差的推广性;如果样本数较多,n/h较大,则置信范围就会很小,采用经验风险最小化准则,求得的最优解就接近实际的最优解。可知:影响期望风险上界的因子有两个方面:首先是训练集的规模
n,其次是 VC 维 h。可见,在保证分类精度(经验风险)的同时,降低学习机器的 VC 维,可以使学习机器在整个样本集上的期望风险得到控制,这就是结构风险最小化(Structure Risk Minimization,简称 SRM)的由来。在有限的训练样本情况下,当样本数 n 固定时,此时学习机器的 VC 维越高(学习机器的复杂性越高),则置信范围就越大,此时,真实风险与经验风险之间的差别就越大,这就是为什么会出现过学习现象的原因。机器学习过程不但要使经验风险最小,还要使其 VC 维尽量小,以缩小置信范围,才能取得较小的实际风险,即对未来样本有较好的推广性,它与学习机器的
VC 维及训练样本数有关。

线性可分的问题就是满足最优分类面的面要求分类面不但能将两类样本正确分开(训练错误率为 0),而且要使两类的分类间隔最大(这个是怎么回事呢?原来是有根据的,这个让俺郁闷了好久呢。在 @ 间隔下,超平面集合的
VC 维 h 满足下面关系:

h = f (1/@*@)

其中, f().是单调增函数,即 h 与@的平方成反比关系。因此,当训练样本给定时,分类间隔越大,则对应的分类超平面集合的 VC 维就越小。)。根据结构风险最小化原则,前者是保证经验风险(经验风险和期望风险依赖于学习机器函数族的选择)最小,而后者使分类间隔最大,导致
VC 维最小,实际上就是使推广性的界中的置信范围最小,从而达到使真实风险最小。注意:置信范围大说明真实风险和经验风险的差别较大。

解释到这里了,终于有点眉目了,哦原来就是这么回事啊,真是的。总结一下就是训练样本在线性可分的情况下,全部样本能被正确地分类(咦这个不就是传说中的yi*(w*xi+b))>=1的条件吗),即经验风险Remp
为 0 的前提下,通过对分类间隔最大化(咦,这个就是Φ(w)=(1/2)*w*w嘛),使分类器获得最好的推广性能。

那么解释完线性可分了,我们知道其实很多时候是线性不可分的啊,那么有什么区别没有啊?废话区别当然会有啦,嘿嘿那么什么是本质的区别啊?本质的区别就是不知道是否线性可分但是允许有错分的样本存在(这个咋回事还是没明白hoho)但是正是由于允许存在错分样本,此时的软间隔分类超平面表示在剔除那些错分样本后最大分类间隔的超平面。这里就出现了新词松驰因子,干吗用滴?就是用来控制错分样本的啊。这样的话经验风险就要跟松驰因子联系在一起了。而C就是松驰因子前面的系数,C>0
是一个自定义的惩罚因子,它控制对错分样本惩罚的程度,用来控制样本偏差与机器推广能力之间的折衷。c越小,惩罚越小,那么训练误差就越大,使得结构风险也变大,而C 越大呢,惩罚就越大,对错分样本的约束程度就越大,但是这样会使得第二项置信范围的权重变大那么分类间隔的权重就相对变小了,系统的泛化能力就变差了。所以选择合适的C还是很有必要的。

选择核函数。

核函数有很多种,如线性核、多项式核、Sigmoid 核和 RBF(Radial Basis function)核。本文选定 RBF 核为 SVM 的核函数(RBF 核K(x, y) = exp(-γ || x -y ||的平方),γ
> 0)。因为RBF 核可以将样本映射到一个更高维的空间,可以处理当类标签(Class Labels)和特征之间的关系是非线性时的样例。Keerthi 等[25]证明了一个有惩罚参数C 的线性核同有参数(C,γ )(其中C 为惩罚因子,γ 为核参数)的 RBF 核具有相同的性能。对某些参数,Sigmoid核同 RBF 核具有相似的性能[26]。另外,RBF 核与多项式核相比具有参数少的优点。因为参数的个数直接影响到模型选择的复杂性。非常重要的一点是0< Kij ≤1与多项式核相反,核值可能趋向无限(γxi
xj + r >1)或者0 < γxi xj + r <1,跨度非常大。而且,必须注意的是Sigmoid 核在某些参数下是不正确的(例如,没有两个向量的内积)。

(4)用交叉验证找到最好的参数 C 和γ 。使用 RBF 核时,要考虑两个参数 C 和γ 。因为参数的选择并没有一定的先验知识,必须做某种类型的模型选择(参数搜索)。目的是确定好的(C,γ)使得分类器能正确的预测未知数据(即测试集数据),有较高的分类精确率。值得注意的是得到高的训练正确率即是分类器预测类标签已知的训练数据的正确率)不能保证在测试集上具有高的预测精度。因此,通常采用交叉验证方法提高预测精度。k
折交叉验证(k-fold cross validation)

是将训练集合分成 k 个大小相同的子集。其中一个子集用于测试,其它 k-1 个子集用于对分类器进行训练。这样,整个训练集中的每一个子集被预测一次,交叉验证的正确率是 k次正确分类数据百分比的平均值。它可以防止过拟合的问题。

什么是统计学习?看起来高深莫测,其实就是在这干这么一件事情:就是给你看一堆东西,你想办法给一个解释,然后拿着这个解释去判断其它的东西。不过,和物理学不一样,在那里,解释是人想出来的,在统计学习里,解释是机器构造出来的。

在许多问题里面,对象是非常复杂的,要用成百上千,甚至更多的数字去表示一个东西。当统计学家们遇到了这些问题,他们终于从对在一维和二维空间建立起来的基于概率密度的完美的数学体系的沉迷中惊醒了——经典的统计体系在“维数灾难”的洪水猛兽面前竟然不堪一击。统计学的定理告诉我们,当样本足够多的时候,估计可以足够准确,可是对于高维空间,无情的现实用两个理由断然拒绝了统计学家们的渴求——不可能有那么多的样本,也不可能在这么多的样本上面进行计算。

有限的样本意味着什么呢?很多本来能很好地建模的问题变成不适定的了(ill-posed)。通俗地说,就是给你的这么些样本,你可以用这个模型解释,也可以用那个模型解释,大家都解释得非常完美。那么究竟哪个是真的解释呢?令人沮丧的是,无论是这些样本还是那些美妙的统计学理论都无法给出答案——我们只能被告知,这些模型是不可被识别出谁对谁错的(unidentifiable)——在哲学上,有个深奥的名词,叫做不可证伪性。

噢,既然都很完美,那么我们都接受好了。可是,别忘了,我们的目标不是守着这些解释度过余生,而是用它们帮我们干后面的事情——要是一个东西干不好事情的,就算再完美,还是呆在一边凉快去吧。想象一个也许很多大学生,乃至中学生都会的例子——曲线拟合。我们看到100个点,在一个抛物线附近震荡。我们首先拿一根直线去拟,怎么都不好;于是我们用二次曲线,嗯,看起来不错,好多了。于是我们开始兴奋起来——看起来,增加曲线的次数是个好主意。次数在一点点的加,到了100的时候,大家欢呼起来——太完美了,没有一点误差!于是大家拿着这个100次曲线模型信心十足地去套别的点,傻眼了,错的一塌糊涂!那个差强人意的二次曲线反而在这里工作的不错。

这个深刻的教训告诉我们:一个在已有数据中很完美的模型,在新的数据面前不一定最好的。Perfect很可能只是由于over-fitting产生的illusion。后来统计学家研究了这个问题,告诫我们除了有追求perfect的热情,还要锻造一把Occam的剃刀:除了让模型在已知的例子中很好的工作,还要把模型“剃”得简单一点——简单的美才是真的美。

在这个原理的基础上,统计数学家Vapnik通过严密的数学推理建立了结构风险最小化(Structure Risk Minimization)的理论,把模型复杂性融入到优化目标当中,以取代单纯追求在已知数据上的令人陶醉的完美的经验风险最小化(Empirical
Risk Minimization),并且提出了现在风靡全球的支持向量机 (Support Vector Machines)。

其实,统计学家在这个事情上是落后了,从古希腊的哲学家和数学家,到近代的物理学家,所孜孜以求的不就是对这个世界的一个简单而完美的解释吗?对于许多伟大的科学家来说,支持其科学探索的并不是建立一套复杂得令人望而生畏的体系来描述我们的世界,相反,他们穷毕生精力所探索的正是存在于宇宙中的简单和和谐。回到刚才那个两个模型的抉择问题,简单性的信念支持着我们做这样的决定:选简单的那个。

反思我们过去的处事方式,确实感到惭愧:在干很多事情的时候,总是试图通过建立复杂的东西来获得成就感,并且向别人炫耀自己的多才多艺的实力——文章越长越好,程序越复杂越好,公式越深奥越好。可是,回想起来,这些当时在班级和同伴里轰动一时的东西——上百页的实验报告,上万行的程序,以及长篇小说一样的文章,最后给自己留下了什么。很多时候我们在创造复杂的东西,往往代表着我们还缺乏足够的能力去找出深藏于complexity和diversity背后的core
simplicity——这才是在历史长河中亘古不衰的。

现代的社会是复杂的和多姿多彩的,但这是“简单”在变化中孕育的,在这个复杂的世界中游刃有余的最好方法就是把握根本的简单性。这就是简单和复杂的矛盾。

模型的社会(model society)

在机器学习的世界里,主体就是被人赋予了某种智慧形式的“模型”,既然人们能够让模型具有智慧进行自主的学习,那么人们同样能够让这些模型结成某种群体结构——乃至更高级的社会结构,让模型群在一定的交互环境中成长。这里对模型群体的演变和社会发展的关系进行一些肤浅的探讨。

(一)共同决策(decision together)

在人类的社会活动中,最简单的莫过于基于“少数服从多数”原则的“投票决策”了:当一群人为干什么事情争论不休的时候,一种简单又最能被大家所接受的形式就是大家进行投票,然后选择干最多人支持的事情。在统计学习中,Multi-model
voting就是这种简单原则的体现。可是,最多人支持的东西就是最好的吗?不要忘了一句很著名的谚语“真理往往掌握在少数人手中”。基于这个原理,又出现了另外一种决策方式“精英决策”——通过一定的评比,选出最好的人,让他代表大家做出决策,对于统计学习,相应的典型的策略就是Cross Validation。这两种极端的方式,都有着很明显的优缺点:投票机制,要广泛发动群众投票,费时费力,效率不高,而且往往多方掣肘,导致决策有明显惰性,裹足不前,但是投票的决策稳定,能反映大多数需求,不容易出轨;精英决策,高效果断,进取性强,但是完全依赖一个人,导致决策随心所欲,欠缺稳定,风险很大。为了克服这两种决策方式的弊端,有两种折中的方式:第一种,就是给不同的人不相等的投票权,一方面多倾听专家见解,又照顾群众的需要,这就是现在统计学习里面用的很多的weighted
voting。第二种,就是不同需要的群体分别选出自己的精英,由一群精英共同决策,以达到平等和效率的平衡。在政治学术语中,叫做“代议民主”,统计学习里面叫做hierarchical decision。

决策是推动社会发展的重要活动,但是,我们想过没有?每个人在投票时的决策是怎么形成的,是受什么影响的呢?这些每个参与投票的人是怎么培养出来的呢?每个社会成员的平时的观察和实践,以及社会成员之间的关系和互动,对于每个成员的成长有什么影响呢?因此,要真正研究一个社会,我们不能只把眼睛盯着决策时刻,更重要的是关心决策背后的社会构成,社会关系以及社会运动形式。在人类社会如此,在模型的社会,对于模型之间的联系,模型的相互作用,和模型群的联合演变等等论题的关怀,同样对于我们营造一个和谐而强大的模型集体有着重要的意义。后面会逐步探讨这些问题。

(二) 模型社会如何运动 (the activity)

在讨论之前,先提出一个几个大前提。嗯,听起来有点像著名的科幻小说中的“机器人三定律”:

第一前提,模型的社会“绝对听命”于控制他的人。他们依据人的指令去执行各自的学习和工作计划,并且是尽自己最大的能力去执行。绝对不会因为报酬不足而怠工,或者耍小性子不听话。而且在它们身处的机器的寿命以内,能够连续不断不知疲倦地工作。由于人和模型之间的这种“单向支配”关系,因此模型和人之间不存在nontrivial的互动,所以模型和人的关系在下面的讨论中就忽略了。

第二前提,模型的社会是一个“守法”的社会。在一个系统中,所有的模型都是为了一个共同的目标运行的,虽然它们的知识背景,对世界的观察方式,以及身处的样本环境各不一样,但是他们不会做出诸如“故意攻击其它模型”或者“故意破坏社会秩序”之类的罪行。人可以给他们设置一些规范来约束和指导他们的行为,但是不必担心他们去“违反法律”。不过,这里只是假定他们不会有“主观恶意”,但是由于能力和知识局限,他们可能犯错误,并且他们的错误认识可能沿着他们直接的交流渠道扩散,因此对于错误的辨别和抑止将是一个重要的问题。关于这个问题,我们的改革开放的总设计师给我们指出了一个重要的法宝“实践是检验真理的唯一标准”,因此我们虽然允许模型之间把各自学到的知识通过“非实践性”的途径传播(比如我们在书本上学知识),但是这些知识必须最终通过“实践”的方法进行检验。这一点需要通过一定的“法律制度”加以实现。

第三前提,模型的社会是一个“积极而善良”的社会。模型社会的运动有一个终极目标,整个体系的发展将朝向它发展。但是,对于一个困难的目标,是需要分阶段实现,每个局部都有一个“局部目标”,这个前提指出,在给定目标的指引下,模型群体的运动将朝着接近目标的方向发展,而不是背道而驰,开历史的倒车。

需要说明的是,每个局部的目标往往需要两部分共同组成——“功利目标”和“道德目标”。功利目标引导“模型”们去为实现最大利益而学习和工作,道德目标则是着力维护模型之间的良性关系以及使得模型的走向不至于因为过分最求眼前利益而偏离主方向。这就是媒体中常常宣传的“物质文明和精神文明两手抓”的问题。由于精神建设不足导致社会问题丛生,对于这点,其实我们在现实生活中是有着很深刻的教训,因此当我们营造模型社会的时候对此要非常注意。

回到数学上来,这就是一个optimization问题的formulation和implementation,事实上任何一个恰当的优化算法都能保证第三前提的满足,对于模型社会的设计者来说,关键是formulation的问题。许多研究中,人们已经发现在formulation中加入regularization是一项保证不致过早陷入local
optima的重要手段,这个regularization term从社会运动的角度说就是一种软性的道德约束,因此某些literature中对加入regularization的做法叫做"learning with conscience"(有良心的学习)。

这三个前提总体上说并不矛盾,但是在某些地方有可能出现矛盾的情况,这个时候,第三前提服从第二前提,第二和第三前提服从第一前提。

模型毕竟不是真正有生命的东西,模型社会要运动起来,需要人的“第一推动力”:人通过设置一些规则和发展目标,然后在某个初始状态下让模型社会系统开始运作。在不破坏前面说的大前提的条件下,模型的运动其实是“高度自治”的。至于模型社会最后是成功到达“世界大同”还是遭遇“万世之劫”,就和人设置的规则和目标是否合理有很大关系了。对于允许随机性存在的体系,偶然因素也可能扮演重要角色。

早期的时候,人们希望模型按照确定性的道路向前走,但是,在统计学习的最近发展中,人们开始认识到随机性的重要意义。因为人类事实上是在一个未知的世界探索,固定的走向未必是最好的,通过对模型的随机构造,和对前进路线的随机化干扰,模型将能在运动过程中接触到并且积累丰富的知识。并且在一个多样化的探索氛围中,更有可能发现更优异的状态。对于一个模型社会来说,随机构造更是产生多个不同个性的模型的重要源泉,也是社会多样化的根基所系。在数值优化领域,stochastic
annealing和genetic algorithm已经显示出对比于传统非随机方法在搜寻全局最优上的优势,而在统计学习来说,随机化的方法还在非常初级的萌芽状态,而且备受争议。但是我相信,通过随机化构造一个具有多样性的模型群体,并且通过合理的引导,共同努力去探索目标是一个非常有promising的approach,而这种信念根植于这样的观察:在多样化的社会中创造的巨大的社会进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: