优化的边界分类器
上一讲里我们介绍了函数边界和几何边界的概念,给定一组训练样本,如果能够找到一条决策边界,能够使得几何边界尽可能地大,这将使分类器可以很可靠地预测训练样本,特别地,这可以让分类器用一个“间隔”将正负样本分开。
现在,我们假设给定的一组训练样本是线性可分的,即有可能找到这样一条分界面,将正负样本分开。如何找到这样一个分界面可以使得几何边界最大?我们将这个优化问题用如下的表达式给出:
maxγ,w,bs.t.γy(i)(wTx(i)+b)⩾γ,i=1,...m∥w∥=1
我们要使
γ最大化,第一个约束条件保证训练集里的每个训练样本的函数边界都大于
γ,而另外一个约束条件
∥w∥=1保证目标函数的几何边界和函数边界相等,所以目标函数的几何边界的最小值为
γ,如果找到合适的参数w,b使得目标函数成立,那么可以找到训练集的最大的几何边界。不过可以看到,约束条件
∥w∥=1使得目标函数无解,所以我们将目标函数做一个简单的变换,如下所示:
maxγ,w,bs.t.γ^∥w∥y(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∥最大化相当于对
∥w∥2最小化。因此我们可以建立如下的优化问题:
minγ,w,bs.t.12∥w∥2y(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的偏导数为:
∂L∂wi=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α,β:αi⩾0L(w,α,β)
其中,”
P”表示”primal”(原始的),假设我们求出w,如果w不满足所有的约束条件(例如存在
gi(w)⩾0或者
hi(w)≠0),那么我们可以知道:
θP(w)=maxα,β:αi⩾0f(w)+∑i=1kαigi(w)+∑i=1lβihi(w)=∞
反之,如果w满足所有的约束条件,那么
θP(w)=f(w),因此,我们可以得知:
θP(w)={f(w)∞如果w满足约束条件otherwise
可以看出,当w满足所有的约束条件时,
θP(w)的值与我们建立的目标函数的值是一样的,如果不满足约束条件,那么
θP(w)将会趋于正无穷。
因此,当我们考虑如下的最小化问题:
minwθP(w)=minwmaxα,β:αi⩾0L(w,α,β)
可以看到,这与我们最初的原始的优化问题是同一个问题,我们也定义这个优化问题的优化解为:
p∗=minwθP(w),我们称这个为原始问题的\textbf{解}。我们稍后将会用到这个定义。
现在,我们先来看一个稍微不同的问题,我们定义:
θD(α,β)=minwL(w,α,β)
这里,”
D”表示”dual”(对偶的),要注意,在
θP我们要求的是关于
α,β的优化问题,这里,我们要求的是关于w的优化问题。下面,我们可以给出对偶优化问题的形式:
maxα,β:αi⩾0θD(α,β)=maxα,β:αi⩾0minwL(w,α,β)
可以看到,这个形式和我们上面讨论的原始优化问题的形式很相似,唯一的区别在于”max”和”min”的顺序调换了一下,我们同样定义对偶优化问题的目标值为:
d∗=maxα,β:αi⩾0θD(α,β)
那么原始优化问题与对偶优化问题满足什么关系呢?容易看出:
d∗=maxα,β:αi⩾0minwL(w,α,β)⩽minwmaxα,β:αi⩾0L(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,...k⩽0,i=1,2,...k⩾0,i=1,2,...k
第三个表达式,称为KKT**dual complementarity**条件,这个条件暗示着如果
α∗>0,那么可以推出
gi(w∗)=0,这个条件是关键的一点。在后面可以看到,正因为这一点,说明SVM中的”支持向量”只占训练样本的一小部分。
参考文献
Andrew Ng, “Machine Learning”, Stanford University.