A Tutorial on Support Vector Machines for Pattern Recognition 分析

这篇文章主要介绍了SVM模型的建立过程,以及关于VC维的理论分析。对于如何求解优化方程没有过多说明。

 

假设给定A Tutorial on Support Vector Machines for Pattern Recognition 
分析个观察。每个观察由一个向量A Tutorial on Support Vector Machines for Pattern Recognition 
分析和相应的"truth" A Tutorial on Support Vector Machines for Pattern Recognition 
分析组成。例如,在"识别大树"的问题中,A Tutorial on Support Vector Machines for Pattern Recognition 
分析可能是一个用像素排列起来的向量,并且如果图像中含有一个树,那么其相应的等于1,否则等于-1 现在我们可以假设,存在某个分布A Tutorial on Support Vector Machines for Pattern Recognition 
分析,所有数据都是从这个分布中抽样得到。

 

现在假设,我们有一个机器,它的任务就是学习一个映射:A Tutorial on Support Vector Machines for Pattern Recognition 
分析。这个机器实际上用一系列可能的映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析来定义。如果,对于一个给定的输入A Tutorial on Support Vector Machines for Pattern Recognition 
分析以及一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析这个映射函数将要总是给出同样的输出,那么这个machine 被认为是deterministic 对的如何选择就产生了我们所谓的machine learning

 

对于一个trained machine 来说,test error 的期望是:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

这个A Tutorial on Support Vector Machines for Pattern Recognition 
分析量称为expected risk,在这里我们称之为actual risk

 

"empirical risk" A Tutorial on Support Vector Machines for Pattern Recognition 
分析被定义为在训练集上的平均误差:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

在这里我们应该注意到,当A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析和训练集A Tutorial on Support Vector Machines for Pattern Recognition 
分析确定后,是一个固定的值。

 

