机器学习 Support Vector Machines 2

优化的边界分类器

上一讲里我们介绍了函数边界和几何边界的概念,给定一组训练样本,如果能够找到一条决策边界,能够使得几何边界尽可能地大,这将使分类器可以很可靠地预测训练样本,特别地,这可以让分类器用一个“间隔”将正负样本分开。

现在,我们假设给定的一组训练样本是线性可分的,即有可能找到这样一条分界面,将正负样本分开。如何找到这样一个分界面可以使得几何边界最大?我们将这个优化问题用如下的表达式给出:

maxγ,w,bs.t.γy(i)(wTx(i)+b)γ,i=1,...mw=1

我们要使 γ 最大化,第一个约束条件保证训练集里的每个训练样本的函数边界都大于 γ ,而另外一个约束条件 w=1 保证目标函数的几何边界和函数边界相等,所以目标函数的几何边界的最小值为 γ ,如果找到合适的参数w,b使得目标函数成立,那么可以找到训练集的最大的几何边界。不过可以看到,约束条件 w=1 使得目标函数无解,所以我们将目标函数做一个简单的变换,如下所示:
maxγ,w,bs.t.γ^wy(i)(wTx(i)+b)γ^,i=1,...m

这里,我们想要最大化的是 γ^/w ,约束条件保证目标函数的函数边界最小为 γ^ ,既然函数边界 γ^ 与几何边界 γ 存在如下关系: γ=γ^/w ,所以这个目标函数与我们之前的目标函数是一致的,通过这种替换,我们避免了约束条件 w=1 ,但是发现新的目标函数 γ^/w 依然无法解决。

所以我们要继续变换,记得之前讨论函数边界的时候,提到w,b具有尺度不变性,就是对w,b乘以一个常数,不会改变函数边界的性质,这里我们将对w,b引入常数因子使得训练集的函数边界为1,即:

γ^=1

因为对w,b乘以常数,相当于对函数边界乘以一个同样的常数,所以可以通过改变w,b的尺度保证函数边界为1,将这一点引入优化函数,并且注意到对 γ^/w=1/w 最大化相当于对 w2 最小化。因此我们可以建立如下的优化问题:
minγ,w,bs.t.12w2y(i)(wTx(i)+b)1,i=1,...m

现在,这个优化问题是一个凸的二次优化问题,而约束条件也是线性约束,因此可以很容易地得到解决。一旦得到w,b,可以建立 优化边界分类器

虽然到这里为止,我们已经解决了SVM的大部分问题,也可以找到一条最优的决策边界。不过接下来我们要探讨Lagrange duality,这将引出这个优化问题的对偶形式,并且可以让我们引入kernel的概念以处理高维的特征向量,并且这个对偶形式可以演化出一个更高效的算法。

Lagrange duality

我们先将SVM搁置一旁,先来探讨一些含约束条件的优化问题。
考虑如下一个优化问题:

minws.t.f(w)hi(w)=0,i=1,...l

利用拉格朗日数乘法,我们可以将上式写成:
L(w,β)=f(w)+i=1lβihi(w)

其中, βi 称为拉格朗日乘数,我们可以得到L的偏导数为:
Lwi=0,Lβi=0

进而可以求出参数 w,β

上面讨论的优化问题含有等式的约束条件,接下来,我们要看看同时含有等式与不等式约束条件的优化问题,考虑如下的优化问题,我们一般称为primal 优化问题:

minws.t.f(w)hi(w)=0,i=1,...lgi(w)0,i=1,...k

为了解决这个问题,我们先建立一般的拉格朗日表达式:
L(w,α,β)=f(w)+i=1kαigi(w)+i=1lβihi(w)

αi,βi 称为拉格朗日乘数。考虑如下的式子:
θP(w)=maxα,β:αi0L(w,α,β)

其中,” P ”表示”primal”(原始的),假设我们求出w,如果w不满足所有的约束条件(例如存在 gi(w)0 或者 hi(w)0 ),那么我们可以知道:
θP(w)=maxα,β:αi0f(w)+i=1kαigi(w)+i=1lβihi(w)=

反之,如果w满足所有的约束条件,那么 θP(w)=f(w) ,因此,我们可以得知:
θP(w)={f(w)wotherwise

可以看出,当w满足所有的约束条件时, θP(w) 的值与我们建立的目标函数的值是一样的,如果不满足约束条件,那么 θP(w) 将会趋于正无穷。
因此,当我们考虑如下的最小化问题:
minwθP(w)=minwmaxα,β:αi0L(w,α,β)

可以看到,这与我们最初的原始的优化问题是同一个问题,我们也定义这个优化问题的优化解为: p=minwθP(w) ,我们称这个为原始问题的\textbf{解}。我们稍后将会用到这个定义。

现在,我们先来看一个稍微不同的问题,我们定义:

θD(α,β)=minwL(w,α,β)

这里,” D ”表示”dual”(对偶的),要注意,在 θP 我们要求的是关于 α,β 的优化问题,这里,我们要求的是关于w的优化问题。下面,我们可以给出对偶优化问题的形式:
maxα,β:αi0θD(α,β)=maxα,β:αi0minwL(w,α,β)

可以看到,这个形式和我们上面讨论的原始优化问题的形式很相似,唯一的区别在于”max”和”min”的顺序调换了一下,我们同样定义对偶优化问题的目标值为:
d=maxα,β:αi0θD(α,β)

那么原始优化问题与对偶优化问题满足什么关系呢?容易看出:
d=maxα,β:αi0minwL(w,α,β)minwmaxα,β:αi0L(w,α,β)=p

很显然,函数最小值的最大值要小于等于最大值的最小值,这个看起来有点绕,不过应该很容易验证。不过,在某些约束条件下,可以让两个值相等,即:
d=p

下面,我们探讨一下这些条件:
假设f和g是凸函数,h是仿射函数,进一步假设函数g是严格可行的,意味着存在w使得对所有的i满足 gi(w)<0

基于上述假设,那么一定存在 w,α,β ,其中, w 是原始优化问题的解,而 α,β 是对偶优化问题的解,更进一步,我们有: d=p=L(w,α,β) ,而且 w,α,β 满足Karush-Kuhn-Tucker (KKT)条件,即如下所示:

wiL(w,α,β)βiL(w,α,β)αgi(w)gi(w)α=0,i=1,2,...n=0,i=1,2,...l=0,i=1,2,...k0,i=1,2,...k0,i=1,2,...k

第三个表达式,称为KKT**dual complementarity**条件,这个条件暗示着如果 α>0 ,那么可以推出 gi(w)=0 ,这个条件是关键的一点。在后面可以看到,正因为这一点,说明SVM中的”支持向量”只占训练样本的一小部分。

参考文献

Andrew Ng, “Machine Learning”, Stanford University.

你可能感兴趣的:(机器学习 Support Vector Machines 2)