【機器學習】11:支持向量機原理1:基礎原理

一、回顧:邏輯迴歸

邏輯迴歸原理裏,損失costcostxx的關係如下:
在這裏插入圖片描述
在結合下左圖Sigmod函數分析可得:

  • y=1y=1是正例的情況下,cost(y=1)=log(hθ(x))cost(y=1)=-log(h_θ(x))xx越大,costcost越小;
  • y=0y=0是負例的情況下,cost(y=0)=log(1hθ(x))cost(y=0)=-log(1-h_θ(x))xx越小,costcost越小;

在這裏插入圖片描述在這裏插入圖片描述
從上右圖解釋就是:邏輯迴歸在分類的過程中,會考慮每個樣本點到分割線的距離——離分割線越遠的點,其提供的損失costcost越小,而總體的損失是等於每個樣本點提供的損失之和;換言之:邏輯迴歸是考慮整體/全局的損失,每個樣本都對分割線的參數構成影響

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

二、支持向量機介紹:

而支持向量機,它就只考慮支持向量點的損失,支持向量以外的點(也叫超越幾何間隔的點)的損失規定爲0,不對總體損失構成影響
例如下圖:中間的黑實線相當於分割線,左右與之平行的兩條虛線構成中間的幾何間隔,兩條虛線上的樣本點就是支持向量點,幾何間隔外的樣本點的損失cost=0cost=0
在這裏插入圖片描述
支持向量機是一種二分類模型,其基本模型定義爲特徵空間上的間隔最大化的線性分類器;其學習策略便是使分割面的間隔最大

-----------------------------------------------------------------------------------------------------

2.1、線性可分數據、線性不可分數據:

其數據也大多分成兩類:

  • 線性可分的數據,線性可分的數據使用超平面類型的邊界
  • 線性不可分的數據,線性不可分的數據使用超曲面類型邊界;

對於來自兩類的一組數據能用一個線性函數正確分類的,稱是線性可分的數據。線性函數可以是低維上的直線,也可以是高維上的平面,例如下圖即爲線性可分數據:
在這裏插入圖片描述
而線性不可分的數據大致有兩種情況導致的:

  1. 樣本的本質是線性可分的,但由於部分噪聲的影響,導致線性不可分,這種情況的解決方法是:使用軟間隔
  2. 樣本的本質就是線性不可分的,這種情況的解決方法是:使用核函數,將線性不可分的數據轉化成線性可分的數據

例如下圖即爲線性不可分數據:
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

三、支持向量機原理:

我們怎樣才能確定出一個最優的劃分直線/超平面f(x)=wTx+bf(x)=w^Tx+b呢?也就是說怎樣通過訓練數據學習到最優的wwbb
在這裏插入圖片描述
根據支持向量機的學習目標:要使分割面的間隔達到最大。從下圖可以發現:1圖的分割方式不能起到分類的效果,2、3的分類面間隔沒有4的大;所以支持向量機就是在尋找最大間隔的分割線;

而分割線wTx+b=0w^Tx+b=0中的wwbb只和支持向量點有關,也就是說最大間距也是和支持向量點有關;
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------

3.1、定義中間間隔:

我們以下圖y=1y=-1(負例)中的兩條綠色直線L1L1L2L2爲例,方程各爲wTx+b=L1w^Tx+b=L_1wTx+b=L2w^Tx+b=L_2;根據幾何原理數值上有L1>L2L_1>L_2,再乘以其標籤y=1y=-1,則yL1<yL2yL_1<yL_2,可得到的結論是——yLiyL_i越大,說明偏離中心的距離越遠;
在這裏插入圖片描述
於是我們將中間間隔DD定義爲如下:(DD等於上圖MarginMargin的一半)

  • D=y(wTx+b)=yf(x)D=y(w^Tx+b)=yf(x)yy \in {-1,1}

其中wTx+b=f(x)w^Tx+b=f(x)是直線方程,xx是任意樣本點座標,yy是座標所對應的標籤(二維平面可簡單理解爲:樣本標籤y*y軸截距)

有了上面這個中間間隔DD的定義,我們就可以將支持向量點、非支持向量點分開考慮,以便更好的確定出支持向量機的算法原理。

-----------------------------------------------------------------------------------------------------

3.2、考慮支持向量點到分割線的距離關係

