关闭

SVM学习笔记-对偶形式的SVM

标签: SVM机器学习对偶形式的SVM
346人阅读 评论(0) 收藏 举报
分类:

SVM学习笔记第二篇

回顾

上一篇笔记讲述了一个模型:线性支撑向量机。其目的是要找一个比较“胖”的分割线或者叫分割超平面,因为这些比较“胖”的hyperplane对于测量误差是比较鲁棒的。并且我们使用二次规划方法来解决这样的问题。
这篇将要讲述的是将这个模型转化为另一种形式,对偶形式,以使得该模型可以更容易的延伸到其他不同的各种各样的应用当中去。

非线性支撑向量机

上一节讲到我们可以使用二次规划解决线性支撑向量机。当我们想使用非线性的转化,只要将z=Φ(x)作为输入即可。

  • (SVM+feature  transform=non-linearSVM)
    SVM加上非线性特征转化可以得到非线性的SVM。

为什么要使用非线性的SVM?
通过SVM自身的largin-margin特性来降低算法的复杂度通过feature transform来得到更加复杂的弯弯曲曲的曲线以使得Ein更小。 非线性的SVM形式如下:(只要将z=Φ(x)作为输入即可)

minw,bs.t.12wTwyn(wTznΦ(x)+b)1

使用二次规划求解非线性的硬间隔SVM

1 构造二次规划中需要的参数(Q,p,A,c)

Q=[00d~0Td~Id~];p=0d~+1;aTn=yn[1zTn];cn=1

2
w,bQP(Q,p,A,c)
3
return bR and wRd~ withgsvm(x)=sign(wT Φ(x)+b)

这里需要注意的是:
以上的新的QP问题是在Z空间中进行运算的,Z空间中的维度是d~, 而在原来的X空间中的维度是d,d~d。即,新的QP问题的变量有d~+1个, 约束有N所以当Z空间的维度很高的时候,这个QP问题就很难求解。 这也是我们这篇基本的出发点。
当我们想要使用非常复杂的特征转化甚至为无限维度的特征转化的时候,d~就会很大或者是无穷大,显然现在是没有办法解决无限多个变数的最佳化问题的,所以我们想要找到一个特殊的机制可以帮助我们完成这个任务,解决特征转化之后在计算上对Z空间中d~的依赖。

我们的目标:不依赖于d~的SVM

我们的方法是将原始的SVM问题转化为一个新的对等的SVM问题。原来的问题中,如上所述,总共有d~+1个变量,N个约束;新的问题中将有N个变量,N+1个约束。也就是说只和资料量的大小有关,与特征的个数无关,那么就和转换之后的Z空间的维度没有任何的关系。我们把这个新的和原来对等的问题称为是原来问题的对偶问题。我们要使用的方法是拉格朗日乘子

工具: 拉格朗日乘子

简单的回忆一下regularization的内容:regularization原来是要求解一个有条件的最优化问题,即我们想要Ein最小,约束是w的长度不能太长。但是这个有约束的最佳化问题我们不会解, 所以在经过了一番推导之后发现这个约束条件可以塞到最小化的目标函数里面, 这样就变成了求解一个最小化Eaug的问题,这个问题是没有约束条件的(如下图)。在这个过程中我们使用到的工具就是lagrange multiplier,简单说就是将每一个条件前面乘以一个系数加到目标函数中去。


这里写图片描述

SVM是一个带条件的最优化问题,我们通过引入lagrange multipliers得到的问题就是SVM的对偶问题(变量是引入的Lagrange multipliers)。因为有N个条件,所有我们需要引入Nlagrange multipliers αi

我们想要做的是将原始问题转化为一个无约束的问题。
原始问题

minw,bs.t.12wTwyn(wTzn+b)1

定义一个函数,我们称之为拉格朗日函数:
L(b,w,α)=12wTwobjcet function+n=1Nαn(1yn(wTzn+b)constraint)

之所以要定义这个函数,是为了将SVM转化为一个无约束的问题,定义了以上的函数之后,考虑如下的式子:

minb,w (maxall αn0L(w,b,α))

这个式子要做的事情可以理解成是这样的: 对于一组(w,b), 我们来调α的取值,使得L(w,b,α)能取得最大值;对于第二组(w,b), 我们再来调α的取值,使得L(w,b,α)能取得最大值;;对于另一组(w,b), 我们再来调α的取值,使得L(w,b,α)能取得最大值。这样每一组(w,b)都能得到相应的一个L(w,b,α)的最大值,最后在这些最大值里面选择最小的。这个最小的值对应的那组(w,b)就是我们 原始问题 想要的解。下面来解释为什么这样做是对的?

