1、何为SVM?
① SVM,中文名支持向量机,分类最基本的想法是:在样本空间中找到一个划分超平面,将不同的类别划分开。然而这个划分超平面很多,我们应该去找哪一个呢?如下图所示:
②给定训练样本集D={(x1,y1),(x2,y2),(x3,y3),......,(x1,y1)},Y∈{-1,1},每一个样本(xi,yi)可以看做这个样本的两个特征。
SVM就是去找划分超平面,如何找呢?为了提高鲁棒性,这个平面必须满足,到正负样本点的距离尽可能大(平面到所有正样本点的最小距离要最大化,同理到所有负样本点的最小距离也要最大化)。
2、开始推导SVM
①如何找到这个分割超平面?我们用最简单的集合知识来证明。假设超平面的法向量为W。对于任意一个样本V(x1,x2),那么我们假设向量V在向量W上的投影大于某一值C时,我们认定该样本为正样本,否者为负样本。
-------------------------------------------(1)
通过变换(1)式可以写成下面形式()
-------------------------------------------(2)
刚刚(2)式只是判断样本点在超平面的哪一侧(针对测试集)
但是在训练时,如何体现超平面到正负样本的距离尽可能远?后面统称街宽。
--------------------------------------------(3)
---------------------------------------------(4)
这里我们单侧街宽假设为1(SVM最大间隔假设),为什么是1?其实为任何一个值都行,数学中这样写方便计算。其实伸缩W可以同样让其化为1。
对(3)和(4)两边同时乘对应的
为+1
为-1
训练集需要满足的一个很重要的公式:
------------------------------------(5)
现在就是来求街宽,那么很显然,在街边上的点,满足(5)式取等号的情况下。
那么街宽为在法向量W上的投影,再归一化。
为图上红色的向量。
-------------------------------------------------(6)
将(5)式取等,对于时,
为+1,对于
时,
为-1,可求出
和
-----------------------------------------------------------------------(7)
--------------------------------------------------------------------(8)
将(7)和(8)带入到(6)式,可得
-----------------------------------------------------------------(9)
求Width的最大值,那么通过转换,求的最小值,方便求导。
--------------------------------------------------------------(10)
推导到这一步就已经完成了,就是一个凸二次规划问题,知道约束条件求极值;但是有没有更高效的办法呢?
②拉格朗日乘子法,拉格朗日对偶,KTT条件,SMO
哇,这是个是什么鬼,对于一个学渣而言,一脸懵逼。
拉格朗日乘子法:把原函数和约束条件构成一个新的函数,这样就得到了一个没有约束条件的新函数。
-----------------------------------------(10) 原式
----------------------------------------(5) 约束条件
------------------(11)新式,拉格朗日函数
-----------------------------------(12)若该式存在最大值,那么一定满足原式的约件
为什么?
对于构造的拉格朗日函数,为未知数时,存在最大值那么一定满足约束条件
,否则最大值为无穷大。因此原式可以变换成以下形式。
-------------------------(13)通过变换,有约束的原式变成没有约束的该式
拉格朗日对偶:就是把min 和 max 交换一下
-----------------------(14)拉格朗日对偶
原问题的结果>=对偶问题的结果(弱对偶性,都成立)
证明:下面这个式子是已知的,广义拉格朗日函数对α求最大值,那么就是原式;广义拉格朗日函数对w和b求最小值,一定是小于
,所有满足以下公式。
------------(15)
----------------------------------------------------------------------------------------------(16)
-----------------------------------------------------------------------(17)
原问题的结果=对偶问题的结果(强对偶性,Slater 条件)
若原始问题为凸优化问题,且存在严格满足约束条件的点w,b,这里的“严格”是指约束条件(5)式中的“≥”严格取到“>”,则原始问题和对偶问题同解。也就是说如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。例如,对于某些非凸优化的问题,强对偶也成立。SVM 中的原始问题 是一个凸优化问题(二次规划也属于凸优化问题),Slater 条件在 SVM 中指的是存在一个超平面可将数据分隔开,即数据是线性可分的。当数据不可分时,强对偶是不成立的,这个时候寻找分隔平面这个问题本身也就是没有意义了,所以对于不可分的情况预先加个 kernel 就可以了。(可以通过求解对偶问题来得到原始问题的解)
kTT条件:满足ktt条件,是最优值必须满足的条件(针对拉个lg)
现在主要的是操作上式,可以先计算min,必须满足kkt条件(kkt条件是针对构建的)。
①w和b偏导为0
------------(11)
-----------------------------------------(18)
------------------------------------------------------(19)
②互补松弛条件(就是极值必须满足后面的为0)
-----------------------------------------(20)
③原约束条件
(18)和(19)带入到(11)式中
------------------(21)
-----------------------------(22)
-----------------------(24)原问题转换成这个问题,约束条件是ktt条件
捋一捋思路:
带约束的原问题---->无约束的拉格朗日函数(两者等价)
无约束的拉格朗日函数---->对偶转换(需要证明是强对偶性,才等价)
对偶函数------->满足kkt条件(满足kkt条件的,才是最优解)
其实无论是原广义拉格朗日函数,还是拉格朗日对偶函数(只要满足kkt条件都是最优解,为了方便,进行一步拉格朗日对偶变换)
(例题1)正样本点,
;负样本点
,求线性可分支持向量机。
kkt条件:
根据kkt条件第二个,。
带入原式
对求偏导并令其为0,
在点(1.5,-1)处去极值,但该点不满足约束条件
;所有最小值应该在边界上,当
时,最小值
,当
时,最小值
。于是
在
,
达到最小值,此时的
.
-------------------------
(任意带入一个点即可,
不行,无意义)
3、线性不可分,通过核方法,转换成线性可分。