机器学习笔记6——支持向量机

来源:互联网 发布:树莓派 php无法安装 编辑:程序博客网 时间:2024/06/07 05:17

对间隔分类器的优化

给定一组训练集,通过找到一个决策边界并且将间隔最大化,对训练数据的预测得到的结果就是足够正确的。因而,在分类器中会有一个“缝隙”(几何间隔)将正负向的训练样本分割开来。

现在,我们假设给定的数据集是线性可分的,即可以通过超平面将正负向的训练样本分开。我们如何找到使几何间隔达到最大值的分类器呢?我们可以引出如下优化问题:


我们打算将参数γ最大化,使每个训练样本的函数间隔有最小值γ||w||=1使得几何间隔与函数间隔相等,所以我们也可以确保几何间隔的最小值为γ。因此,将参数γ最大化使得训练集将会有最大的几何间隔。

但最大化参数γ有些问题,因为||w||=1是一个非凸性条件,在优化软件中任何格式的变换都无法解决。所以,不如将问题以另一种形式展现出来:


问题变成了最大化γ^/||w||,对应的,所有训练样本的函数间隔最小值都是γ^。几何间隔与函数间隔之间的关系为:γ=γ^/||w||。这样一来我们既可以得到最大的几何间隔,又绕过了||w||=1的限制。当然也存在不好的一面,我们现在再次有一个非凸性函数γ^/||w||,而且我们仍然没有可以解决这个形式的优化问题现成的软件。

接着往下分析。回忆我们之前的讨论,对参数w,b进行任意比例的放缩不会产生任何影响。这一事实是解决现在这个优化问题的关键点。

无论对参数w,b如何进行放缩,都要保证训练集的函数间隔始终为1:


这样一来,只要放缩操作影响了最终的函数间隔的值,都需要重新调整放缩。同时,可以对问题进行转化,最大化γ^/||w||=1/||w||与最小化||w||2是同样的含义。所以优化问题变成下述的形式:


这一优化问题的形式上的转化让问题变得更容易解决。上述的优化问题就成了只有线性约束的凸二次问题。这一形式的优化问题就是最优化间隔分类器的问题。这一问题可以用商业的二次规划软件(QP)进行优化。

接下来我们岔开话题讨论一下拉格朗日对偶性,了解过后我们会得到优化问题的对偶格式——这一格式是我们在之后讲到核问题时的关键。核使得在高维度的空间中最优间隔分类器依旧有良好的表现效果。对偶格式也可以推导出一个表现良好的算法用以解决上述的优化问题,且得到的这个算法的表现比QP软件要好。

拉格朗日对偶性

接下来我们要讨论如何解决优化问题的约束。

思考如下形式的问题:


受约束的优化问题可以使用拉格朗日算子来解决。在这一方法中,我们定义了拉格朗日函数


函数中的参数β被称为拉格朗日算子。之后分别对拉格朗日函数求偏导,并找到参数wβ的值使得:


在这一小节中,我们会将受到约束的优化问题进行一般化,其中包括等式约束和不等式约束。因为篇幅的原因,不会讲述拉格朗日对偶性的完整理论,但是会给出主要的思想和结果,这些都可以运用到我们的优化间隔分类器问题上。

考虑下面这个问题:


这一问题被称作原始优化问题。为了解决这一问题,我们需要开始定义一般化的拉格朗日函数:


其中,参数aβ是拉格朗日算子。


其中下标“P”代表“原始的”。参数w给定。如果w违反了原始的约束(例如,如果存在训练样本i,满足gi(w)>0或者hi(w)0),那么就能证明如下等式成立:


相反地,如果约束满足一个特定值w,那么就有θP(w)=f(w)。因此就有:


因此,在参数w满足原始约束的前提下,θP的值与目标的f(w)
值相等;而参数不满足约束的话,θP的值趋于无穷大。因此,如果我们考虑将θP最小化:


从等式中可以看出这与我们原始的问题相同。为了后续的使用,我们也可以定义目标优化问题的值为p=minwθP(w),我们称之为原始问题的值。

现在,我们来稍有不同的问题,我们定义:


其中,下标D代表“对偶性”,在之前的θP中分别对αβ进行优化(最大化),此处我们要对w进行最小化。


上面的等式是对偶优化问题,这与我们之前的原始问题相同,除了“max”与“min”的顺序相反。我们同样定义了目标优化问题的值:d=maxα,β;ai0θD(w)

那么问题来了,原始问题与对偶问题之间又有什么关联呢?其实很简单:


在特定情况下,有d=p。所以我们可以解决对偶问题来代替原始问题的解决。下面让我们看看什么情况下使得二者相等。

假设fgi都是凸函数,hi是“affine”。


