您的位置:首页 > 其它

机器学习第十课:支持向量机SVM(一)线性可分(硬间隔)SVM

2016-09-26 09:19 225 查看
这段内容太多,本想不写。但实在太基础了。本节内容主要理论来源于李航《统计学习方法》。从今天开始,我开始看第三遍了。


推荐首先结合这篇 机器学习第四课:SVM前置知识点(凸优化问题)看

http://blog.csdn.net/dajiabudongdao/article/details/52462942

支持向量机SVM是一种二类分类模型。支持向量机的学习策略就是间隔最大化,可形式化求解一个凸二次规划问题。

一、线性可分支持向量机

线性可分,简单点说, 存在一条线性分割,可以将集合的正标识与负标识分割开来。

1.函数间隔

1.1 简介

对于给定的训练集T和超平面(w,b)。定义超平面(w,b)关于样本点(xi,yi)的(不带符号的)函数间隔为γi^=yi(wxi+b),函数间隔向量化为

γ^=y(wx+b)

超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点的函数间隔最小值(注:到目前为止还没考虑符号问题)。

γ^=mini=1,...,Nγi^

这个东西我建议结合我们学过的初等几何的知识来看。

一般讲到这里,函数间隔值需要单位化。因为一旦(w,b)成倍增长变为(2w,2b)之类的如果按照原算法,函数间隔随之增长。这很合理合理,但是我们关注的不是绝对距离而是彼此相对距离,而不是关注吃了“增强合剂”或套了“露露大招”的等比例放大数据集。单位化规范化的函数间隔成为几何间隔。这就是一个有方向的值。

γ^=w∥w∥xi+b∥w∥

这好像很熟悉?看看我们初中点(x0,y0)到直线Ax+By+C=0的距离公式吧!

d=|Ax0+By0+C|A2+B2−−−−−−−√

蜜汁一致。。。。。

1.2函数间隔再推导一次

上次推导是什么意思?其实本质就是初中那点东西。


初中的直角坐标系中直线表示:Ax+By+C=0,设x=(x;y),w=(A,B)(注,这里x是列向量),则原公式可以化为(wx+C=0)

则点到直线公式可以写成d=|wx+C|w2√,这就是γ=w∥w∥xi+b∥w∥。

恩?什么地方不一样?对!前者有绝对值。绝对值的作用是对方向进行封印,前面说过,我们定义的距离是有方向的(因为正方向一边一类,负方向一边一类),所以这里没有绝对值。

那么问题来了。在算距离误差时候,我们也会只考虑正值。我们是不是也该调和下。我们第一反应自然是绝对值。但是,这种绝对值的写法难处理,非常不适合我们的需求。于是我们换了一种更通用的技巧:

因为样本点(xi,yi)中y仅可取{-1,1},所以带不符号的几何距离可以这么写。

γ^=yi(w∥w∥xi+b∥w∥)

1.2间隔最大化

我觉得在思考的时候以点到直线距离的二维思路来进行N推演是比较靠谱的。那么,我们回想下我们的最终目的是什么??当然是找到下图中间这条实线!这样的直线很多,我们的任务就是找到尽可能大的确信度。这就引出了间隔最大化。(直观的几何解释就是那最大化那条宽宽的Gap)



最大间隔平面变为最优化几何距离γ的问题。

注意:为了方便后期运算,下面的参数没有用向量的写法。


⎧⎩⎨⎪⎪⎪⎪maxw,bγs.t.:yi(w∥w∥xi+b∥w∥)⩾γ,i=1,2,...,N

因为在整理范围内等比例放大缩小对此问题并不影响,所以我们可以这样令1||w||=γ,则上面可以改写成这样形式

⎧⎩⎨minw,b∥w∥s.t.:yi(wxi+b)−1⩾0,i=1,2,...,N

为了方便求导,||w||前面可以加上1/2。这就变成我们常见的问题SVM目标函数。

⎧⎩⎨⎪⎪minw,b12∥w∥2s.t.:yi(wxi+b)−1⩾0,i=1,2,...,N

2.目标函数求解

⎧⎩⎨⎪⎪minw,b12∥w∥2s.t.:−(yi(wxi+b)−1)⩽0,i=1,2,...,N

这里但额目标函数满足了KKT条件。这就是SVM巧妙的东西,也是核心思想的东西。这关乎到最大间隔的存在性与唯一性证明与求解方法。如果想深究建议直接看我这里的内容:

http://blog.csdn.net/dajiabudongdao/article/details/52462942

满足KKT条件的话,那么他的对偶形式肯定有解了。

我们直接把他的对偶形式写出来吧!对偶形式怎么写?

1.先用拉格朗日乘数法搞一下。

因为是求最小值,所以为要最小化拉格朗日函数

L(w,a,b)=12∥w∥2−∑i=1Nαiyi(wxi+b)+∑i=1Nαi

求偏导吧!!

∂wL(w,b,a)=w−∑i=1Nαiyixi=0∂bL(w,b,a)=∑i=1Nαiyi=0

得:

w=∑i=1Nαiyixi

我们要最小化拉格朗日函数,代入得原目标函数的对偶函数

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪minα12∑i=1N∑j=1Nαiαjyiyj(xixj)−∑i=1Nαi∑i=1Nαiyi=0αi⩾0,i=1,2,...,N

根据凸优化问题肯定有解,我们求得最优解的α=(α1,α2,...,αN)T向量。

我们就可以求出w与b了。。

w=∑i=1Nαiyixib=yi−∑i=1Nαiyi(xi∗xj)

这里有个问题对于不是支持向量点(xi,yi),αi=0,那么我们就得到的结果就仅仅与支持向量点有关了。这么说来他与逻辑斯蒂很大的不同就是不用管那么多不重要的点。

3.问题集中解答

3.1硬间隔是什么鬼?

上面所说的线性可分的情况都是硬间隔。如果近似线性可分的话我们需要加一个松弛变量。这种看似“马马虎虎”的行为我们称之为“软间隔”。这么说软间隔的弹性较大,硬间隔的弹性较小。

3.2什么是支持向量?

就是一侧边界上点组成的向量。支持就是边界支撑的意思。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svm 机器学习 李航 KKT
相关文章推荐