《机器学习》——第六章 支持向量机
一、间隔与支持向量(SVM)
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\},y_i \in\{-1,+1\} D={
(x1,y1),(x2,y2),...,(xm,ym)},yi∈{
−1,+1},分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本区分出来
从上图可知,所有的直线都可以将两类样本区分,但是在图中效果最好的是那条红色的线,因为该划分超平面对训练样本的扰动的"容忍"性最好
在样本空间中,划分超平面可通过如下的线性方程来描述 w T x + b = 0 (1.1) w^Tx+b=0\tag{1.1} wTx+b=0(1.1)其中 w = ( w 1 ; w 2 ; . . . ; w d ) w=(w_1;w_2;...;w_d) w=(w1;w2;...;wd)为法向量,决定超平面的方向
b为位移项,决定了超平面与原点之间的距离
样本空间中任意点 x x x到超平面 ( w , b ) (w,b) (w,b)的距离可表示为 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ (1.2) r=\frac{\left|w^Tx+b\right|}{\left||w\right||}\tag{1.2} r=∣∣w∣∣∣∣wTx+b∣∣(1.2)
假设超平面 ( w , b ) (w,b) (w,b)能将训练样本正确分类,即对于 ( x i , y i ) ∈ D (x_i,y_i)\in D (xi,yi)∈D,若 y i = + 1 y_i=+1 yi=+1,则有 w T x i + b > 0 w^Tx_i+b >0 wTxi+b>0;若 y i = − 1 y_i=-1 yi=−1,则有 w T x i + b < 0 w^Tx_i+b <0 wTxi+b<0令 { w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 (1.3) \left\{\begin{array}{c}w^Tx_i+b \geqslant +1,y_i=+1\\w^Tx_i+b \leqslant -1, y_i=-1\end{array} \right\tag{1.3}. {
wTxi+b⩾+1,yi=+1wTxi+b⩽−1,yi=−1(1.3)
- 支持向量:如上图所示,距离超平面最近的这几个训练样本点使得满足公式(1.3)的称为支持向量
- 间隔:两个异类支持向量到超平面的距离之和为 γ = 2 ∣ ∣ w ∣ ∣ (1.4) \gamma=\frac{2}{\left||w\right||}\tag{1.4} γ=∣∣w∣∣2(1.4)称为间隔
支持向量机的思想就是要找到公式(1.4)中的最大间隔即寻找满足公式(1.3)中的约束条件 w w w和 b b b使得 γ m a x \gamma_{max} γmax即 max w , b 2 ∥ w ∥ s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , . . . , m (1.5) \underset{w,b}{\max}\frac{2}{\left\| w \right\|}\\s.t. y_i\left( w^Tx_i+b \right) \geqslant 1,i=1,2,...,m\tag{1.5} w,bmax∥w∥2s.t.yi(wTxi+b)⩾1,i=1,2,...,m(1.5)
从公式(1.5)可知,想要求出最大化间隔,则针对于目标函数来说,需要最大化 ∣ ∣ w ∣ ∣ − 1 \left||w\right||^{-1} ∣∣w∣∣−1,根据命题的等价性,以及方便求解性,于是可以等价的转化为求 ∣ ∣ w ∣ ∣ m i n 2 \left||w\right||^2_{min} ∣∣w∣∣min2,于是可以将公式(1.5)可以重新改写成 m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , . . . , m (1.6) \underset{w,b}{min}\frac{1}{2}\left||w\right||^2\\ s.t. y_i(w^Tx_i+b)\geqslant1,i=1,2,...,m\tag{1.6} w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)⩾1,i=1,2,...,m(1.6),这就是支持向量机(support Vector machine)的基础模型
二、对偶问题
通过求解公式(1.6)来求出最大化间隔划分超平面所对应的模型是 f ( x ) = w T x + b (1.7) f(x)=w^Tx+b\tag{1.7} f(x)=wTx+b(1.7)通过分析可知本身是一个凸二次规划问题,但是可以根据问题具有对偶问题(dual problem)来求解该模型,显得更为方便便捷
对公式(6.6)使用拉格朗日乘子法,可以得出其对偶问题,即根据每一条的约束条件均添加一个拉格朗日乘子 α i ⩾ 0 \alpha_i\geqslant0 αi⩾0,该问题的拉格朗日函数可写成 L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) (1.8) L(w,b,\alpha)=\frac{1}{2}\left||w\right||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b))\tag{1.8} L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))(1.8)其中 α = ( α 1 ; α 2 ; . . . ; α m ) \alpha=(\alpha_1;\alpha_2;...;\alpha_m) α=(α1;α2;...;αm),让 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)分别对 w w w和 b b b进行求偏导可得
w = ∑ i = 1 m α i y i x i (1.9) w=\sum_{i=1}^{m}\alpha_iy_ix_i\tag{1.9} w=i=1∑mαiyixi(1.9)
0 = ∑ i = 1 m α i y i (1.10) 0=\sum_{i=1}{m}\alpha_iy_i\tag{1.10} 0=i=1∑mαiyi(1.10)
将式(1.9)代入(1.8)中,既可以将 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)中的 w w w和 b b b消去,同时考虑(1.10)的约束条件,最终得到的式(1.6)的dual problem是 m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 , α i ⩾ 0 , i = 1 , 2 , . . . , m (1.11) \underset{\alpha}{max}\sum_{i=1}{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_{i}^{T}x_j\\ s.t. \sum_{i=1}^{m}\alpha_iy_i=0,\alpha_i \geqslant0,i=1,2,...,m\tag{1.11} αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.i=1∑mαiyi=0,αi⩾0,i=1,2,...,m(1.11)
求解出 α \alpha α后,求出 w w w和 b b b即可得到模型 f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b (1.12) \begin{aligned}f(x)&=w^Tx+b\\&=\sum_{i=1}^{m}\alpha_iy_ix_{i}^{T}x+b\end{aligned}\tag{1.12} f(x)=wTx+b=i=1∑mαiyixiTx+b(1.12)在上述过程中需要满足KKT条件,即要求 { α i ⩾ 0 ; y i f ( x i ) − 1 ⩾ 0 ; α i ( y i f ( x i ) − 1 ) = 0 (1.13) \left\{\begin{array}{c}\alpha_i \geqslant 0; \\ y_if(x_i)-1 \geqslant 0; \\ \alpha_i(y_if(x_i)-1)=0\end{array}\right\tag{1.13}. ⎩⎨⎧αi⩾0;yif(xi)−1⩾0;αi(yif(xi)−1)=0(1.13)对于训练样本 ( x i , y i ) (x_i,y_i) (xi,yi),总有 α i = 0 \alpha_i=0 αi=0或 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1若 α i = 0 \alpha_i=0 αi=0,则该样本不会出现在式(1.12)中,若 α i > 0 \alpha_i > 0 αi>0,则必定会有 y i f ( x i ) = 1 y_if(x_i)=1 yif(xi)=1,所对应的样本点位于最大间隔的边界上是一个支持向量
使用SMO算法进行求解,思路如下
先固定 α i \alpha_i αi之外的其他所有参数,然后求KaTeX parse error: Undefined control sequence: \alpah at position 1: \̲a̲l̲p̲a̲h̲_i上的极值,由于存在约束条件 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i=0 ∑i=1mαiyi=0,若固定 α i \alpha_i αi之外的其他变量,则 α i \alpha_i αi可由其他变量导出,于是SMO每次选择两个变量 α i \alpha_i