解析:前面提到过很多次非凸性与凸性,可能有很多人不是很理解到底是个什么概念,这里具体解释一下。

f包含一个Hessian矩阵,那么当Hessian矩阵是半正定的时候f就是凸性的。【半正定自行查找】
举个例子,f(w)=wTw是凸性的;同样的,所有的线性函数(和affine函数)也是凸性的。

至于什么是affine函数,此处也有定义。例如,存在参数ai,bi,有hi(w)=aTiw+bi。affine函数与线性函数是相同的,不同点是我们允许affine函数中有额外的截距项bi


继续上面的话题。假设gi的约束是严格可行的,这意味着存在参数w使得所有的训练样本i都满足gi(w)<0

基于上述的几个假设,一定存在w,α,β 使得原始最优化问题的解为wα,β 是对偶问题的解,且有p=d=L(w,α,β)。同时,参数w,α,β 满足KKT条件(Karush-Kuhn-Tucker):


同时,如果存在α,β满足KKT条件,那么这些参数同样是原始问题以及对偶问题的解。

现在我们来观察等式(5),这一等式被称为KKT对偶互补条件。如果ai>0,那么为了满足等式,就有gi(w)=0

之后我们会根据这一点,知道支持向量机中只有少部分的“支持向量”;在我们讲述SMO算法时也会利用KKT对偶互补条件做收敛性实验。

间隔分类器的优化

在之前我们提出了原始优化问题来优化间隔分类器:


还可以把约束写成这种格式:


针对每一个训练样本都有一个这样的约束。从这个约束以及KKT对偶互补条件中可知,只有当训练样本的函数间隔等于1时,约束中的gi(w)=0,KKT对偶互补条件中才有ai>0


上图显示的是由实线代表的最大间隔分类超平面。图中间隔最小的点也是离决策边界最近的点。此时,图中有3个点(1负2正样本)在与决策边界平行的虚线上。因此,只有3个训练样本,会在优化问题的优化过程中ai为非负值(这一结论根据上述的推导过程)。这三个点被称作支持向量。实际上在之后真正发挥作用的支持向量的个数要比训练集的大小小得多。

在之前的讲述中,我们推导出了优化问题的对偶形式。要注意的一个关键点是:我们会利用输入特征中任意两点的内积<x(i),x(j)>的形式来写算法(内积就是(x(i))Tx(j))。实际上用内积的形式来表达算法是方法的关键点。

针对优化问题我们创建对应的拉格朗日函数:


此处的拉格朗日算子只有αi而没有βi,是因为优化问题中只有一个不等式约束。

之后我们来找优化问题的对偶形式。此处需要将上述的拉格朗日函数分别对参数w,b进行最小化,进而得到θD,而最小化就是通过求L对参数w求偏导并设置为0。


得到结果:


然后对参数b求偏导,得到等式:


如果我们取等式(9)中关于w的定义,然后将它的定义代入到拉格朗日函数中(等式8),然后我们将得到:


但是从等式(10)中可知,最后一项必须为0,所以又得到:


回忆我们之前L针对wb的最小化过程中得到的等式。将得到的这些结论放在一起,并且加上限制ai0和限制(等式10),最终我们得到如下的对偶优化问题:


我们同样需要知道,我们的优化问题同样还满足p=d(原始问题与对偶问题一样)以及KKT条件(等式3-7)。因此,我们可以通过解决对偶问题来替代解决原始优化问题。尤其是,在上述的对偶问题中,我们有一个以αi为参数的函数最大化问题。

我们将在之后讲述解决对偶问题的特殊算法,但是如果我们真的解决了这个问题(找到了满足约束,且使W(α)最大的参数α),那么我们可以回到等式(9)中,找到以α为函数的w的最优值。找到w之后,我们可以考虑原始优化问题,同样是直接找到截距项b的最优值:


在继续讲述之前,我们再次来研究一下等式(9),通过参数α的最优值得到w的最优值。假设将我们的模型参数与训练集进行匹配,现在我们希望对新来的输入特征点x进行预测。我们会计算wTx+b,然后预测当且仅当这一结果大于0时,有y=1。但是利用等式(9),wTx+b也可以这样表示:


因此,如果我们找到了αi,为了进行预测,我们不得不计算有内积的这一表达式。而且,在之前的推导过程中,除了支持向量,其他训练样本的αi
均为0。因此,之前讲述的所有项中很多值都为0,而且为了计算等式(13)来做预测,很有必要找到x与支持向量之间的内积(数量很少)。

通过对对偶形式的优化问题的观察,我们对问题的结构有了深刻的了解,也可以通过内积的形式写出整个算法。

下一小节中,我们将利用这个属性应用到核分类问题。由此产生的算法,支持向量机,会在高纬度的特征空间中有良好的学习表现。

0 0
原创粉丝点击