这个量A Tutorial on Support Vector Machines for Pattern Recognition 
分析,我们称之为loss 对于在这里描述的问题来说,它能取值01.现在我们选择某个值A Tutorial on Support Vector Machines for Pattern Recognition 
分析,以至于A Tutorial on Support Vector Machines for Pattern Recognition 
分析,那么当loss以概率A Tutorial on Support Vector Machines for Pattern Recognition 
分析取这些值时,下面这个不等式将会成立(Vapnik, 1995

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

其中,A Tutorial on Support Vector Machines for Pattern Recognition 
分析是一个非负整数,称为VC维, 其是一个衡量的capacity的量。对于上面式子的右侧部分,我们称之为"risk bound" 对于右侧的第二项,我们称之为 VC confidence

 

这个式子有什么用呢?

其实研究它主要是想要它从理论上帮助我们验证哪个学习算法性能更佳优越。理论上来说,上面那个不等式的右侧越小,使用这个机器学习算法就能够给出实际风险(actual risk)的越小的上界。

但在实际情况中,这种理论分析的实用价值不大。

 

VC

VC维是函数集A Tutorial on Support Vector Machines for Pattern Recognition 
分析的特性,能够为各种函数A Tutorial on Support Vector Machines for Pattern Recognition 
分析定义。在这里我们考虑二分类的例子,A Tutorial on Support Vector Machines for Pattern Recognition 
分析如果一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析的点集,其能够有A Tutorial on Support Vector Machines for Pattern Recognition 
分析种方式来分配标签,并且对于每一种分配方式在A Tutorial on Support Vector Machines for Pattern Recognition 
分析集合种都有一个成员能够被发现来正确地分配它们,那么我们就说这的集合is shattered by 函数集合。这个函数集合的VC 维能够被定义为能够这个函数集合shattered的训练点的最大数。

 

为了进一步说明VC维的含义,我们举一个简单的例子。

Shattering Points with Oriented Hyperplanes in A Tutorial on Support Vector Machines for Pattern Recognition 
分析(函数集合是在空间的超平面

假设,数据存在于A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间中,函数集合A Tutorial on Support Vector Machines for Pattern Recognition 
分析由有方向的直线组成(oriented straight lines),以至于对任意一条直线,在这条直线一侧的所有点分配1, 在另一侧的所有点分配-1(如下图)

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

从上图我们可以看到,只有三个点能够被这个函数集shattered,我们不能够找到四个。于是这个在

空间中的oriented linesVC维是3

 

下面我们在空间中进行考虑。

理论1

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

推论:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

这个推论告诉我们,在空间中的oriented hyperplanesVC维是n+1

 

接下来我们小讨论一下VC与参数数目的关系

VC维给出了一个给定函数集合的capacity的概念。从直觉上来说,拥有许多参数的机器学习算法将要拥有更高的VC维,较少参数的机器学习算法有更少的VC 维。但实际情况并不是这样的,我们以下面这个由E. Levin and J.S. Denker (Vapnik, 1995)提出的例子来说明。仅仅有一个参数的学习机但是它却有无限VC维。

 

定义step function A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析

定义一个含有一个参数的学习机(函数集)

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

我指定:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析  

 

你可以为每一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析指定任何标签:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

那么只要设定

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

那么所有点都能够被这个单参数的学习机shattered。因而这个学习机的VC维是无限的。

  

 

即使我们能够shatter一个任意大量的点集,但我们也会发现不能shattered 的四个点。这些点等距排列并且分配如下图所示的label:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

关于这一段的说明原文中描述的不是很详细,在下面的分析中我会加入适当的补充。

A Tutorial on Support Vector Machines for Pattern Recognition 
分析点,我们取其值为A Tutorial on Support Vector Machines for Pattern Recognition 
分析,由于这四个点是等间距排列,间距为A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析,A Tutorial on Support Vector Machines for Pattern Recognition 
分析,A Tutorial on Support Vector Machines for Pattern Recognition 
分析赋予的标签是+1A Tutorial on Support Vector Machines for Pattern Recognition 
分析赋予的标签是-1

 

由于我们研究的函数集合是A Tutorial on Support Vector Machines for Pattern Recognition 
分析,因而我们可以根据的,,值,以及其相应的标签来确定出A Tutorial on Support Vector Machines for Pattern Recognition 
分析的取值区间,然后我们再将这个取值区间带入到上,结果将会发现与实际赋予标签值矛盾。

 

 

是否我们仅仅看看哪个学习机器的实际风险(actual risk)的上界小,我们就认为哪个学习机器好,可以吗?

不好意思,是不可以的。

首先我们看看VC Confidence 随着h的变化关系(见下图)。

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

一般来说,当给定一些学习机,其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(如下图)。

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

对于每个subset 我们要么能够计算A Tutorial on Support Vector Machines for Pattern Recognition 
分析,要么能够得到在上的边界。然后SRM就是由找到在actual risk 上的边界最小化的functions set组成。

 

如何实际操作呢呢?直接看看原文吧!

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

机器学习的理论背景到此结束,接下来我们就要进入Support Vector Machines了。

////////////////////////////////////////////

Linear Support Vector Machines

 

The Separable Case(样本完全可分)

训练数据为A Tutorial on Support Vector Machines for Pattern Recognition 
分析。假设我们已经有了某个超平面,其可以将正样本和负样本分离。那么在这个超平面上的点将会满足A Tutorial on Support Vector Machines for Pattern Recognition 
分析,其中A Tutorial on Support Vector Machines for Pattern Recognition 
分析是这个超平面的法向方向。A Tutorial on Support Vector Machines for Pattern Recognition 
分析是这个超平面离原点的距离。A Tutorial on Support Vector Machines for Pattern Recognition 
分析表示的是这个分割超平面离最近的正样本(负样本)的距离。在这里我们将要定义一个新的概念,"margin" 一个分割超平面的marginA Tutorial on Support Vector Machines for Pattern Recognition 
分析。对于线性可分情况,这个支持向量机算法就是要寻找这个有最大margin 的分割超平面。正规描述如下:

假设所有训练数据均满足如下的限制:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

上面这两个式子可以合并成一个不等式:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

下面我们来解释一下,是否上面所给出的式子可以帮助我们找到我们梦寐以求的拥有最大margin的分割平面。

满足方程(10)等号条件的那些点将要位于超平面A Tutorial on Support Vector Machines for Pattern Recognition 
分析上,其法线为A Tutorial on Support Vector Machines for Pattern Recognition 
分析,离原点的垂直距离为A Tutorial on Support Vector Machines for Pattern Recognition 
分析。同样满足方程(11)等号条件的那些点将要位于超平面A Tutorial on Support Vector Machines for Pattern Recognition 
分析上,其法线为A Tutorial on Support Vector Machines for Pattern Recognition 
分析,离原点的垂直距离为A Tutorial on Support Vector Machines for Pattern Recognition 
分析。因此我们有A Tutorial on Support Vector Machines for Pattern Recognition 
分析,并且marginA Tutorial on Support Vector Machines for Pattern Recognition 
分析。至此,我们就知道如何计算这个分割超平面了,可以在受限于不等式(12)的条件下最小化A Tutorial on Support Vector Machines for Pattern Recognition 
分析得到。下图可以让我们直观展示这些数学概念。

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

如何求解呢?这就要求助于Lagrangian formulation 为什么要采用这种方法呢?有两个原因,(1)不等式(12)的限制将要被Lagrange multipliers所取代,这些Lagrange multipliers更容易被控制。2)在这个重新构造的问题上,训练数据仅仅以向量点积的形式出现,这将要允许我们将这一过程扩展到非线性的形式

 

接下来我们就要改造成Lagrangian formulation 了。我们引入正的Lagrange multipliers A Tutorial on Support Vector Machines for Pattern Recognition 
分析其分别对应不等式(12)的每一个。

Lagrangian formulation:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

我们现在必须对A Tutorial on Support Vector Machines for Pattern Recognition 
分析最小化A Tutorial on Support Vector Machines for Pattern Recognition 
分析,并且同时要求A Tutorial on Support Vector Machines for Pattern Recognition 
分析对所有A Tutorial on Support Vector Machines for Pattern Recognition 
分析的导数消失(vanish),并且受限于A Tutorial on Support Vector Machines for Pattern Recognition 
分析(我们称这种特定的限制集合为A Tutorial on Support Vector Machines for Pattern Recognition 
分析)。由于这是个凸二次规划问题,并且满足这些限制的点也构成了一个凸集,这就意味着我们能够求解一个等价的对偶问题: 最大化A Tutorial on Support Vector Machines for Pattern Recognition 
分析, 受到的限制为对A Tutorial on Support Vector Machines for Pattern Recognition 
分析的导数消失(vanish),并且A Tutorial on Support Vector Machines for Pattern Recognition 
分析(我们称这种限制为A Tutorial on Support Vector Machines for Pattern Recognition 
分析)。这个问题的特定对偶形式被称为A Tutorial on Support Vector Machines for Pattern Recognition 
分析

它有这种性质,受限于,的最大值产生位置(A Tutorial on Support Vector Machines for Pattern Recognition 
分析)与受限于,的最小值产生位置()是相同的。

下面给出这种对偶形式的数学描述:

由于要求A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析的导数vanish,从而给出了这两个条件:

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

将上面两个条件带入方程(13),我们得到如下的式子:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

注意到我们两种不同的符号A Tutorial on Support Vector Machines for Pattern Recognition 
分析,来强调两种形式的不同:A Tutorial on Support Vector Machines for Pattern Recognition 
分析来源于同一个目标函数,但是受到的限制是不同的。

 

注意到对于每一个训练点都有一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析。在solution中,拥有A Tutorial on Support Vector Machines for Pattern Recognition 
分析的点成为支持向量,并且位于超平面A Tutorial on Support Vector Machines for Pattern Recognition 
分析上。其实只有这些支持向量对solution有影响。也就是说,如果我们去除掉所有非支持向量,我们所得到的解是相同的。

 

接下来,我们进一步引入Karush-Kuhn-Tucker Conditions

 

KKT条件在受限优化的理论以及实践中起着重要的作用。对于上面的问题,KKT条件可以表达为:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

作者进一步指出求解SVM问题等价于找到KKT条件的一个解。为什么这么说呢?作者给出了一些较理论的描述(见文章吧)。

 

说些实际些的事情吧!我们使用对偶问题不是已经可以求解A Tutorial on Support Vector Machines for Pattern Recognition 
分析,从而得到A Tutorial on Support Vector Machines for Pattern Recognition 
分析了吗?对的。但是仅仅是而已。我们还有另外一个参数呢A Tutorial on Support Vector Machines for Pattern Recognition 
分析。这个参数不能直接由对偶问题得到解决,因为它是隐含决定的。那么这个参数如何处理呢?答案就要从KKT条件中寻找了。我们使用(21)式来计算。

 

例子说明:

 

 

The Non-Separable Case(样本不完全可分)

上面应用于完全可分的数据的算法,当用于不完全可分的情形时,将不会发现可行的解。我们需要引入positive slack variablesA Tutorial on Support Vector Machines for Pattern Recognition 
分析,从而有以下不等式:

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

于是若有错误的存在,则相应的A Tutorial on Support Vector Machines for Pattern Recognition 
分析将会超过1 因此A Tutorial on Support Vector Machines for Pattern Recognition 
分析是训练错误数的上界。因此我们就有了一个如何为误差分配一个extra cost的方式。我们的目标函数变为A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析,其中A Tutorial on Support Vector Machines for Pattern Recognition 
分析是由用户选择的参数,一个大的对应着分配一个更大的惩罚给误差。现在,对于任意的正整数k,这都是个凸优化问题。对于A Tutorial on Support Vector Machines for Pattern Recognition 
分析,这是个二次优化问题。如果选择A Tutorial on Support Vector Machines for Pattern Recognition 
分析,那么A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析 Lagrange multipliers都不会出现在A Tutorial on Support Vector Machines for Pattern Recognition 
分析中,从而我们有:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

 

其中A Tutorial on Support Vector Machines for Pattern Recognition 
分析是支持向量的个数。于是对于这个优化超平面的仅有的的不同是A Tutorial on Support Vector Machines for Pattern Recognition 
分析现在有一个上界A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

现在我们回过头来看一下这个primal problem吧!the primal Lagrangian

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

其中A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析Lagrange multipliers。那么对于这个primal problemKKT条件是:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

正如之前所说,我们可以使用式(55)和(56)来计算参数A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

下面是一些SVM的例子图:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

Nonlinear Support Vector Machines (非线性支持向量机)

 

在研究完线性的SVM之后,我们将要再往前走一步研究非线性问题了。由于我们采用的原问题的对偶问题来求解最优化问题。在对偶问题中,训练样本仅仅以点积的形式存在A Tutorial on Support Vector Machines for Pattern Recognition 
分析。现在假设我们将数据映射到某个欧式空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析当中,使用如下的映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

当然了,由于对偶问题的优良特性,在这个新的欧式空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析中,训练算法也仅仅依赖于数据的点积形式A Tutorial on Support Vector Machines for Pattern Recognition 
分析。现在如果有一个"Kernel function"A Tutorial on Support Vector Machines for Pattern Recognition 
分析,以至于A Tutorial on Support Vector Machines for Pattern Recognition 
分析 那么我们仅仅需要使用A Tutorial on Support Vector Machines for Pattern Recognition 
分析,而不需要精确地知道空间映射关系A Tutorial on Support Vector Machines for Pattern Recognition 
分析是什么。

 

有了这种Kernel的存在,我们可以完全不用改变在线性SVM中已经建立起来的学习机制,就将其引入到非线性的环境中。

 

那么现在我们如何使用这个学习机呢?毕竟我们需要知道位于空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析中的参数向量A Tutorial on Support Vector Machines for Pattern Recognition 
分析啊。我们如下处理:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

在这里我们将A Tutorial on Support Vector Machines for Pattern Recognition 
分析转换成了用支持向量表达的形式。其中A Tutorial on Support Vector Machines for Pattern Recognition 
分析是支持向量。因此为了避免计算A Tutorial on Support Vector Machines for Pattern Recognition 
分析,我们使用A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

接下来我们用一个例子来看看这种如何构建空间映射。

假设数据是在A Tutorial on Support Vector Machines for Pattern Recognition 
分析内的向量,选择A Tutorial on Support Vector Machines for Pattern Recognition 
分析。那么我们可以容易地找到一个空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析,以及一个从A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间到A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间的映射(满足A Tutorial on Support Vector Machines for Pattern Recognition 
分析):

我们选择A Tutorial on Support Vector Machines for Pattern Recognition 
分析 并且:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

The image of A Tutorial on Support Vector Machines for Pattern Recognition 
分析:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

我们还应该知道的一点是对于给定的kernel A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析都不是唯一的。

 

现在一个自然的问题要浮出水面,什么样的kernel 是合理的啊?总不能随便写个式子都可以当做kernel吧?这就引出了Mercer‘s Condition

 

仅仅当对于任意A Tutorial on Support Vector Machines for Pattern Recognition 
分析都满足:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

那么会存在一个映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析,以及一个相应的一个kernel的展开式

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

我们可以证明kernel A Tutorial on Support Vector Machines for Pattern Recognition 
分析满足Mercer‘s Condition
A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

但是我们又会问,如果一个kernel不满足Mercer‘s condition的话,会有什么影响呢?一般来说,在这种情况下Hessian indefinite,二次规划问题无解。但是有时对于不满足Mercer‘s conditionkernel 我们仍然可以找到一个给定的训练集产生一个positive semidefinte Hessian 并且训练过程将会很好的收敛。看来这个Mercer‘s Condition也没什么作用啊。

 

让我们再想想A Tutorial on Support Vector Machines for Pattern Recognition 
分析吧!

Mercer‘s condition告诉我们是否一个kernel 是一个在某个空间中的一个点积,但是它没有告诉我们怎样构建一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析或者空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析是什么。对于齐次二次多项式kernel,我们能够精确地构建其对应的映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析。我们可以知道

能够被扩展到任意的齐次多项式kernel,以及相应的空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析是一个维度A Tutorial on Support Vector Machines for Pattern Recognition 
分析的欧式空间。例如对于A Tutorial on Support Vector Machines for Pattern Recognition 
分析的多项式,对于16*16的数据,其对应的空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析的维度A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析

一般来说映射一个数据到一个高维度的特征空间"feature space"将会对学习机的泛化能够带来噩梦。在这个特征空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析中,所有的超平面A Tutorial on Support Vector Machines for Pattern Recognition 
分析将要用A Tutorial on Support Vector Machines for Pattern Recognition 
分析个参数进行参数化。大部分的拥有大量参数的模式识别系统性能都不会太好。那么为什么SVMs会有好的效果呢?有人会说,对于一个SVM解的形式,有至多A Tutorial on Support Vector Machines for Pattern Recognition 
分析可调节参数(A Tutorial on Support Vector Machines for Pattern Recognition 
分析是训练样本数),但这似乎取决于问题本身了。因而产生好的效果的原因一定与maximum margin 超平面的要求有紧密关系。是不是这样呢,我们看看下面这个例子(原文是这么说的,但是我没有看到下面的描述与SVM有好的性能有什么直接的联系)。

 

因为映射曲面(mapped surface)是一个A Tutorial on Support Vector Machines for Pattern Recognition 
分析曲面,除非A Tutorial on Support Vector Machines for Pattern Recognition 
分析 否则这种映射不可能是满射(surjective)。也不需要是一个一一映射:在(62)式中,A Tutorial on Support Vector Machines for Pattern Recognition 
分析。映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析的图,本身不需要是一个向量空间:考虑简单的二次的例子,A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

对于非齐次kernel:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

将要映射两个在原空间中线性依赖的向量到在A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间中线性独立的向量。

 

上面的分析,映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析都是隐藏设定的。接下来我们从映射开始,来进行构建kernel

如果A Tutorial on Support Vector Machines for Pattern Recognition 
分析,那么数据A Tutorial on Support Vector Machines for Pattern Recognition 
分析的傅里叶展开式有这种形式:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

这可以表示成在A Tutorial on Support Vector Machines for Pattern Recognition 
分析中的两个向量之间的点积形式A Tutorial on Support Vector Machines for Pattern Recognition 
分析A Tutorial on Support Vector Machines for Pattern Recognition 
分析。相应的kernel可以写成:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

 

 

 

下面我们举一些非线性SVM的例子

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

式(74)是阶数为p的多项式kernel。式(75)高斯径向基函数分类器。式(76)是一个两层sigmoidal neutral network的特定形式。

 

下面我们讨论一下SVM解的全局性和唯一性

什么时候SVM的解释全局的,什么时候它又是唯一的呢?

对于唯一性,作者从两个方面进行了解释:(1A Tutorial on Support Vector Machines for Pattern Recognition 
分析本身唯一,但是A Tutorial on Support Vector Machines for Pattern Recognition 
分析的展开(见式46)不唯一;(2A Tutorial on Support Vector Machines for Pattern Recognition 
分析不唯一。

 

当目标函数(式43)是严格凸的话,SVM的解可以保证是唯一的,在这种情况下,其Hessian矩阵式正定的。但是即使Hessian矩阵式半正定的,解仍然可能是唯一的:例,在一条直线上的两个点A Tutorial on Support Vector Machines for Pattern Recognition 
分析,其polarities + -。其hessian 矩阵式半正定,但是解(A Tutorial on Support Vector Machines for Pattern Recognition 
分析)是唯一的。我们也容易看到,当A Tutorial on Support Vector Machines for Pattern Recognition 
分析的展开式A Tutorial on Support Vector Machines for Pattern Recognition 
分析不是唯一的话,将会有不是唯一的解:例,在A Tutorial on Support Vector Machines for Pattern Recognition 
分析平面上的四个点A Tutorial on Support Vector Machines for Pattern Recognition 
分析,其polarities 分别为A Tutorial on Support Vector Machines for Pattern Recognition 
分析。那么一个解为A Tutorial on Support Vector Machines for Pattern Recognition 
分析,另一个解用相同的A Tutorial on Support Vector Machines for Pattern Recognition 
分析,但是A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析本身不唯一时,会有什么情况产生呢?

作者给出了一个理论

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

这个理论说明如果非唯一解产生,那么在一个optimal point上的解会连续变化到另一个optimal point上的解。所有intermediate points都是解。

 

(注:其实所有好的特性都是由于目标函数是凸的,数据是凸集所产生的。详情需要研究凸优化理论。)

 

我们利用上面的理论,可以有下面这段描述帮助我们理解:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

最后作者给出了总结:SVM 可以找到全局最优解,这也是我们最为关注的。

 

 

下面进入最优化方法的介绍(只给出描述)

我们的核心问题就是求解下面的优化问题

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

一些术语说明,"face"指的是位于可行域边界上的点,"active constraint" 是等式限制。

 

对于优化问题的基本思考方向:

1)优化问题的解必须满足KKT 条件

2)制定依靠均匀地增加受限制的对偶目标函数来实现优化的目的的策略

3)决定一个分解算法,以至于只有部分训练数据需要被处理。

 

