SVM熟练到精通2:SVM目标函数的dual优化推导

本文深入探讨SVM的支持向量概念,通过Lagrange乘子法将原始二次优化问题转换为对偶问题,揭示了SVM的高效优化算法和对新数据点分类的内积计算方式,为后续的Kernel方法奠定了基础。
摘要由CSDN通过智能技术生成

文章引自pluskid于2010年发表于“Machine Learning”板块,本文仅做编辑。

1.SVM的数学原理

上一次介绍支持向量机,结果说到 Maximum Margin Classifier ,到最后都没有说“支持向量”到底是什么东西。不妨回忆一下上次最后一张图:

可以看到两个支撑着中间的 gap 的超平面,它们到中间的 separating hyper plane 的距离相等(想想看:为什么一定是相等的?),即我们所能得到的最大的 geometrical margin 。
 而“支撑”这两个超平面的必定会有一些点,试想,如果某超平面没有碰到任意一个点的话,那么我就可以进一步地扩充中间的 gap ,于是这个就不是最大的 margin 了。由于在n
n  维向量空间里一个点实际上是和以原点为起点,该点为终点的一个向量是等价的,所以这些“支撑”的点便叫做支持向量。

很显然,由于这些 supporting vector 刚好在边界上,所以它们是满足: yi(wx+b)=1

(还记得我们把 functional margin 定为 1 了吗?),而对于所有不是支持向量的点,也就是在“阵地后方”的点,则显然有 yi(wx+b)>1 事实上,当最优的超平面确定下来之后,这些后方的点就完全成了路人甲了,它们可以在自己的边界后方随便飘来飘去都不会对超平面产生任何影响。这样的特性在实际中有一个最直接的好处就在于存储和计算上的优越性,例如,如果使用 100 万个点求出一个最优的超平面,其中是 supporting vector 的有 100 个,那么我只需要记住这 100 个点的信息即可,对于后续分类也只需要利用这 100 个点而不是全部 100 万个点来做计算。(当然,通常除了 K-Nearest Neighbor 之类的  Memory-based Learning 算法,通常算法也都不会直接把所有的点记忆下来,并全部用来做后续 inference 中的计算。不过,如果算法使用了 Kernel 方法进行非线性化推广的话,就会遇到这个问题了。Kernel 方法在下一次会介绍。)

当然,除了从几何直观上之外,支持向量的概念也会从其优化过程的推导中得到。其实上一次还偷偷卖了另一个关子就是虽然给出了目标函数,却没有讲怎么来求解。现在就让我们来处理这个问题。回忆一下之前得到的目标函数:

max1ws.t.,yi(wTxi+b)1,i=1,,n

这个问题等价于(为了方便求解,我在这里加上了平方,还有一个系数,显然这两个问题是等价的,因为我们关心的并不是最优情况下目标函数的具体数值):

min12w2s.t.,yi(wTxi+b)1,i=1,,n

到这个形式以后,就可以很明显地看出来,它是一个凸优化问题,或者更具体地说,它是一个二次优化问题——目标函数是二次的,约束条件是线性的。这个问题可以用任何现成的 QP (Quadratic Programming,二次规划) 的优化包进行求解。所以,我们的问题到此为止就算全部解决了,于是我睡午觉去了~ :)

啊?呃,有人说我偷懒不负责任了?好吧,嗯,其实呢,虽然这个问题确实是一个标准的 QP 问题,但是它也有它的特殊结构,通过 Lagrange Duality 变换到对偶变量 (dual variable)的优化问题之后,可以找到一种更加有效的方法来进行求解——这也是 SVM 盛行的一大原因,通常情况下这种方法比直接使用通用的 QP 优化包进行优化要高效得多。此外,在推导过程中,许多有趣的特征也会被揭露出来,包括刚才提到的 supporting vector 的问题。

关于 Lagrange duality我没有办法在这里细讲了,可以参考 Wikipedia 。简单地来说,通过给每一个约束条件加上一个 Lagrange multiplier,我们可以将它们融和到目标函数里去:

L(w,b,α)=12w2i=1nαi(yi(wTxi+b)1)

然后我们令

θ(w)=maxαi0L(w,b,α)

容易验证,当某个约束条件不满足时,例如  yi(wTxi+b)<1 ,那么我们显然有 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值