如上面说的,首先我们要找一组(w,b)使得L(w,b,α)最大,即找一组(w,b)maxall αn0 L(w,b,α)

  • 如果这一组(w,b)是“不好”的, 即违反了N个条件中的任何一个,不失一般性,我们假设这一组(w,b)违反了第 k 个条件,那么yk(wTzk+b)<11yk(wTzk+b)>0。 此时我们想要做的事情是maxall αn 0(12wTw+Nn=1αn(1yn(wTzn+b))), 那么我们只要令αk取无穷大就可以使得L(w,b,α)最大(无穷大)。
  • 如果这一组(w,b)是“好”的,即它满足SVM中所有的约束,那么在maxall αn 0(12wTw+Nn=1αn()))的时候,因为都是负的,我们要最大化这个式子,所以α最好的取值是都取0。 那么最大化的结果就是12wTw

本来我们对(w,b)是没有设置任何的条件的,但是在做里面的最大化的时候不好的(w,b)会得到无穷大,好的(w,b)会得到12wTw。所以当我们再做外层的最小化的操作的时候,我们自然而然的就把不好的(w,b)排除了。而要在好的(w,b)中选择使得最后结果最小的。

这样我们就把原始问题转化为了一个无约束的问题。


拉格朗日对偶问题

简单说,新的无约束的问题是先对拉格朗日函数做一个关于α的最大化问题,在做一个关于w,b的最小化问题。
对于一个固定的α我们可以得到

minw,b(maxall an0 L(w,b,α))minw,b L(w,b,α)

因为最大的值总是要比任意的一个值大(maxany)

又因为任意的α上式都是成立的,那么当然其中最大的那个对于上面的式子来说也是成立的。

minw,b(maxall an0 L(w,b,α))maxall αn0(minw,b L(w,b,α))Lagrange dual problem

这样我们就得到了原始问题的一个对偶问题(max minL(w,b,α)),如果我们能解决对偶问题,那么我们就得到了原始问题的一个下限

二次规划问题的强对偶性

minw,b(maxall an0 L(w,b,α))equiv. to original SVMmaxall αn0(minw,b L(w,b,α))Lagrange dual problem

当满足一定的条件的时候,两个问题的解是相等的(两个问题具有强对偶性)。这样我们就可以通过解右边的问题来得到左边问题的解。为什么要解右边的问题呢?因为右边的问题相比于左边的来说更好解。因为根据我们上面的分析,我们对wb是没有限制的,而右边的问题是要先解决这个没有约束的问题(无约束的问题总是比较好解的),所以比较简单。那么当满足什么条件的时候两个问题的解是相同的呢?

  • convex primal(原问题是凸的)
  • feasible primal(true if Φ-separable)(原来的问题是有解的)
  • linear constraints(条件是线性的)

对于QP问题来说,上面的三个条件都是满足的。当满足上述三个条件的时候,求解对偶问题和求解原始问题就是一样的,也就是说存在一组(w,b,α), 对于两边来说都是最佳的解。

求拉格朗日对偶形式

经过上面的推到,我们现在就可以通过求解如下的对偶问题来求解原始的SVM问题。

maxall αn0(minw,b 12wTw+n=1Nαn(1yn(wTzn+b))L(w,b,α))

先看里面的min部分(现在里面的这部分是无约束的最小化问题),要想得到最优解, 即最优的那组(w,b,α),那么

L(w,b,α)b=0 n=1Nαnyn=0

那么上面的式子可以化简为:

maxall αn0ynαn=0 (minw,b 12wTw+n=1Nαn(1ynwTzn)n=1Nαnyn b)))

maxall αn0ynαn=0 (minw 12wTw+n=1Nαn(1ynwTzn))

经过这样的处理,式子中的b消失了.

上面是通过对b求导数来进行化简,同样的我们对wi求偏导来继续化简上面的式子:

还是针对里面的那个无约束的最小化问题:

L(w,b,α)wi=win=1N αnynzn,i=0

w=n=1N αnynzn

那么上面的式子可以进一步的化简为:

maxall αn0,ynαn=0,w=αnynzn(minw12wTw+n=1NαnwTw)

maxall αn0,ynαn=0,w=αnynzn(minw12||n=1Nαnynzn||2+n=1Nαn)

maxall αn0,ynαn=0,w=αnynzn12||n=1Nαnynzn||2+n=1Nαn

因为式子里面已经没有w了,所以就可以把minw去掉了。

现在我们就把原来的问题化简为了一个只有变量α的最大化问题。这个α要满足三个条件:

  • all αn0α自身的限制。
  • ynαn=0:对b最优化得到的条件。
  • w=αnynzn:对w最优化得到的条件。

拉格朗日对偶问题的简化版本

maxall αn0,ynαn=0,w=αnynzn12||n=1Nαnynzn||2+n=1Nαn

