2 线性可分SVM与硬间隔最大化
硬间隔最大化指的是当数据完全可分时,支持向量和分离超平面之间的间隔最大化。
2.1 SVM思想
对一个线性可分的二分类数据集:
D=(xi,yi),i=1 ,... ,N
其中x表示输入的特征,y表示label. 我们希望寻找一个决策函数:
y=sign(w⋅x+b)
或者等价于找到超平面,将两类数据点分离开。
w⋅x+b=0
然而,这样的超平面有无数多个。例如,感知机算法中不同的初始值可以求解出不同的解平面,而SVM的目标在于:
从无数个解平面
w⋅x+b=0
中,找到一个最优解平面
w∗⋅x+b∗=0
,使支持向量与超平面之间的几何间距最大。
- 支持向量的定义:与分离超平面间隔最小的几个数据点。
2.2 SVM算法的推导
SVM的目标是找到一个超平面,这个超平面到支持向量的几何间隔最大,那么定义支持向量到超平面的几何间隔为
d
, 那么其实d应该等于最小间隔,即
d=min (d1,...,dN)
. 再者, 因为要分类正确,因此真实值
yi
和预测值
(w⋅xi+b)
的乘积应该大于0.
这样形成初始的svm问题可以表示为:
max w,b d
s.t. d=min (d1,...,dN) (i=1,...,N) (∗)
yi(w⋅xi+b)>0 (∗∗)
上面的问题并不是我们能解决的,需要作一些转换,对(*)式扩大约束: d是最小间隔,那么
d
应该不大于各个样本点 xi 到超平面(w,b)之的几何距离
di
.
- 那么求最大间隔分离超平面可以表示为下面约束最优化问上面这个问题:
max w,b d
s.t. di≥d (i=1,...,N) (1)
yi(w⋅xi+b)>0 (∗∗)
其中,各个样本点 xi 到超平面(w,b)之的几何距离
di=|w⋅xi+b|||w||
=yi(w⋅xi+b)||w|| (2)
定义函数距离
d^
为
d^=|w⋅xi+b|=yi(w⋅xi+b) (3)
对比(2)和(3),得函数距离
d^
与几何距离 d 有以下关系:
d=d^||w|| (4)
max w,b d^||w||
s.t. yi(w⋅xi+b)||w||≥d^||w|| (i=1,...,N) (5)
yi(w⋅xi+b)>0 (∗∗)
由于函数距离的大小并不会影响最佳超平面的位置(相同比例的下的(w,b)平面位置不变),也就是说函数距离
d^
可以设定为任意大小的值,而且设定后不会影响最优超平面的求解,那么取函数距离
d^=1
,(5)式子的约束问题化简后可以写为:
max w,b 1||w||
s.t. yi(w⋅xi+b)≥1 (i=1,...,N) (6)
此时(**)式的条件可以省略。为了把问题转为简单的二次规划问题,继续转化。由于
max w,b 1||w||
与
min w,b 12||w||2
等价,故得到线性可分支持向量机的最优化问题
min w,b 12||w||2
s.t. yi(w⋅xi+b)≥1 (i=1,...,N) (7)
求解这个带不等式约束的凸二次规化问题,便可以得到最佳平面
w∗⋅x+b∗=0
决策函数
y=sign(w∗⋅x+b∗)
记:
- 目标函数是
12||w||2
- 约束条件是函数距离大于1
- 函数距离为1的向量就是支持向量
2.3 经典SVM二次规划问题的求解
上面得到的(7)问题是二次凸规划问题,只需要将其化为二次规划的一般形式,然后利用maltab等工具便可以得到最优解。如下图
参考:
林轩田视频:机器学习技法
李航: 统计学习方法