这篇文章主要介绍了SVM模型的建立过程,以及关于VC维的理论分析。对于如何求解优化方程没有过多说明。
假设给定个观察。每个观察由一个向量和相应的"truth" 组成。例如,在"识别大树"的问题中,可能是一个用像素排列起来的向量,并且如果图像中含有一个树,那么其相应的等于1,否则等于-1。 现在我们可以假设,存在某个分布,所有数据都是从这个分布中抽样得到。
现在假设,我们有一个机器,它的任务就是学习一个映射:。这个机器实际上用一系列可能的映射来定义。如果,对于一个给定的输入以及一个这个映射函数将要总是给出同样的输出,那么这个machine 被认为是deterministic。 对的如何选择就产生了我们所谓的machine learning。
对于一个trained machine 来说,test error 的期望是:
这个量称为expected risk,在这里我们称之为actual risk。
"empirical risk" 被定义为在训练集上的平均误差:
在这里我们应该注意到,当,和训练集确定后,是一个固定的值。
这个量,我们称之为loss。 对于在这里描述的问题来说,它能取值0或1.现在我们选择某个值,以至于,那么当loss以概率取这些值时,下面这个不等式将会成立(Vapnik, 1995)
其中,是一个非负整数,称为VC维, 其是一个衡量的capacity的量。对于上面式子的右侧部分,我们称之为"risk bound"。 对于右侧的第二项,我们称之为 VC confidence。
这个式子有什么用呢?
其实研究它主要是想要它从理论上帮助我们验证哪个学习算法性能更佳优越。理论上来说,上面那个不等式的右侧越小,使用这个机器学习算法就能够给出实际风险(actual risk)的越小的上界。
但在实际情况中,这种理论分析的实用价值不大。
VC 维
VC维是函数集的特性,能够为各种函数定义。在这里我们考虑二分类的例子,。如果一个的点集,其能够有种方式来分配标签,并且对于每一种分配方式在集合种都有一个成员能够被发现来正确地分配它们,那么我们就说这的集合is shattered by 函数集合。这个函数集合的VC 维能够被定义为能够这个函数集合shattered的训练点的最大数。
为了进一步说明VC维的含义,我们举一个简单的例子。
Shattering Points with Oriented Hyperplanes in (函数集合是在空间的超平面 )
假设,数据存在于空间中,函数集合由有方向的直线组成(oriented straight lines),以至于对任意一条直线,在这条直线一侧的所有点分配1, 在另一侧的所有点分配-1(如下图)
从上图我们可以看到,只有三个点能够被这个函数集shattered,我们不能够找到四个。于是这个在
空间中的oriented lines的VC维是3。
下面我们在空间中进行考虑。
理论1:
推论:
这个推论告诉我们,在空间中的oriented hyperplanes的VC维是n+1。
接下来我们小讨论一下VC与参数数目的关系
VC维给出了一个给定函数集合的capacity的概念。从直觉上来说,拥有许多参数的机器学习算法将要拥有更高的VC维,较少参数的机器学习算法有更少的VC 维。但实际情况并不是这样的,我们以下面这个由E. Levin and J.S. Denker (Vapnik, 1995)提出的例子来说明。仅仅有一个参数的学习机但是它却有无限VC维。
定义step function 。
定义一个含有一个参数的学习机(函数集)
我指定:
你可以为每一个指定任何标签:
那么只要设定
那么所有点都能够被这个单参数的学习机shattered。因而这个学习机的VC维是无限的。
即使我们能够shatter一个任意大量的点集,但我们也会发现不能shattered 的四个点。这些点等距排列并且分配如下图所示的label:
关于这一段的说明原文中描述的不是很详细,在下面的分析中我会加入适当的补充。
在点,我们取其值为,由于这四个点是等间距排列,间距为。,,赋予的标签是+1,赋予的标签是-1。
由于我们研究的函数集合是,因而我们可以根据的,,值,以及其相应的标签来确定出的取值区间,然后我们再将这个取值区间带入到上,结果将会发现与实际赋予标签值矛盾。
是否我们仅仅看看哪个学习机器的实际风险(actual risk)的上界小,我们就认为哪个学习机器好,可以吗?
不好意思,是不可以的。
首先我们看看VC Confidence 随着h的变化关系(见下图)。
一般来说,当给定一些学习机,其empirical risk 是0, 我们想要选择那些其对应的VC维小的那些学习机。但是那些VC维大的一定不会有好的性能吗?作者指出,这是不一定的。作者指出,随着VC维的增大,actual risk 的上界过于宽泛,已经到了无法来说明问题地步。
为了说明VC维大的学习机也会有好的性能,作者举了两个例子。
第一个例子:k‘th nearest neighbour classifier , with k=1。这个学习机有无限大的VC维并且 zero empirical risk。因而任意赋予标签的任意个数的点都将被这个学习机成功学习。因而这个bound就没有提供任何有意义的信息。作者进一步指出,对于任何有无限维的学习机,这个边界甚至不是有效的。
第二个例子暂略(没看懂)
作者接下来引入了一个新的概念--Structural Risk Minimization
VC Confidence 依赖与学习机(the chosen class of functions),但是empirical risk 和 actual risk依赖于在训练过程中选择的一个特定的函数。我们想要找到 the chosen set of functions的一个子集,以至于对这个集合上的风险边界是最小的。我们引入一个‘structural ‘的概念,将整个functions set分割成若干个nested subsets(如下图)。
对于每个subset, 我们要么能够计算,要么能够得到在上的边界。然后SRM就是由找到在actual risk 上的边界最小化的functions set组成。
如何实际操作呢呢?直接看看原文吧!
机器学习的理论背景到此结束,接下来我们就要进入Support Vector Machines了。
////////////////////////////////////////////
Linear Support Vector Machines
The Separable Case(样本完全可分)
训练数据为。假设我们已经有了某个超平面,其可以将正样本和负样本分离。那么在这个超平面上的点将会满足,其中是这个超平面的法向方向。是这个超平面离原点的距离。表示的是这个分割超平面离最近的正样本(负样本)的距离。在这里我们将要定义一个新的概念,"margin"。 一个分割超平面的margin是。对于线性可分情况,这个支持向量机算法就是要寻找这个有最大margin 的分割超平面。正规描述如下:
假设所有训练数据均满足如下的限制:
上面这两个式子可以合并成一个不等式:
下面我们来解释一下,是否上面所给出的式子可以帮助我们找到我们梦寐以求的拥有最大margin的分割平面。
满足方程(10)等号条件的那些点将要位于超平面上,其法线为,离原点的垂直距离为。同样满足方程(11)等号条件的那些点将要位于超平面上,其法线为,离原点的垂直距离为。因此我们有,并且margin是。至此,我们就知道如何计算这个分割超平面了,可以在受限于不等式(12)的条件下最小化得到。下图可以让我们直观展示这些数学概念。
如何求解呢?这就要求助于Lagrangian formulation。 为什么要采用这种方法呢?有两个原因,(1)不等式(12)的限制将要被Lagrange multipliers所取代,这些Lagrange multipliers更容易被控制。(2)在这个重新构造的问题上,训练数据仅仅以向量点积的形式出现,这将要允许我们将这一过程扩展到非线性的形式。
接下来我们就要改造成Lagrangian formulation 了。我们引入正的Lagrange multipliers 其分别对应不等式(12)的每一个。
Lagrangian formulation:
我们现在必须对最小化,并且同时要求对所有的导数消失(vanish),并且受限于(我们称这种特定的限制集合为)。由于这是个凸二次规划问题,并且满足这些限制的点也构成了一个凸集,这就意味着我们能够求解一个等价的对偶问题: 最大化, 受到的限制为对的导数消失(vanish),并且(我们称这种限制为)。这个问题的特定对偶形式被称为。
它有这种性质,受限于,的最大值产生位置()与受限于,的最小值产生位置()是相同的。
下面给出这种对偶形式的数学描述:
由于要求对的导数vanish,从而给出了这两个条件:
将上面两个条件带入方程(13),我们得到如下的式子:
注意到我们两种不同的符号,来强调两种形式的不同:来源于同一个目标函数,但是受到的限制是不同的。
注意到对于每一个训练点都有一个。在solution中,拥有的点成为支持向量,并且位于超平面上。其实只有这些支持向量对solution有影响。也就是说,如果我们去除掉所有非支持向量,我们所得到的解是相同的。
接下来,我们进一步引入Karush-Kuhn-Tucker Conditions。
KKT条件在受限优化的理论以及实践中起着重要的作用。对于上面的问题,KKT条件可以表达为:
作者进一步指出求解SVM问题等价于找到KKT条件的一个解。为什么这么说呢?作者给出了一些较理论的描述(见文章吧)。
说些实际些的事情吧!我们使用对偶问题不是已经可以求解,从而得到了吗?对的。但是仅仅是而已。我们还有另外一个参数呢。这个参数不能直接由对偶问题得到解决,因为它是隐含决定的。那么这个参数如何处理呢?答案就要从KKT条件中寻找了。我们使用(21)式来计算。
例子说明:
The Non-Separable Case(样本不完全可分)
上面应用于完全可分的数据的算法,当用于不完全可分的情形时,将不会发现可行的解。我们需要引入positive slack variables,从而有以下不等式:
于是若有错误的存在,则相应的将会超过1, 因此是训练错误数的上界。因此我们就有了一个如何为误差分配一个extra cost的方式。我们的目标函数变为,其中是由用户选择的参数,一个大的对应着分配一个更大的惩罚给误差。现在,对于任意的正整数k,这都是个凸优化问题。对于,这是个二次优化问题。如果选择,那么和的 Lagrange multipliers都不会出现在中,从而我们有:
其中是支持向量的个数。于是对于这个优化超平面的仅有的的不同是现在有一个上界。
现在我们回过头来看一下这个primal problem吧!the primal Lagrangian 是
其中是的Lagrange multipliers。那么对于这个primal problem的KKT条件是:
正如之前所说,我们可以使用式(55)和(56)来计算参数。
下面是一些SVM的例子图:
Nonlinear Support Vector Machines (非线性支持向量机)
在研究完线性的SVM之后,我们将要再往前走一步研究非线性问题了。由于我们采用的原问题的对偶问题来求解最优化问题。在对偶问题中,训练样本仅仅以点积的形式存在。现在假设我们将数据映射到某个欧式空间当中,使用如下的映射:
当然了,由于对偶问题的优良特性,在这个新的欧式空间中,训练算法也仅仅依赖于数据的点积形式。现在如果有一个"Kernel function",以至于, 那么我们仅仅需要使用,而不需要精确地知道空间映射关系是什么。
有了这种Kernel的存在,我们可以完全不用改变在线性SVM中已经建立起来的学习机制,就将其引入到非线性的环境中。
那么现在我们如何使用这个学习机呢?毕竟我们需要知道位于空间中的参数向量啊。我们如下处理:
在这里我们将转换成了用支持向量表达的形式。其中是支持向量。因此为了避免计算,我们使用。
接下来我们用一个例子来看看这种如何构建空间映射。
假设数据是在内的向量,选择。那么我们可以容易地找到一个空间,以及一个从空间到空间的映射(满足):
我们选择 并且:
The image of :
我们还应该知道的一点是对于给定的kernel, 和都不是唯一的。
现在一个自然的问题要浮出水面,什么样的kernel 是合理的啊?总不能随便写个式子都可以当做kernel吧?这就引出了Mercer‘s Condition。
仅仅当对于任意都满足:
那么会存在一个映射,以及一个相应的一个kernel的展开式
我们可以证明kernel 满足Mercer‘s
Condition:
但是我们又会问,如果一个kernel不满足Mercer‘s condition的话,会有什么影响呢?一般来说,在这种情况下Hessian 是indefinite,二次规划问题无解。但是有时对于不满足Mercer‘s condition的kernel, 我们仍然可以找到一个给定的训练集产生一个positive semidefinte Hessian, 并且训练过程将会很好的收敛。看来这个Mercer‘s Condition也没什么作用啊。
让我们再想想吧!
Mercer‘s condition告诉我们是否一个kernel 是一个在某个空间中的一个点积,但是它没有告诉我们怎样构建一个或者空间是什么。对于齐次二次多项式kernel,我们能够精确地构建其对应的映射。我们可以知道
能够被扩展到任意的齐次多项式kernel,以及相应的空间是一个维度的欧式空间。例如对于的多项式,对于16*16的数据,其对应的空间的维度是。
一般来说映射一个数据到一个高维度的特征空间"feature space"将会对学习机的泛化能够带来噩梦。在这个特征空间中,所有的超平面将要用个参数进行参数化。大部分的拥有大量参数的模式识别系统性能都不会太好。那么为什么SVMs会有好的效果呢?有人会说,对于一个SVM解的形式,有至多可调节参数(是训练样本数),但这似乎取决于问题本身了。因而产生好的效果的原因一定与maximum margin 超平面的要求有紧密关系。是不是这样呢,我们看看下面这个例子(原文是这么说的,但是我没有看到下面的描述与SVM有好的性能有什么直接的联系)。
因为映射曲面(mapped surface)是一个曲面,除非, 否则这种映射不可能是满射(surjective)。也不需要是一个一一映射:在(62)式中,。映射的图,本身不需要是一个向量空间:考虑简单的二次的例子,
对于非齐次kernel:
将要映射两个在原空间中线性依赖的向量到在空间中线性独立的向量。
上面的分析,映射都是隐藏设定的。接下来我们从映射开始,来进行构建kernel。
如果,那么数据的傅里叶展开式有这种形式:
这可以表示成在中的两个向量之间的点积形式和。相应的kernel可以写成:
下面我们举一些非线性SVM的例子
式(74)是阶数为p的多项式kernel。式(75)高斯径向基函数分类器。式(76)是一个两层sigmoidal neutral network的特定形式。
下面我们讨论一下SVM解的全局性和唯一性
什么时候SVM的解释全局的,什么时候它又是唯一的呢?
对于唯一性,作者从两个方面进行了解释:(1)本身唯一,但是的展开(见式46)不唯一;(2)不唯一。
当目标函数(式43)是严格凸的话,SVM的解可以保证是唯一的,在这种情况下,其Hessian矩阵式正定的。但是即使Hessian矩阵式半正定的,解仍然可能是唯一的:例,在一条直线上的两个点,其polarities + 和 -。其hessian 矩阵式半正定,但是解()是唯一的。我们也容易看到,当的展开式不是唯一的话,将会有不是唯一的解:例,在平面上的四个点,其polarities 分别为。那么一个解为,另一个解用相同的,但是。
当本身不唯一时,会有什么情况产生呢?
作者给出了一个理论
这个理论说明如果非唯一解产生,那么在一个optimal point上的解会连续变化到另一个optimal point上的解。所有intermediate points都是解。
(注:其实所有好的特性都是由于目标函数是凸的,数据是凸集所产生的。详情需要研究凸优化理论。)
我们利用上面的理论,可以有下面这段描述帮助我们理解:
最后作者给出了总结:SVM 可以找到全局最优解,这也是我们最为关注的。
下面进入最优化方法的介绍(只给出描述)
我们的核心问题就是求解下面的优化问题
一些术语说明,"face"指的是位于可行域边界上的点,"active constraint" 是等式限制。
对于优化问题的基本思考方向:
(1)优化问题的解必须满足KKT 条件
(2)制定依靠均匀地增加受限制的对偶目标函数来实现优化的目的的策略
(3)决定一个分解算法,以至于只有部分训练数据需要被处理。
对于当前的优化问题,我们可以将其归纳为受到若干等式约束的优化问题。这种问题的常见解法有:(1)Newton method; (2)Projection methods; (3)interior point methods
捉着接着指出他们现在正在使用的优化方法: active set method combining gradient and conjugate gradient ascent。
//////////////////////////////////////////////////////////////////////////////////////////////////
接下来我们介绍SVM的VC维
SVM的VC维可能十分大,甚至是无限维。SVM为什么又会展示出很好泛化能力的。这里我们必须指出好的泛化能力只是看似正确的说法,因为现在没有相关理论指出对于给定的一个问题SVM将会给出高的精度。
我们称任何满足于Mercer‘s condition的kernel为一个positive kernel, 并且相应的空间是一个embedding space。 对于一个给定kernel ,我们称任何有最小维数的embedding space是一个"minimal embedding space"。
我们有下面的结论:
(注:为什么要强调是一个minimal embedding space???)
接下来,我们看看两个例子:
1. 多项式Kernel的VC维(The VC Dimension for Polynomial Kernels)
考虑在运行在空间中的数据上的,拥有homogeneous polynomial kernel 的SVM,
当时,这个kernel 是二次型,我们能够构建出这个映射。让,以至于,我们可以看到在空间中的每一维都对应着的展开式中的关于的一项。事实上,如果我们用这种方式确定的每一项,那么对于任意的我们有
从而就产生了如下的理论4:
(注:为什么说这是minimal embedding space呢?why)
2. 径向基Kernel的VC维
上面理论总的假设太强。实际上,我们只需要满足这样的条件:个训练点被选择以至于矩阵K的Rank随着的增加而增加。如果矩阵是满秩的那么,说明向量独立,也就说明其VC维无限增大。
下面这个可以解析计算SVM的解可以给我们一个更加有说服力的证明。在这里我们使用Gaussian RBF kernel:。让我们选择样本,以至于在任意对之间的最小距离均远大于宽度。考虑如下的在支持向量上的决策函数:
右侧的值主要由项控制,实际上由于可以随意地选择训练样本,我们可以使来自这一项的贡献于来自其他所有项的贡献的比值可以任意大。为了找到SVM的解,我们假设每一个训练点都是一个支持向量。在这里我们使用完全可分的SVM。因为所有点都是支持向量,那么
上面两个式子的等式条件对所有训练样本均成立。是正(负)训练样本点。进一步假设所有的正(负)样本点均有同样的(作者指出这样的假定是合理的,因为如果我们使用一个满足于KKT条件和限制的解,那么这个假设是正确的)。在这样的假设下我们有:
于是,因为是正的,所有KKT条件和限制也都满足,并且我们将要发现这个全局解。因为训练点的数目以及其赋予的标签是任意的,那么这个SVM的VC维是无限的。
接下来我们将要介绍一下SVM的可扩展性(The Generalization Performance of SVMs)
( 对于如何分析的不是太理解??)
A Tutorial on Support Vector Machines for Pattern Recognition 分析