对间隔分类器的优化
给定一组训练集,通过找到一个决策边界并且将间隔最大化,对训练数据的预测得到的结果就是足够正确的。因而,在分类器中会有一个“缝隙”(几何间隔)将正负向的训练样本分割开来。
现在,我们假设给定的数据集是线性可分的,即可以通过超平面将正负向的训练样本分开。我们如何找到使几何间隔达到最大值的分类器呢?我们可以引出如下优化问题:

我们打算将参数 γ 最大化,使每个训练样本的函数间隔有最小值 γ 。 ||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
,那么就有

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

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

其中,下标
D
代表“对偶性”,在之前的

上面的等式是对偶优化问题,这与我们之前的原始问题相同,除了“max”与“min”的顺序相反。我们同样定义了目标优化问题的值:
那么问题来了,原始问题与对偶问题之间又有什么关联呢?其实很简单:

在特定情况下,有 d∗=p∗ 。所以我们可以解决对偶问题来代替原始问题的解决。下面让我们看看什么情况下使得二者相等。
假设
f
和
解析:前面提到过很多次非凸性与凸性,可能有很多人不是很理解到底是个什么概念,这里具体解释一下。
当
f
包含一个Hessian矩阵,那么当Hessian矩阵是半正定的时候
举个例子,
f(w)=wTw
是凸性的;同样的,所有的线性函数(和affine函数)也是凸性的。
至于什么是affine函数,此处也有定义。例如,存在参数 ai,bi ,有 hi(w)=aTiw+bi 。affine函数与线性函数是相同的,不同点是我们允许affine函数中有额外的截距项 bi 。
继续上面的话题。假设
gi
的约束是严格可行的,这意味着存在参数
w
使得所有的训练样本
基于上述的几个假设,一定存在 w∗,α∗,β∗ 使得原始最优化问题的解为 w∗ , α∗,β∗ 是对偶问题的解,且有 p∗=d∗=L(w∗,α∗,β∗) 。同时,参数 w∗,α∗,β∗ 满足KKT条件(Karush-Kuhn-Tucker):

同时,如果存在 α∗,β∗ 满足KKT条件,那么这些参数同样是原始问题以及对偶问题的解。
现在我们来观察等式(5),这一等式被称为KKT对偶互补条件。如果 a∗i>0 ,那么为了满足等式,就有 gi(w∗)=0 。
之后我们会根据这一点,知道支持向量机中只有少部分的“支持向量”;在我们讲述SMO算法时也会利用KKT对偶互补条件做收敛性实验。
间隔分类器的优化
在之前我们提出了原始优化问题来优化间隔分类器:

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

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

上图显示的是由实线代表的最大间隔分类超平面。图中间隔最小的点也是离决策边界最近的点。此时,图中有3个点(1负2正样本)在与决策边界平行的虚线上。因此,只有3个训练样本,会在优化问题的优化过程中 ai 为非负值(这一结论根据上述的推导过程)。这三个点被称作支持向量。实际上在之后真正发挥作用的支持向量的个数要比训练集的大小小得多。
在之前的讲述中,我们推导出了优化问题的对偶形式。要注意的一个关键点是:我们会利用输入特征中任意两点的内积 <x(i),x(j)> <script type="math/tex" id="MathJax-Element-66"> </script>的形式来写算法(内积就是 (x(i))Tx(j) )。实际上用内积的形式来表达算法是 核方法的关键点。
针对优化问题我们创建对应的拉格朗日函数:

此处的拉格朗日算子只有 αi 而没有 βi ,是因为优化问题中只有一个不等式约束。
之后我们来找优化问题的对偶形式。此处需要将上述的拉格朗日函数分别对参数
w,b
进行最小化,进而得到
θD
,而最小化就是通过求
L
对参数

得到结果:

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

如果我们取等式(9)中关于

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

回忆我们之前
L
针对

我们同样需要知道,我们的优化问题同样还满足 p∗=d∗ (原始问题与对偶问题一样)以及KKT条件(等式3-7)。因此,我们可以通过解决对偶问题来替代解决原始优化问题。尤其是,在上述的对偶问题中,我们有一个以 αi 为参数的函数最大化问题。
我们将在之后讲述解决对偶问题的特殊算法,但是如果我们真的解决了这个问题(找到了满足约束,且使
W(α)
最大的参数
α
),那么我们可以回到等式(9)中,找到以
α
为函数的
w
的最优值。找到

在继续讲述之前,我们再次来研究一下等式(9),通过参数

因此,如果我们找到了
αi
,为了进行预测,我们不得不计算有内积的这一表达式。而且,在之前的推导过程中,除了支持向量,其他训练样本的
αi
均为0。因此,之前讲述的所有项中很多值都为0,而且为了计算等式(13)来做预测,很有必要找到
x
<script type="math/tex" id="MathJax-Element-96">x</script>与支持向量之间的内积(数量很少)。
通过对对偶形式的优化问题的观察,我们对问题的结构有了深刻的了解,也可以通过内积的形式写出整个算法。
下一小节中,我们将利用这个属性应用到核分类问题。由此产生的算法,支持向量机,会在高纬度的特征空间中有良好的学习表现。