(LXTML笔记)关于支持向量机[二]

下面讨论的是对偶支持向量机,先看引入
(LXTML笔记)关于支持向量机[二]
由上一节我们知道,朴素支持向量机可以通过二次规划来直接解决,但是我们假设x本身是一个d维的向量,然后由于可能有复杂边界,所以我们常常要讲x转换到Z空间上,通过zn=ϕ(xn)来实现,在实际中这里的ϕ往往是升维度的,因为一般是不可线性可分,然后(比如)高维的时候就变成线性可分了,不妨比如如

ϕ(x)=(x12,x1x2,x1x3....xdx1,xdx2,...xd2),

这样的话复杂度(如内积)完全取决于ϕ的形式,这里变成了至少O(d2),这给二次规划带来了巨大的压力,那么此时我们引入SVM的对偶问题

将SVM的复杂度变为和数据的数量相联系

(LXTML笔记)关于支持向量机[二]

和正则化那一节类似地,我们可以考虑如下拉格朗日函数,企图将约束条件去掉,塞进最优化部分。
(LXTML笔记)关于支持向量机[二]

最优化问题变为了

minb,w(maxan0{L(b,w,a)}),

这个操作也是迫使向的,假设有一个(b,w)不满足限制条件,那么就是说yn(wTzn+b)<1,所以容易知道(maxan0{L(b,w,a)})+,而假设全部的(b,w)都满足限制条件的话,那么容易知道(maxan0{L(b,w,a)})=wTw,这和我们原来的最优化目标是一样的。

至此,我们去掉了限制条件,下面引入对偶问题,我们知道对于

minb,w(maxan0{L(b,w,a)}),

固定a的话,我们轻松得到:
(LXTML笔记)关于支持向量机[二]
由于对任何固定a都成立,那么我们对右边的a取最大仍是成立的,我们得到了minmaxmaxmin的结论,如下图
(LXTML笔记)关于支持向量机[二]
如果上面的这个大于等于号是等号就好了,而最优化里有这样的一个结论:
(LXTML笔记)关于支持向量机[二]
对于二次规划问题,如果

  • 凸函数
  • 可分的
  • 限制条件是线性的

那么称上述对偶问题为强对偶问题,存在一组(b,w,a)使得两边都成立,即等号成立,即解左右两边都是一样的。下面我们来看右边的对偶问题能带来什么便利,

整理一下,现在问题变为
(LXTML笔记)关于支持向量机[二]
考虑取到最小值时候的费马点条件,对wb进行求导,然后将这些必要条件放在限制条件上有
(LXTML笔记)关于支持向量机[二]
这样下来,我们可以看到我们已经去掉了”min”了,此时最优化目标仅仅与a有关,总结一下既有
(LXTML笔记)关于支持向量机[二]
上述中的4点展示的是KKT条件(不过略强,实际上可以稍微放松一点条件),第四点是上文中关于

minb,w(maxan0{L(b,w,a)}),

的描述所保证的。
(LXTML笔记)关于支持向量机[二]

依旧采用二次规划的问题的方法即可
(LXTML笔记)关于支持向量机[二]
要还原回原来的(w,b)的话,在求得所有的an后,由我们最优条件的w=anynzn)可以获得w,而由于有an(1yn(wTzn+b))=0,所以我们只需要找到一个非零的an就可以得到我们要的b,特别地我们可以观察到,实际上,整个问题只和非零的an有关系,之前上文中将在“胖边界”上的点成为“支持向量”,而此时我们可以更进一步地加强,称这些对应an0的点称为“支持向量”
(LXTML笔记)关于支持向量机[二]
再次将朴素SVM和对偶SVM放在一起对比 有:
(LXTML笔记)关于支持向量机[二]

这里表面上在计算对偶SVM时候,隐藏了xn的维度d,但是实际上,这部分的计算蕴含在矩阵Q中,计算这个Q并不容易,下一节,将讲到如何应用“核函数”技巧来化简计算量,让SVM能落实到应用中。