对于当前的优化问题,我们可以将其归纳为受到若干等式约束的优化问题。这种问题的常见解法有:(1Newton method; 2Projection methods; 3interior point methods

 

捉着接着指出他们现在正在使用的优化方法: active set method combining gradient and conjugate gradient ascent

 

 

//////////////////////////////////////////////////////////////////////////////////////////////////

接下来我们介绍SVMVC

SVMVC维可能十分大,甚至是无限维。SVM为什么又会展示出很好泛化能力的。这里我们必须指出好的泛化能力只是看似正确的说法,因为现在没有相关理论指出对于给定的一个问题SVM将会给出高的精度。

我们称任何满足于Mercer‘s conditionkernel为一个positive kernel 并且相应的空间A Tutorial on Support Vector Machines for Pattern Recognition 
分析是一个embedding space 对于一个给定kernel ,我们称任何有最小维数的embedding space是一个"minimal embedding space"

 

我们有下面的结论:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

(注:为什么要强调是一个minimal embedding space???

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

接下来,我们看看两个例子:

1. 多项式KernelVC(The VC Dimension for Polynomial Kernels)

考虑在运行在A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间中的数据上的,拥有homogeneous polynomial kernel SVM

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析时,这个kernel 是二次型,我们能够构建出这个映射A Tutorial on Support Vector Machines for Pattern Recognition 
分析。让A Tutorial on Support Vector Machines for Pattern Recognition 
分析,以至于A Tutorial on Support Vector Machines for Pattern Recognition 
分析,我们可以看到在A Tutorial on Support Vector Machines for Pattern Recognition 
分析空间中的每一维都对应着A Tutorial on Support Vector Machines for Pattern Recognition 
分析的展开式中的关于A Tutorial on Support Vector Machines for Pattern Recognition 
分析的一项。事实上,如果我们用这种方式确定A Tutorial on Support Vector Machines for Pattern Recognition 
分析的每一项,那么对于任意的A Tutorial on Support Vector Machines for Pattern Recognition 
分析我们有

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

从而就产生了如下的理论4

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

 

(注:为什么说这是minimal embedding space呢?why

 

2. 径向基Kernel的VC维

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

上面理论总的假设太强。实际上,我们只需要满足这样的条件:A Tutorial on Support Vector Machines for Pattern Recognition 
分析个训练点被选择以至于矩阵K的Rank随着的增加而增加。如果矩阵是满秩的那么,说明向量独立,也就说明其VC维无限增大。

 

下面这个可以解析计算SVM的解可以给我们一个更加有说服力的证明。在这里我们使用Gaussian RBF kernelA Tutorial on Support Vector Machines for Pattern Recognition 
分析。让我们选择样本,以至于在任意对之间的最小距离均远大于宽度A Tutorial on Support Vector Machines for Pattern Recognition 
分析。考虑如下的在支持向量上的决策函数:

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

右侧的值主要由A Tutorial on Support Vector Machines for Pattern Recognition 
分析项控制,实际上由于可以随意地选择训练样本,我们可以使来自这一项的贡献于来自其他所有项的贡献的比值可以任意大。为了找到SVM的解,我们假设每一个训练点都是一个支持向量。在这里我们使用完全可分的SVM。因为所有点都是支持向量,那么

 

A Tutorial on Support Vector Machines for Pattern Recognition 
分析

上面两个式子的等式条件对所有训练样本均成立。A Tutorial on Support Vector Machines for Pattern Recognition 
分析是正(负)训练样本点。进一步假设所有的正(负)样本点均有同样的A Tutorial on Support Vector Machines for Pattern Recognition 
分析(作者指出这样的假定是合理的,因为如果我们使用一个满足于KKT条件和限制的解,那么这个假设是正确的)。在这样的假设下我们有:
A Tutorial on Support Vector Machines for Pattern Recognition 
分析

 

于是,因为A Tutorial on Support Vector Machines for Pattern Recognition 
分析是正的,所有KKT条件和限制也都满足,并且我们将要发现这个全局解。因为训练点的数目以及其赋予的标签是任意的,那么这个SVMVC维是无限的。

 

 

接下来我们将要介绍一下SVM的可扩展性(The Generalization Performance of SVMs

( 对于如何分析的不是太理解??)

 

A Tutorial on Support Vector Machines for Pattern Recognition 分析

上一篇:uva 11748(求可达矩阵)


下一篇:#pragma_pack(n)_与___attribute(aligned(n))