如果(w,b,α)原问题对偶问题的最佳解, 那么它们会满足一些条件如下:

  • 满足原始问题的条件:yn(wTzn+b)1
  • 满足对偶问题的条件:αn0
  • ynαn=0w=αnynzn
  • αn(1yn(wTzn+b))=0, 两者至少要有一个为0,保证了解的稀疏性

这些条件称为KKT条件, 是最优解的充分必要条件。
之后我们将利用这些条件从α中计算我们想要的w,b

SVM的对偶形式

SVM对偶形式的简化版如下:

maxall αn0,ynαn=0,w=αnynzn12||n=1Nαnynzn||2+n=1Nαn

将以上的形式稍作修改:max改为min

minαsubject to12n=1Nm=1NαnαmynymzTnzmn=1Nαnynαn=0all αn0n=1,2,N.

新的最佳化问题有N个变量αnN+1个约束条件,这是一个QP问题。

使用二次规划求解对偶的SVM

使用二次规划的方法来解决对偶SVM问题

minαsubject to12n=1Nm=1NαnαmynymzTnzTmn=1Nαnynαn=0all αn0n=1,2,N.

同样的调用二次规划的包来进行计算,我们唯一需要做的就是喂给包相应的参数Q,p,A,c

标准的二次规划问题如下:

optimalαminαsubject toQP(Q,p,A,c)12αTQα+pTαaTiαcin=1,2,N.

参数的计算方法:

  • qn,m=ynymzTnzTm
  • p=1N:N维的向量,元素都是1
  • a=y,a=y:等于可以拆成
  • c=0,c=0
  • aTn=n-th unit direction
  • cn=0

需要注意的是:
Q中的大部分的数值不是0,这就需要很大的存储量。当资料量很大的时候,这就是一个很严重的问题。原始的SVM问题中的Q矩阵中有大量的0元。

求解最佳的w,b

如何使用我们已经求解到的α来获得我们想要的w,b
根据KKT可得w的计算方法为:

w=αnynxn

另外,如果(w,b,α)原问题对偶问题的最佳解, 那么满足αn(1yn(wTzn+b))=0, 即两者至少要有一个为0。
所以我们选择一个αn01yn(wTzn+b)=0yn=wTzn+bb=ynwTzn(y2n=1)

所以:

w=αnynxn,b=ynwTzn

这里有一个很有趣的特性:当αn0那么我们可得:该α对应的点就是支撑向量。


对偶SVM背后的信息

支撑向量

我们把αn>0的点(xn,yn)称为支撑向量SV。需要注意的是并不一定所有的位于边界上的点都是支撑向量。(位于边界上的点可以称为Support Vector candidates)。
正如我们从感性上的认识那样,分割超平面只和离它最近的那些点有关,分割超平面是由w,b确定的,我们从数学上的计算也验证了这一点,即w,b的计算只需要依靠非0α即可:

w=n=1Nαnynxn=SVαnynxn

b=ynwTzn

SVM和PLA的对比

SVM:

wSVM=n=1Nαn(ynxn)

当我们已经通过对偶问题求出αn之后,仅仅通过对yn,xn(zn)做如上式的线性组合就可以得到我们想要的分割超平面。
PLA:
wPLA=n=1Nβn(ynzn)

其中N为犯错的次数,(zn,yn)为犯错的点。

综上我们可以说:w可以被我们的资料ynxn线性组合。

两种形式的硬间隔支撑向量机

  • 原始问题
    minw,bs.t.12wTwyn(wTznΦ(x)+b)1

d~+1个变量,N个约束。当d~+1比较小的时候,适合用这种形式求解。

  • 对偶问题
    minαsubject to12n=1Nm=1NαnαmynymzTnzTmn=1Nαnynαn=0all αn0n=1,2,N.

N个变量,N+1个约束条件,当资料量不是很大的时候,适合使用这个形式来求解。

我们之前的目标是要使得我们的SVM不依赖于d~。在转化为SVM的对偶形式之后,我们是否达到了这个目标呢?表面上看了是的,因为变量的个数是N,但是其实d~的问题仍然存在在计算Q的过程中,qn,m=ynymzTnzm,长度为d~的向量z的内积。

怎么避开这个长度为d~的向量的计算是我们下一阶段要讨论的问题。

总结

我们之所以引入对偶问题,是因为我们想要使用复杂的特征转换来解决非线性的问题,而使用复杂的特征转化之后,出现了非常大的维度d~。我们使用lagrange函数,引入lagrange乘子经过推到得出了原来问题的对偶问题,通过求解对偶问题的解,得到了支撑向量。从而得到了hyperplane。但是在这种形式下,仍然有一个步骤的计算和d~有关(在计算Q矩阵的元素的时候)。之后我们会分析如何移除对于d~的依赖。

参考

  • 林轩田机器学习技法
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:70993次
    • 积分:1441
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:0篇
    • 评论:48条
    最新评论