Andrew Ng机器学习课程7

回顾

通过定义训练集S={(x(i),y(i));i=1,2,...,m}与线性决策平面(w,b)之间的function margin γ^和geometric margin γ 、好的分类决策平面特点得到了一个最优化问题:

max(γ,w,b)γ s.t. y(i)(wTx(i)+b)γ, ||w||=1

下面要介绍的就是如何解决这个最优化问题,一个思路就是将这个没有“现货”可以解决的优化问题,转变为off-the-shelf的最优化问题的形式,以便直接拿来使用。

最优化问题推导过程

约束条件中的||w||=1是一个nasty(非凸)的目标,于是进行第一步的演变:

  • 将最大化geometric margin转变为最大化function margin

    max(γ^,w,b)γ^ s.t. y(i)(wTx(i)+b)γ^,i=1,2,...,m

    虽然没有了||w||=1的约束,但这个优化目标则变为了一个nasty(non-convex)函数,需要进行第二步的演变:

  • 引入(w,b)的尺度限制,使function margin γ^=1
    考虑到最大化γ^/||w||=1/||w||等效于最小化||w||2,于是第二步演变后得到的优化问题为:

    max(γ,w,b)12||w||2 s.t. y(i)(wTx(i)+b)1,i=1,2,...,m

    经过两步的推导,问题转变为了一个典型的凸二次目标与线性约束的优化问题,这类问题可以通过成熟的software解决,不必深究。

虽然通过上面的推导过程能够解决并得到一个好的分类决策超平面,但是还得介绍一下Lagrange duality,通过上面优化问题的对偶形式,可以引入kernel trick得到在高维空间表现很好的optimal margin classifiers,另外,dual form将得到比上面解普通二次优化问题更加有效的方法。

Lagrange duality

1. Lagrange multiplier

考虑下面形式的优化问题:

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

解决方法之一就是Lagrange multipliers,定义Lagrangian为:
L(w,β)=f(w)+sumli=1βihi(w)

βi那一项叫做Lagrange multipliers。通过求解偏微分来得到对应的wβ

2. primal optimization problem

将如下形式的优化问题成为primal optimization问题:

minw f(w) s.t. gi(w)0,i=1,...,k hi(w)=0, i=1,...,l.

为了解决这个问题,开始进行相关的推导:

  • generalized Lagrangian:
    L(w,α,β)=f(w)+sumki=1αigi(w)+sumli=1βihi(w)
  • objective θP(w)

θP(w)=maxα,β:αi0L(w,α,β)=maxα,β:αi0 f(w)+sumki=1αigi(w)+sumli=1βihi(w)

讨论一下,如果gi(w)>0 or hi(w)0,则objective就变为了无穷大,因此maximize就是为了使gi(w)hi(w)满足约束条件。当它们满足约束条件时,为了使objective就等于了f(w)。这里P的含义代表的是primal。

  • final optimization form:

minwθP(w)=minw maxα,β:αi0L(w,α,β)

  • final optimal solution:

p=minwθP(w)

3. 对偶问题dual optimization problem

  • objective θD(α,β)

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

这里D代表的是dual。

  • dual optimization problem:

maxα,β:αi0θD(α,β)=maxα,β:αi0 minwL(w,α,β)

  • dual solution:

d=maxα,β:αi0θD(w)

4. 耦合primal和dual问题

不加约束地,两者有如下形式的关系:

d=maxα,β:αi0 minwL(w,α,β)minw maxα,β:αi0L(w,α,β)=p

我们期望是在满足某些条件时,令d=p。而这个条件就是著名的KKT条件,这里不再详述,只是进行稍微的解释说明:fgi(w)是凸函数,而hi(w)需为affine,即形如hi(w)=aTiw+bi。同时,如果(w,α,β)满足KKT条件,它就是primal和dual问题的解。

  • KKT formulation

L(w,α,β)wi=0,i=1,...nL(w,α,β)βi=0,i=1,...lαgi(w)=0,i=1,...,kgi(w)0,i=1,...,kα0,i=1,...,k