支持向量點會確定出分割線的參數。假設已知支持向量點確定出來的分割線方程就爲f(x)=wTx+bf(x)=w^Tx+b,則支持向量點X=(x1,x2,...)X=(x_1,x_2,...)到分割線的垂直距離LL爲:
在這裏插入圖片描述
w2||w||_2是該分割線方程的L2L-2範數,上公式其實就是範數形式的點到直線的距離公式;

-----------------------------------------------------------------------------------------------------

3.3、考慮其他樣本點到分割線的距離關係

根據上面中間間隔DD的定義,其他樣本點X=(x1,x2,...)X=(x_1,x_2,...)到分割線的距離都會滿足:y(i)(wTx(i)+b)Dy^{(i)}(w^Tx^{(i)}+b)≥D

-----------------------------------------------------------------------------------------------------

3.4、SVM的優化策略:(重要)

根據上面3.2、3.3提及的距離關係,支持向量機的優化策略就是:

  • 在每一個樣本點都滿足y(i)(wTx(i)+b)Dy^{(i)}(w^Tx^{(i)}+b)≥D的前提下,使支持向量點到分割線的垂直距離LL最大化

數學表達式即可定義爲下左式:
在這裏插入圖片描述
上左式需要轉化,計算轉化的過程如下:

  1. 由於DD是一個不小於0的係數,所以——在目標函數中不對LL的變化構成影響,可以去掉;在約束函數中DD也可作爲分母除進左式進行係數縮放,於是就變成上中式;
  2. 分割線方程的L-2範數也是一個不小於0的係數,所以——求目標函數的最大值也相當於求目標函數倒數的最小值(1/2“1/2”“平方”的操作是方便後面求導),於是最終式就變成上右式

於是之前的支持向量機的優化問題就轉化爲一個普通的凸優化問題,得到的上右式。

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

四、支持向量機求解:(重要)

總括:支持向量機的求解過程一共可分爲四步:

  1. 定義最大間隔,得到支持向量機的數學表達式(上面第三部分最後得到的式子);
  2. 用拉格朗日乘子法轉化數學表達式;
  3. 對偶問題處理;
  4. SMO優化算法(序列最小最優化算法)求解wwbb,得到超平面方程。

我們在第三部分最後得到的數學表達式的基礎上,詳細介紹2、3、4步是如何實現的;

-----------------------------------------------------------------------------------------------------

4.1、拉格朗日乘子法

拉格朗日乘子法的主要思想:是引入新參數 (即拉格朗日乘子),將約束條件函數與目標原函數聯繫到一起,使能配成與變量數量相等的等式方程,從而求出得到目標原函數極值的各個變量的解。定義如下:
在這裏插入圖片描述
所以根據以上定義,經過轉化後得到的拉格朗日乘子式即爲:
在這裏插入圖片描述
注意:上圖的拉格朗日乘子式L(w,b,α)L(w,b,α)的自變量分別是wwbbαα

研究可以發現,由於樣本集任意一點都會滿足約束條件:yi(wTxi+b)1y_i(w^Tx_i+b)-1的值大於等於0,加上α>0α>0,所以上面得到的拉格朗日乘子式的減數是一個不小於0的值,所以L(w,b,α)L(w,b,α)是存在最大值的,且最大值就等於:

  • maxL(w,b,α)=maxL(w,b,α)=121 \over 2(w2)2(||w||_2)^2

而我們的目標是求min(min(121 \over 2(w2)2)(||w||_2)^2),也就是說需要將上等式左右取minmin,即求取:minmaxL(w,b,α)minmaxL(w,b,α)

-----------------------------------------------------------------------------------------------------

4.2、對偶問題研究

在這裏插入圖片描述
注:自變量分別是wwbbαα

上面的pdp^*、d^*就是互爲對偶。在對偶問題中,一般有pdp^*≥d^*,當在滿足KKT條件時有:p=dp^*=d^*

