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