支持向量機之硬間隔(一步步推導,通俗易懂)

        ML經典算法:支持向量機(1)中對支持向量機的理論知識進行了總結,這裏再進行詳細的數學梳理!
        支持向量機隨着任務的複雜度,主要有三部分知識:硬間隔、軟間隔和核函數,這裏先講硬間隔!

硬間隔(hard-margin)

        硬間隔主要應用在可以完美線性分類的任務中,如下圖所示,「x」和「o」表示兩種類別,共 m m m個樣本:
在這裏插入圖片描述
        現在我們要對其進行分類,那麼有很多條直線可以完全區分這兩類:
在這裏插入圖片描述
        如何找到一條「最優」的直線: g ( x ) = w x + b g(x)=wx+b g(x)=wx+b來分類呢?該直線應該可以正確分類,標籤 y i ∈ ( 1 , − 1 ) y_i \in(1,-1) yi(11)表示兩類,即:

  • w x i + b > = 1 wx_i+b>=1 wxi+b>=1時, y i = 1 y_i=1 yi=1
  • w x i + b < = 1 wx_i+b<=1 wxi+b<=1時, y i = − 1 y_i=-1 yi=1

即: y i ( w x i + b ) > = 1 y_i(wx_i+b)>=1 yi(wxi+b)>=1

        當我們將分類線向兩種類別平移時,可以看到圖中有一些特殊的點,如下圖紅圈中:
在這裏插入圖片描述
        這些特殊的點離分類線最近,分類線再平移就無法完美的分類,這些點稱爲「支持向量」(support vector))。在二維空間中,點 x x x 到直線 g ( x ) = w x + b g(x)=wx+b g(x)=wx+b的距離爲:
在這裏插入圖片描述
        則異類支持向量的距離爲:
在這裏插入圖片描述
        異類支持向量的距離也被稱爲間隔,不難看出,當間隔最大時,該分類線是最優的,魯棒性最強,比如,我們在一座海上大橋上行駛,當然是行駛在最中間是最安全的。
        即找到能滿足式中約束的參數 w w w b b b , 使得 r r r 最大:
在這裏插入圖片描述
        問題可以轉換爲(求平方是爲了後續求導求解方便):
在這裏插入圖片描述


        如何根據上述條件求 w 和 b w和b wb呢?
可以採用拉格朗日乘子法求得對偶問題(有等式約束時求解最優化問題的一種方法):
在這裏插入圖片描述
        得到對偶問題:

在這裏插入圖片描述
        注意: x i x j x_ix_j xixj爲內積,這個很重要,在後續核函數中非常重要,上式可以寫爲:
在這裏插入圖片描述
        現在 w w w 知道了, b b b 怎麼求呢?


        由於對於任意支持向量 ( x s , y s ) (x_s,y_s) (xs,ys) 都有: y s ( w x s + b ) = 1 y_s(wx_s+b)=1 ys(wxs+b)=1,我們可以通過任意支持向量求得 b b b ,但有一個更爲合適魯棒的方法,即通過所有支持向量求b的平均值作爲 b b b
在這裏插入圖片描述


        舉個最簡單的例子,來對硬間隔有個更爲清晰的概念:
        如下圖所示爲一個分類任務,一個樣本爲(1,1,+1),另一個樣本爲(0,0,-1),最後一個值爲標籤:
在這裏插入圖片描述
        利用支持向量機原理進行分類:
        由:
在這裏插入圖片描述
        代入有: Σ α i − 1 / 2 ( Σ α T H α ) = α 1 + α 2 − 1 / 2 ( [ α 1 , α 2 ] ∗ H ∗ [ α 1 , α 2 ] T ) = α 1 + α 2 − 1 / 2 ( α 1 2 + α 2 2 ) = 0 ( 1 ) \Sigma\alpha_i-1/2(\Sigma\alpha^TH\alpha)=\alpha_1+\alpha_2-1/2([\alpha_1,\alpha_2]*H*[\alpha_1,\alpha_2]^T)=\alpha_1+\alpha_2-1/2(\alpha_1^2+\alpha_2^2)=0(1) Σαi1/2(ΣαTHα)=α1+α21/2([α1,α2]H[α1,α2]T)=α1+α21/2(α12+α22)=0(1)

        由: Σ α i y i = α 1 ∗ 1 + α 2 ∗ ( − 1 ) = 0 \Sigma\alpha_iy_i=\alpha_1*1+\alpha_2*(-1)=0 Σαiyi=α11+α2(1)=0得到 α 1 − α 2 = 0 \alpha_1-\alpha_2=0 α1α2=0 α 1 = α 2 ( 2 ) \alpha_1=\alpha_2(2) α1=α2(2)

        由式(1)(2)得 α 1 = α 2 = 1 \alpha_1=\alpha_2=1 α1=α2=1

        則 w = Σ α i y i x i = α 1 ∗ 1 ∗ [ 1 , 1 ] + α 2 ∗ ( − 1 ) ∗ [ 0 , 0 ] = α 1 ∗ [ 1 , 1 ] = [ 1 , 1 ] w=\Sigma\alpha_iy_ix_i=\alpha_1*1*[1,1]+\alpha_2*(-1)*[0,0]=\alpha_1*[1,1]=[1,1] w=Σαiyixi=α11[1,1]+α2(1)[0,0]=α1[1,1]=[1,1]

        將 w w w和(1,1,+1),(0,0,-1)代入得:
                b = 1 / 2 ( − 1 + ( − 1 ) ) = − 1 b = 1/2(-1+(-1))=-1 b=1/21+1=1

        故: g ( x ) = w x + b = x 1 + x 2 − 1 g(x)=wx+b=x_1+x_2-1 g(x)=wx+b=x1+x21