另外值得注意的条件就是,αgi(w)=0,i=1,...,k,叫做KKT dual complementary condition,它表明了如果α>0,那么gi(w)=0。后续引入到maximize marge问题中,会推导出support vector的定义。

optimal margin classifiers

这里重写margin最大化的问题:

max(γ,w,b)12||w||2 s.t. y(i)(wTx(i)+b)1,i=1,2,...,m

  1. support vector

通过定义gi(w)这个约束项为如下形式:

gi(w)=y(i)(wTx(i)+b)+10

这样这个问题就转变为了上面所介绍的那些预备问题了。从KKT dual complementary condition中可知,α>0对应训练样本中那些functional margin等于1的样本点,即使得gi(w)=0,这些点就叫做support vector。

2. 构造对偶问题

  • 构造Lagrangian

按照上面的介绍的Lagrangian,构造如下形式:

L(w,b,α)=12||w||2i=1mαi[y(i)(wTx(i)+b)1]

  • 构造θD

按照上面介绍的dual问题的步骤,进行构造,然后求解。对w求解偏微分,得到如下的对应的w

w=i=1mαiy(i)x(i)

这个公式很重要,还记得刚才提到的support vector,实际上最后得到的w就是support vectors的样本点的线性组合。这一现象被称为。实际上知道了决策超平面w之后,很容易得到b的表达式为:
b=maxi:y(i)=1wTx(i)+mini:y(i)=+1wTx(i)2

实际上的含义就是当知道斜率之后,求截距b就是不断地进行平移,移动到两个样本的正中间。其实比较困难的地方时在求斜率上。

  • 对偶问题

最后推出的dual问题的形式如下:

maxα W(α)=i=1mαi12i,j=1my(i)y(j)αiαj<x(i),x(j)>s.t. αi0,i=1,...,mi=1mαiy(i)=0

当然这样进行dual问题转化,需要先验证KKT条件,否则两者primal和dual问题的解不等,转化就没意义了。这样问题转化为了求解参数为αi的最大化问题。
到此,假设已经得到了对应的解,那么模型在进行工作时,计算wTx+b时,可以进行如下的转换:
wTx+b=(i+1mαiy(i)x(i))Tx+b=i+1mαiy(i)<x,x(i)>+b

所以,计算中只需要计算新输入的x与训练集中的x的内积就好了。还记得support vector吧,实际上只需要计算新输入x与support vcetors的内积就好了。上面的那种形式,有助于我们引出kernel trick。

Kernels核

回顾linear regression,通过features xx2x3...xn来获取更加powerful的曲线。实际上是通过特征一声,将原始特征映射到高维空间,随着n的增大,模型的能力越强,复杂度越高,可以拟合的曲线也越弯曲,但是随着自由度的增加,模型很有可能overfitting。常规的方法是不可能达到无穷多维度的拟合的。特征映射记为ϕ,映射后的特征记为ϕ(x)。而kernel的定义为:对应给定的特征映射ϕ(x)K(x,z)=ϕ(x)Tϕ(z)。给定一个kernel就表达了两层信息,一是特征映射函数,二是内积。Kernel的好处是容易计算,如果对应的特征映射ϕ(x)是一个高维度的矢量,那么计算内积就比较费劲,而通常直接利用Kernel能够获得更有效率的计算。另一方面,kernel具有内积的特性,表示了经过特征转换后的特征相似度。比如:

K(x,z)=exp(||xz||22σ2)

x,z距离很近时,接近为值接近为1;当x,z距离很远时,接近为值接近为0;这个Kernel叫做Gaussian kernel。定义Kernel matrix为Kij=K(xi,xj)。K得是半正定的对称矩阵。这是一个充分条件,被称为Mercer Theorem。
将Kernel应用与SVM是非常明显的,而kernel不仅仅能应用于SVM,特别地,当学习算法中需要以输入特征矢量的内积形式时,使用kernel代替将会在高维特征空间非常高效地工作。所以,称这种技能为kernel trick。


2015-8-26
艺少

posted @ 2015-08-26 11:05  ZhangPYi  阅读(202)  评论(0编辑  收藏  举报