关闭

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

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

SVM学习笔记第二篇

回顾

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

非线性支撑向量机

上一节讲到我们可以使用二次规划解决线性支撑向量机。当我们想使用非线性的转化,只要将z=Φ(x)作为输入,在Z空间中构造二次规划问题需要的输入就好了,这样就能通过二次规划的方法找到在Z空间中最好的wb,然后可以在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算法(Non-linear Hard-Margin 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个约束;新的问题依然是一个QP问题,但是其中将有N个变量,N+1个约束。也就是说只和资料量的大小N有关,与特征的个数无关,那么就和转换之后的Z空间的维度没有任何的关系。我们把这个新的和原来对等的问题称为是原来SVM对偶问题。我们要使用的方法是拉格朗日乘子

工具: 拉格朗日乘子

简单的回忆一下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)是“不好”的, 即违反了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(违反SVM约束条件的wb)会得到无穷大,好的w,b(满足SVM约束条件的wb)会得到12wTw。所以当我们再做外层的最小化的操作的时候,我们自然而然的就把不好的(w,b)排除了。而要在好的(w,b)中选择使得12wTw最小的。

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


拉格朗日对偶SVM

现在我们已经把SVM问题转换为一个新的问题了。简单说,新的无约束的问题是先对拉格朗日函数做一个关于α的最大化问题,在做一个关于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(1)

上述的这个的关系在最小化的文献里面被称为weak duality, 意思是这两个问题有关系,但是关系有点弱。如果有一个更强的关系, 即左边的解和右边的解是相等的。那么我们就可以通过求解右边的问题来求解SVM,因为现在SVM的求解已经转换为求解左边的问题了。为什么要解右边的问题呢?因为右边的问题相比于左边的来说更好解。根据我们上面的分析,我们对wb是没有约束的,而右边的问题是要先解决这个没有约束的问题(无约束的问题总是比较好解的),所以比较简单。
那么什么条件下两个问题的解是相同的呢?两个问题的解相同需要满足以下的三个条件

  • 原问题是凸的,SVM是凸的
  • 原来的问题是有解的,也就是能在Z空间中正确的划分,这一点也能满足
  • 条件是线性的

由于原问题(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)))

ynαn=0所以有ynαnb=0,所以有:

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

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

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

还是针对里面的那个无约束的最小化问题,最优的(w,b,α)还应该满足:

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会满足一些关系, 这些关系我们称之为KKT condition, 即:如果(w,b,α)原问题对偶问题的最佳解, 那么它们会满足一些条件如下:

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

有必要详细说下第4个条件,从这里可以看出只有1=yn(wTzn+b)的样本点的αn才是非零的,当1yn(wTzn+b)的时候,对应的αn都是0,所以说这样一来α就变得很稀疏。

所以当我们求出了对偶问题的最优解之后,将利用这些条件从α中计算我们想要的w,b

SVM的对偶形式的求解

通过上一节的分析得到了SVM对偶形式的简化版如下:

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

将以上的形式稍作修改:max改为min, 可以得到:
standard hard-margin SVM dual

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

可以看到这个问题完全是一个正如我们之前想要得到的,新的最佳化问题有N个变量αnN+1个约束条件(每一个α一个, 所有的一个),这是一个(convex)QP问题。

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

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

optimal  α= ?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=1NN维的向量,元素都是1
  • a=y,a=y:等于可以拆成
  • c=0,c=0
  • aTn=n-th unit direction
  • cn=0

需要注意的是:
Q很大, 并且Q中的大部分的数值不是0,这是因为qn,m=ynymzTnzTm, 不可能存在大量垂直的向量zn,zm, 所以我们可以说Qdense的, 这就需要很大的存储量和计算量。当资料量很大的时候,这就是一个很严重的问题。原始的SVM问题中的Q矩阵中有大量的0元。

求解最佳的w,b

当通过上面的求解终于求得α之后, 如何使用我们已经求解到的α来获得我们想要的w,b呢?
根据KKT可得w的计算方法为:

w=αnynxn

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

所以:

w=αnynxn,b=ynwTzn

这里有一个很有趣的特性:当αn0那么我们可得:1=yn(wTzn+b), 这说明了什么呢?该αn对应的点(xn,yn)在边界上, 也就是说这些点就是支撑向量support vector


对偶SVM背后的信息

Messages behind Dual SVM

支撑向量

通过上一小节我们看到当我们求解完对偶之后, 也就是求出α之后,和我们一开始提到的支撑向量就建立了联系:在前面我们说在边界上的点为支撑向量,上一小节我们得到αn>0对应的点在边界上。
我们把对偶问题的解中αn>0的点(xn,yn)称为支撑向量SV。需要注意的是并不一定所有的位于边界上的点都是支撑向量。(位于边界上的点可以称为Support Vector Candidates)。

正如我们从感性上的认识那样,分割超平面应该要只和离它最近的那些点有关,分割超平面是由w,b确定的,我们从数学上的计算也验证了这一点,w,b的计算只需要依靠非0α即可, 也就是说这个平面只需要SV来决定。

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

b=ynwTzn

对偶的SVM问题可以看成是一个机制, 我们努力去找到SV, 用SV来算出边界在哪里, 其他的点都是不重要的。

SVM和PLA的对比

SVM

wSVM=n=1Nαn(ynxn)

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

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

综上我们可以说:
SVMPLA最终的w可以被我们的资料的ynxn线性组合表示出来。我们称这样的wrepresented by data,不过SVM很特别, 因为他只是需要SV来表示。PLA是用犯错的点来表现出来。所以每种这是SVMPLA的关注的点不一样, SVM关注的是离分隔超平面最近的点,PLA关注的是犯错的点。

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

  • 原始问题:Primal Hard-Margin SVM
    minw,bs.t.12wTwyn(wTznΦ(x)+b)1

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

  • 对偶问题:Dual Hard-Margin SVM
    minαsubject to12n=1Nm=1NαnαmynymzTnzTmn=1Nαnynαn=0all αn0n=1,2,N.

不管是上面的哪一种解法, 最终我们都能得到SVM的分类器

gsvm=sign(wTx+b)

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

讨论

我们之前的目标是要使得我们的SVM不依赖于d~。在转化为SVM的对偶形式之后,我们是否达到了这个目标呢?表面上看了是的,因为变量的个数是N但是其实d~的问题仍然存在在计算Q的过程中qn,m=ynymzTnzm,这里要计算长度为d~的两个向量 z 的内积。所以这里并没有真正的避开这个很大的d~, 只有我们做到了真的不用在计算Z空间中的两个长度为d~的向量的內积的时候,我们可以说我们是避开了d~,完成了我们最初想要做的事情。

怎么避开这个长度为d~的向量的內积计算, 而又能达到计算的目的是我们下一阶段要讨论的问题。所以在这一篇的一开始我们说了,对偶的SVM是另一种形式的SVM,是为了更好的将SVM应用到不同的场合中。接下来我们会看到的时候,正是由于这个对偶的形式,使得我们可以使用一个非常高级的东西–kernel

总结

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

参考

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

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