机器学习(六):SVM及相关问题

来源:互联网 发布:返利网和淘宝什么关系 编辑:程序博客网 时间:2024/06/10 16:37

笔记迎来了机器学习目前最难的一个知识点。
SVM有几大难点,首先是模型最优化的标准,其次是优化问题的变形,最后则是二次规划的求解。
本文参考了很多篇博客,给出笔者自己的理解,从头推导,最后以一个可以手动计算的实例来讲解SVM求解的全过程。
注意本篇博客的目的在彻底理解,弄清每一步的推导,因此可能对于初识SVM的朋友不那么友好。

最大间隔

首先需要明确的是,svm的形式。
和第二节介绍的逻辑回归相似,svm也有相同的函数表现形式:y=wx+b。其中w和x都为向量的形式。
但不同的是,两者的优化目标。

逻辑回归追求的是错误率最小

这句话有一层隐含的意思:逻辑回归本身有对于不可分情况的处理能力,即使有些噪音,逻辑回归也可在不改变其自身属性的情况下得到较好的训练模型。
但支持向量机不同,对于svm家族最基本的分类模型——线性可分支持向量机来说,它只能分类完全可分的样本,并在此基础上最大化分类的间隔。
说白了,两者的优化目标不同。
那么支持向量机的优化目标是什么呢?如下:
间隔
如上图(摘自数据挖掘导论),即寻求不同样本间的最大间隔边缘。

方程的形式

接下来,从数据方面做些推导。

样本点为(xi,yi),其中xi=(xi1,xi2,...,xim),yi1,1

上面对于svm的数据做了基本的形式约束,即二分类问题。
svm的决策边界可以表达如下:

y=wx+b,x=xi

对于二维数据点来说(即m=2)上述形式就是一条直线。
对于二类线性可分的情况,我们总可以找到两条直线:
b1:wx+b=1b2:wx+b=1

使得当yi=1对应的有wxi+b1,当yi=1,有wxi+b1
对于于面的理解,建议动手举例理解。
比如两个样本点((1,1),1),((0,0),-1),这两条直线可以是(1,1)xi1=1(1,1)xi1=1
以上是svm推到的基础,请务必理解。
有了上述的分类边缘,则两个边缘线间的距离就出来:
d=2||w||,||w||w

优化的目标是d最大。
已知:

yi=1对应的有wxi+b1,当yi=1,有wxi+b1

我们可以得到该wx+b满足yi(wxi+b)1
ok到这里,svm优化的最基础形式已经出来了:

minw22s.t. yi(wxi+b)1,i[1,n]

拉格朗日乘子

这里不做介绍,直接使用拉格朗日乘子来求解极值。(在这里有个极大极小的变换,即对偶问题)

L=w22i=1nλi(yi(wxi+b)1)

求导得:
Lw=0=>w=i=1nλiyixiLb=0=>0=i=1nλiyi

将上述两个求导的公式带入L,化简过程如下:
1maxL=12i,jnλiλjyiyjxixji,jnλiλjyiyjxixj+i,jnλi=i,jnλi12i,jnλiλjyiyjxixjs.t. 0=i=1nλiyiλi0

一般讲解svm的资料接到这里为止了。
这里也贴以下讲解上述内容的资料链接:支持向量机SVM推导及求解过程

二次规划及其求解

接下来本节将讲解二次规划一种可行解法:拉格朗日法。
上节最优的优化方程(公式1)的约束已经化简为了标准形式。但目标函数却不是线性的,而是二次的。
这类问题成为二次规划问题,以区别于线性规划。
所幸,二次规划有通常的方法用于求解——拉格朗日法
详见二次规划推导
有兴趣的不妨做推导,需要注意的是,在推导中有些矩阵并不是方阵,因此不能求导。
(有时间我也自己做一遍推导吧。。。有时间的话)

非线性可分——软间隔

即软间隔最大化。仍是贴一张图:
软间隔
图中对于两个异常点Q和P,这两个点不满足yi(wxi+b)1.
在规划问题中,一般的做法也很简单,引入松弛变量ξ.即:

yi(wxi+b)1ξi

则边缘的距离就变为:
d=2ξiξj||w||

注意ξ是变量。
请仔细思考上式,考虑如下:
1. 在添加松弛变量的情况下,如果目标函数保持d=2||w||不变,即分子不减去松弛变量,会有什么问题?
即会出现,可以人为的控制每个ξi使得:对于任意yi=1wxi+b1ξiwxi+b1yi=1wxi+b1ξiwxi+b1
这会出现什么问题?
即所有样本点都在两个分类边缘之中,毫无疑问这种情况属于:模型为了最大化间隔,把所有样本都统一处理了。
2.在添加松弛变量的情况下,如果目标函数d=2ξiξj||w||减去了松弛变量,那么这会导致松弛变量的添加毫无意义。
因此为了这种,我们既需要最大化间隔,有希望能过滤掉部分噪音,因此设置最优化目标为:d=2tξi||w||
颠倒一下就是:d=w22+cξi
理解这一步也很重要。
有了上述的基础,就可以在此使用拉格朗日乘子求解了。
这里也不贴过程了,具体和求解(公式1)的方法相同,唯一的区别在于约束由λi0变为了0λic。过程见链接:求解非线性可分

核函数——非线性支持向量机

具体来说,核函数其实是使用了变换的技术。
笔者不是很有信心能讲解清楚该部分,也还是贴一下资料好了。什么是核以及统计学习方法–李航。
还有一篇支持向量机通俗导论(理解SVM的三层境界)

阅读全文
0 0
原创粉丝点击