(補充知識:有同學會問:爲什麼非要做一次對偶問題研究呢?簡單說就是:使數據降維,方便計算;具體原因可以詳見這裏

現在我們求解的目標就由求解pp^*轉成求解d=maxminL(w,b,α)d^*=maxminL(w,b,α)了,拆分後就是先求minmin再求maxmax

-----------------------------------------------------------------------------------------------------

第一步:求解minL(w,b,α)minL(w,b,α),其中自變量是wwbbαα是常數
在這裏插入圖片描述
要求解LL關於wwbb的最小值,我們需要對w,bw,b求偏導令其等於零,得到:
在這裏插入圖片描述
將這兩個偏導結果帶回上L(w,b,α)L(w,b,α)式中,得到:
在這裏插入圖片描述
-----------------------------------------------------------------------------------------------------

第二步:求解maxminL(w,b,α)maxminL(w,b,α),其中自變量是ααx,yx,y是常數
根據第一步的結果,問題就轉化爲如下規劃問題:
在這裏插入圖片描述
現在我們需要求以αα爲自變量的極大值,即是關於對偶變量的優化問題,由凸二次規劃的性質就能保證最優的向量αα是存在的;

-----------------------------------------------------------------------------------------------------

4.3、SMO優化算法(序列最小最優化算法)

這個算法就不在這裏展開說明了,有興趣的同學自己去了解吧,要講起來太複雜了,本篇篇幅已經夠長了
根據SMO優化算法:
在這裏插入圖片描述

  • αα是4.2解出來的最優解,
  • yiy_iii點的類別標籤,1或者-1,
  • xix_iii點的座標數據,矩陣式;

根據上面公式就可求出wwbb,即最優超平面的參數;

-----------------------------------------------------------------------------------------------------

以上便是SVM的主要算法過程,下面附帶一個例子加深瞭解

-----------------------------------------------------------------------------------------------------

4.4、舉例

例:我們有三個訓練數據,正例點x1=(3,3)Tx_1=(3,3)^Tx2=(4,3)Tx_2=(4,3)^T,負例點x3=(1,1)Tx_3=(1,1)^T,試求最大間隔的超平面方程。

解:設超平面的方程爲:wTx+b=0w^Tx+b=0,因爲這是個二維求解,所以ww的維度等於2,所以更一般的超平面方程的表達式爲:
在這裏插入圖片描述
根據3.4介紹,再帶入正例、負例的座標得到的數學規劃表達式如下:
在這裏插入圖片描述
再根據4.2第二步介紹,轉化後的規劃問題即爲:
在這裏插入圖片描述
註釋:解釋上面MaxMax式子是如何通過4.2第二步得到的——在本章節最後有補充)

α1+α2=α3α_1+α_2=α_3帶入上面的目標函數,得到只關於α1α_1α2α_2的函數:
在這裏插入圖片描述
我們需要求上式的最大值,所以對α1α_1求偏導令其偏導等於零,即:8α110α2+2=0-8α_1-10α_2+2=0
由於在約束條件α1α2α30α_1、α_2、α_3≥0的情況下有α1+α2=α3α_1+α_2=α_3,所以上式只有兩組解:要麼α1=0α_1=0,要麼α2=0α_2=0
將這兩組解回代到拉格朗日乘子式可以發現:α1=0α_1=0的值要小於α2=0α_2=0的值,所以上式的最優解爲:α2=0α_2=0α1=α3=α_1=α_3=141 \over4
將最優解帶入4.3介紹的SMO優化算法中得到:w1=w2=w_1=w_2=121 \over2b=2b=-2;(w=α1y1x1+α2y2x2+α3y3x3w=α_1y_1x_1+α_2y_2x_2+α_3y_3x_3
所以最大間隔的超平面方程爲:121\over2x1x_1+121\over2x2x_2-2=0,支持向量爲x1x3x_1、x_3

-----------------------------------------------------------------------------------------------------
補充:MaxMax式子是如何通過4.2第二步得到?——以42α1α242α_1α_2爲例:
在4.2第二步,MaxMax式子的減數部分爲如下,xx是對應的樣本點座標,yy是樣本點對應的標籤;
在這裏插入圖片描述
42α1α242α_1α_2來自於兩部分:i=1,j=2i=1,j=2i=2,j=1i=2,j=1

i=1,j=2i=1,j=2部分:i=2,j=1i=2,j=1部分同理)

  • i=1,j=2i=1,j=2,上式即爲:α1α2y1y2x1Tx2α_1α_2y_1y_2x^T_1x_2
  • y1=1y_1=1y2=1y_2=1y1y2y_1*y_2決定符號爲正;
  • x1=(3,3)Tx_1=(3,3)^Tx2=(4,3)Tx_2=(4,3)^T,矩陣相乘x1Tx2x^T_1x_2=34+33=213*4+3*3=21

-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------

後記:

【線性可分】的支持向量機原理大致如上,介於本篇篇幅過長,【線性不可分數據】的處理方法,例如:軟間隔、核函數在我的下一篇博客:【機器學習】11:支持向量機原理2:軟間隔與核函數處理方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章