第6章 支持向量机
1. 间隔与支持向量
训练样本集 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 w^Tx+b=0 wTx+b=0
其中 w = ( w 1 ; w 2 ; . . . w d ) w=(w_1;w_2;...w_d) w=(w1;w2;...wd)为法向量,指向正类,决定了超平面的方向;b为位移项(截距),决定了超平面与原点的距离。可用(w,b)表示。
样本空间中任意一点到超平面(w,b)的距离可写为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=∣∣w∣∣∣wTx+b∣
复习:点 p ( x 0 , y 0 ) p(x_0,y_0) p(x0,y0)到直线 a x + b y + c = 0 ax+by+c=0 ax+by+c=0的距离: d = ∣ a x 0 + b y 0 + c ∣ a 2 + b 2 d=\frac{|ax_0+by_0+c|}{\sqrt{a^2+b^2}} d=a2+b2∣ax0+by0+c∣
假设超平面(w,b)能将训练样本正确分类,则有:
a = { w T x i + b > 0 , y i = + 1 ; w T x i + b < 0 , y i = − 1 (6.1) a = \begin{cases} w^Tx_i+b>0, y_i=+1;\\ w^Tx_i+b<0, y_i=-1 \end{cases} \tag{6.1} a={
wTxi+b>0,yi=+1;wTxi+b<0,yi=−1(6.1)
距离超平面最近的几个训练样本,被称为“支持向量”。
假设支持向量到超平面的距离为r(其他样本点肯定大于r),所以有:
∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ≥ r \frac{|w^Tx+b|}{||w||}\ge{r} ∣∣w∣∣∣wTx+b∣≥r
根据(6.1)对正负两类去绝对值得:
{ w T x i + b ∣ ∣ w ∣ ∣ ≥ r , y i = + 1 ; w T x i + b ∣ ∣ w ∣ ∣ ≤ r , y i = − 1 \left\{\begin{aligned} \frac{w^Tx_i+b}{||w||}\ge{r},\quad y_i=+1;\\ \frac{w^Tx_i+b}{||w||}\leq{r},\quad y_i=-1 \end{aligned} \right. ⎩⎪⎪⎪⎨⎪⎪⎪⎧∣∣w∣∣wTxi+b≥r,yi=+1;∣∣w∣∣wTxi+b≤r,yi=−1
两边同时除以r得:
{ w r T x i + b r ≥ + 1 , y i = + 1 ; w r T x i + b r ≤ − 1 , y i = − 1 其 中 w r = w ∣ ∣ w ∣ ∣ r , b r = b ∣ ∣ w ∣ ∣ r \left\{\begin{aligned} w_r^Tx_i+b_r \ge{+1},\quad y_i=+1;\\ w_r^Tx_i+b_r \leq{-1},\quad y_i=-1 \end{aligned} \right.\\ 其中w_r=\frac{w}{||w||r},\quad b_r=\frac{b}{||w||r} {
wrTxi+br≥+1,yi=+1;wrTxi+br≤−1,yi=−1其中wr=∣∣w∣∣rw,br=∣∣w∣∣rb
线性缩放,例如2x+2y=0与x+y=0是同一条直线。
w r 和 b r w_r和b_r wr和br仍是直线的法向量和截距,用w表示 w r w_r wr,b表示 b r br br
所以得到:
{ w T x i + b ≥ + 1 , y i = + 1 ; w T x i + b ≤ − 1 , y i = − 1 (6.3) \left\{\begin{aligned} w^Tx_i+b \ge{+1},\quad y_i=+1;\\ w^Tx_i+b \leq{-1},\quad y_i=-1 \end{aligned} \right. \tag{6.3} {
wTxi+b≥+1,yi=+1;wTxi+b≤−1,yi=−1(6.3)
合并: y i ( w T x + b ) ≥ 1 y_i(w^Tx+b) \ge 1 yi(wTx+b)≥1
支持向量使等号成立。即 ∣ w T x + b ∣ = 1 |w^Tx+b|=1 ∣wTx+b∣=1
所以,间隔为两个异类支持向量到超平面的距离之和为:
γ = 2 ∗ ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ = 2 ∣ ∣ w ∣ ∣ (6.4) \gamma=2*\frac{|w^Tx+b|}{||w||} = \frac{2}{||w||} \tag{6.4} γ=2∗∣∣w∣∣∣wTx+b∣=∣∣w∣∣2(6.4)
想要找到“最大间隔”的划分超平面,就是要找满足(6.3)中约束的参数w和b,使得 γ \gamma γ最大,即:
max w , b 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . (6.5) \begin{aligned} &\max_{w,b} \;\frac{2}{||w||} \\ &s.t.\;\;y_i(w^Tx_i+b)\ge1, \;i=1,2,...,m. \tag{6.5} \end{aligned} w,bmax∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m.(6.5)
最大化间隔就是使 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣最小化,转换为求解凸二次规划问题,即最小化 ∣ ∣ w ∣ ∣ 2 ||w||^2 ∣∣w∣∣2,乘以 1 2 \frac{1}{2} 21为了求导方便,于是重写(6.5)式:
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . (6.6) \begin{aligned} &\min_{w,b} \; \frac{1}{2}||w||^2 \\ &s.t.\;\;y_i(w^Tx_i+b)\ge1, \;i=1,2,...,m. \tag{6.6} \end{aligned} w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m.(6.6)
这就是支持向量机(SVM)的基本型。
2. 对偶问题
2.1 对偶问题
我们希望求解(6.6)得到大间隔划分超平面所对应的模型
f ( x ) = w T x + b (6.7) f(x)=w^Tx+b \tag{6.7} f(x)=wTx+b(6.7)
其中w和b是模型参数,。(6.6)是一个凸二次规划问题,可以直接用现成的优化计算包求解,这里是使用拉格朗日乘子法得到其对偶问题。具体来说,
- 1、对(6.6)的每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i\ge0 αi≥0,该问题的拉格朗日函数可写为:
L ( w , , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) (6.8) L(w,,b,\alpha) = \frac{1}{2}||w||^2 + \sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) \tag{6.8} L(w,,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))(6.8)
其中 α = ( α 1 ; α 2 ; . . . ; α m ) \alpha=(\alpha_1;\alpha_2;...;\alpha_m) α=(α1;α2;...;αm)。 - 2、令 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对w和b的偏导为0,得:
w = ∑ i = 1 m α i y