機器學習技法01:線性支持向量機(Linear Support Vector Machine)

本文是臺大林軒田老師機器學習技法課程系列筆記的第一篇。介紹了線性支持向量機。



Linear Support Vector Machine

1.1 Large-Margin Separating Hyperplane

機器學習基石課程中介紹了線性分類算法PLA/pocket,可以實現二分類。即通過一條直線將正負兩類樣本分割開。
在這裏插入圖片描述
實現二分類的直線不只有一條,那麼如何選擇最好的一條呢?這就是本節課要介紹的內容。看一個簡單的例子:

在這裏插入圖片描述
上圖中的三種劃分方式,都可以實現正負兩類樣本的劃分,並且都滿足VC限制的要求(上圖不等式)。如果要憑直覺選擇最好的一條直線的話,會選擇第三條,事實上也是這樣。下面介紹原因。
在這裏插入圖片描述

直觀簡單地解釋,假設已經有訓練樣本 xnx_n (圖中灰色圓圈內部的中心點○和×),圖中黑色直線表示分隔超平面(separating hyperplane),下稱超平面。測試時,使用的是與訓練樣本相近的測試樣本 xx (灰顏色表示)。注意:相近而不是相同是因爲在資料收集過程中會引入測量誤差,所以訓練樣本與測試樣本有差異,這個差異可以通過上圖中灰色圓圈表示,即測試樣本在該圓圈內分佈。

首先看上圖中第三張圖,圖中心的 × 表示訓練樣本,測試樣本在灰色陰影內部分佈,可以看到圖中的超平面(黑色直線)仍然可以將測試樣本很好的分割開,這正是我們期望的,即泛化能力強。

現在看上圖中第一張圖,超平面的離訓練樣本×太近,如果測試樣本與訓練樣本的差異過大,則超平面會把測試樣本錯誤的分類爲○。現在定義上述超平面的特性:對測量誤差的容忍度(tolerance)。容忍度該如何衡量?如果圖中的訓練樣本點(上圖各圖中灰色圓圈內部的中心點)到超平面(黑色直線)的距離越遠,則說明超平面對測量誤差的容忍度越高,在測試樣本上的分類效果也越好,亦即泛化能力越強。

有一點需要注意,在機器學習基石課程中提到,數據集中存在的噪聲(noise)是導致過擬合的主要原因。測量誤差也是一種噪聲。因此,如果超平面對噪聲和測量誤差的容忍度越高,則說明超平面的分類性能越好。更進一步,需要找到容忍度最高的超平面,容忍最多的測量誤差。

在這裏插入圖片描述
現在繼續看,如果要衡量訓練樣本與超平面的距離,可以想象成超平面有“多胖”,即以超平面爲中心線,在其兩側做與之平行的直線,逐漸向兩邊平移,直到“碰到”訓練樣本爲止,稱這兩條直線之間的距離爲邊界(margin),上圖中,右邊的margin比左邊的margin要“胖”,即分類能力好,我們的目標就是要找到最“胖”的線。現在問題就變爲:
在這裏插入圖片描述
其中 ww 表示可以把樣本點分開的分平面,最“胖”的超平面需要滿足兩個條件:一個是把所有樣本點正確分類,二所有樣本點與其的距離最小。以上是直觀地解釋,專業術語來講,fatness其實是margin:
在這裏插入圖片描述
考慮二分類問題(標籤爲±1),預測分類標籤的數學表達式爲 yn=sign(wTxn)y_n = sign(w^Tx_n) ,如果全部樣本點都分類正確則需要滿足 yn(wTxn)>0y_n(w^Tx_n)>0 (同號)此時,目標就變爲最大化margin,其表達式如上圖所示。


這裏補充一點,課程中可能會感到困惑。之前寫文章介紹過這個問題,引用之前文章中的圖片說明:
在這裏插入圖片描述
假設右圖中的白實線(兩條虛線之間的中心線)的方程爲向量 wx+b=0w·x + b = 0。則另外兩條虛線的方程分別爲:wx+b=1w·x + b = 1(左上),wx+b=1w·x + b = -1(右下)。why?

  • 假設左上的虛線方程爲 wx+b=cw·x + b = ccc 爲非零常數)
  • 方程兩邊同時除以 cc,則有:
  • wcx+bc=1\frac{w}{c}·x + \frac{b}{c} = 1
  • wc=w\frac{w}{c} = wbc=b\frac{b}{c} = b,則有
  • wx+b=1w·x + b = 1
  • 同理可推知知 wx+b=0w·x + b = 0wx+b=1w·x + b = -1

其實這裏對兩條虛線中方程中的 11 或者 1-1 可以設爲任意非零常數,兩條虛線的方程互換有沒有問題,只是爲了計算方便。


習題1:

在這裏插入圖片描述
③,將以上兩個點分開的超平面一定過兩點連線的中垂線,即 vv 表示超平面的法向量。該結果可以推廣到 vRdv \in \R^d 的情形。之前的文章裏介紹過超平面的概念,超平面總是比輸入空間少一個維度,比如,二維空間中爲直線,三維空間中爲平面。


1.2 Standard Large-Margin Problem

在這裏插入圖片描述

上一小節中,將目標函數轉化爲上圖所示的情形。本小節首先考慮如何計算 distance(xn,w)distance(x_n, w) 。在之前的機器學習基石課程中,爲了便於公式表示和推導,令 x0=1x_0 =1 ,則 w0w_0 可表示截距。本系列課程中,使用 bb 代替 w0w_0WW 表示 w1,w2,...,wdw_1,w_2,...,w_d,同樣地, x0=1x_0 =1XX 表示 x1,x2,...,xdx_1,x_2,...,x_d。則假設函數變爲:

h(x)=sign(wTx+b)h(x) = sign(w^Tx + b)

下面考慮以下問題:
在這裏插入圖片描述

  • x,xx',x'' 都是超平面 wTx+b=0w^Tx'+ b = 0 中的點,則可以計算得到:wTx=b,wTx=bw^Tx'= − b, w^Tx''= − b

  • xxx'-x'' 表示超平面中的直線的方向向量,若 ww 爲超平面的法向量,則有 wT(xx)=0w^T(x'-x'') =0 成立。

  • 則訓練樣本點 xx 到超平面的距離 dist(x,h)dist(x,h) 爲方向向量爲 xxx-x' 的線段在超平面法向量 ww 上的投影長度。計算公式如下:
    在這裏插入圖片描述
    回顧上文提到的目標函數:
    在這裏插入圖片描述

綜合距離公式和假設函數,可以將距離公式轉化爲:
在這裏插入圖片描述

上式還不易計算,可以進一步簡化。$w^Tx + b = 0 $ 和 3wTx+3b=03w^Tx + 3b = 0 其實是一樣的,亦即對 wwbb 縮放後,得到的超平面是一樣的。爲了將 wwbb 分離,考慮一種特殊的縮放:
在這裏插入圖片描述
則,目標函數變爲:
在這裏插入圖片描述

有了以上假設,則可以省略限制條件:every yn(wTxn+b)>0every \ y_n(w^Tx_n+ b) > 0 ,因爲條件 minn=1,...,N yn(wTxn+b)=1min_{n=1,...,N} \ y_n(w^Tx_n+ b) = 1 成立,則上式一定成立。此時,目標函數變爲最大化 1w\frac{1}{||w||}

條件 minn=1,...,N yn(wTxn+b)=1min_{n=1,...,N} \ y_n(w^Tx_n+ b) = 1 成立,則可推導出所有的樣本點都滿足 yn(wTxn+b)1y_n(w^Tx_n+ b) \ge 1 ,之前的課程中將最大化問題轉化爲最小化問題的步驟是,將模 1w\frac{1}{||w||} 轉換爲向量相乘 wTww^Tw ,同時添加係數 12\frac {1}{2},此時目標函數轉化爲:
在這裏插入圖片描述
至此,求解思路就是在條件 yn(wTxn+b)1y_n(w^Tx_n+ b) \ge 1 成立時,最小化 12wTw\frac{1}{2}w^Tw


習題2:
在這裏插入圖片描述

因爲 x1+x2=1x_1+ x_2= 1 ,可知超平面的法向量爲 (1,1)(1,1) ,根據距離計算公式:

在這裏插入圖片描述

可以得到 x1x_1 到超平面的距離爲 2\sqrt{2}


1.3 Support Vector Machine (SVM)

剛纔導出的問題是一個標準問題。那麼在具體問題中,應該如何計算呢。考慮一個簡單的例子:

在這裏插入圖片描述

假設圖中的四個樣本點的座標和期望輸出(分類標籤)爲:
在這裏插入圖片描述

代入限制條件進行計算,得到包含四個不等式的方程組,(i)(i)(iii)(iii) 聯立,(ii)(ii)(iii)(iii) 聯立,可以得到 w1+1,w21w_1 \ge +1,w_2 \le-1,進一步推導容易得到 w12+w222w_1^2 + w_2^2 \ge 2,轉換成向量相乘(兩列向量相乘,左轉(置)右不轉(置),結果爲實數值。厲害得八達鳥~)的形式,同時,乘以係數 12\frac{1}{2},則可推導出 12wTw1\frac{1}{2}w^Tw \ge1

目標函數爲最小化 12wTw\frac{1}{2}w^Tw ,假設找到的最佳的超平面的法向量的分量分別爲 w1=1,w2=1w_1=1,w_2=-1,求得的偏置 b=1b=-1。則此時邊界 margin(b,w)=12margin(b,w) = \frac{1}{\sqrt{2}},找到的最佳的假設函數矩g爲:

gSVM(x)=sign(x1x21)g_{SVM}(x) = sign(x_1− x_2− 1)

接下來引入支持向量機(Support Vector Machine, SVM)的概念。


Support Vector Machine

在這裏插入圖片描述
可以看到上圖四個樣本點中有三個樣本點能夠決定 marginmargin ,與另一個樣本點無關,這三個樣本點稱爲支持向量,支持向量機就是依靠支持向量來尋找最“胖”的 marginmargin 的算法。更一般地,輸入空間中,能決定 marginmargin 的樣本點,稱爲支持向量。


Solving General SVM

下面介紹 SVM 的一般求解方法。首先回憶目標函數:
在這裏插入圖片描述
這是一個典型的二次規劃問題(quadratic programming, QP),其求解流程如下:
在這裏插入圖片描述
線性硬邊界SVM算法求解步驟如下:
在這裏插入圖片描述

  • 計算轉化爲二次規劃問題中的參數:Q,p,A,c;
  • 根據二次規劃函數,計算 b,wb,w
  • b,wb,w 代入最佳的假設函數矩 gSVMg_{SVM} 求解,得到最佳的分隔超平面。

這裏的“硬邊界(hard-margin)”的意思是說,堅持樣本點一定要分開。線性指的是輸入空間是線性可分的,如果是非線性的,則可以根據之前在迴歸問題中學習的方法,通過特徵轉換函數 zn=Φ(xn)z_n = \Phi(x_n),將非線性問題轉化爲線性問題求解,求解之後再反變換回去。求解SVM非線性問題同樣可以適用。


習題3:

在這裏插入圖片描述


1.4 Reasons behind Large-Margin Hyperplane

本小節從理論上講解了爲什麼這樣求得的SVM分類性能會最好。回顧之前所學的迴歸問題,從最小化 EinE_{in} 出發,爲了防止過擬合,引入了限制條件 wTwCw^Tw \le C ;SVM的目標是最小化向量 ww 的長度 wTww^Tw ,從而使得 Ein=0E_{in} =0。不難看出,SVM和迴歸其實相當於限制條件和目標函數對調,互爲反問題。
在這裏插入圖片描述

可以將SVM看爲限制條件爲 EinE_{in} 的權重衰減正則化(weight-decay regularization, L2)。


Large-Margin Restricts Dichotomies

回顧一下之前學的shatter的概念,shatter就是所有的情況都發生,對於N=1,shatter的情況就是 {ox}\{o,x\};N=2,shatter的情況就是{oo,xx,xo,ox}\{oo,xx,xo,ox\},之後同理。
在這裏插入圖片描述

從另一方面來看,Large­-Margin會限制Dichotomies(二分類)的個數。即margin越“胖”,它可能shtter的點的個數就可能越少。

在之前的機器學習基石課程中提到,Dichotomies與VC Dimension是密切相關的,存在以下關係:

在這裏插入圖片描述

即dichotomies(二分類)的情況越少,則VC dimention越小,算法複雜度就越小,就會有更好的泛化能力。


VC Dimension of Large-Margin Algorithm

接下來推導,爲什麼dichotomies(二分類)的情況越少,則VC dimention越小。如果要關心一個演算法的VC Dimension,就看看這個算法最多可以shatter多少個點。那麼,應該如何計算VC Dimention呢?考慮這樣一種情況:
在這裏插入圖片描述

假如平面上有3個點分佈在單位圓上,如果 ρ=0\rho=0(margin=0),則該“瘦”直線可以很容易將圓上任意三點分開(shatter),即 dvc=3d_{vc} =3。如果 ρ>3/2\rho > \sqrt{3}/2margin>3/2margin> \sqrt{3}/2),則“胖”的線無法將圓上的任一三點全完分開(no shatter),因爲圓上必然至少存在兩個點的距離小於 3\sqrt3,則 dvc<3d_{vc} <3

更一般的情況,當樣本點使用半徑爲 RR 的球體超平面進行劃分時,演算法 AρA_{\rho} 的VC Dimention滿足上圖中的式子。

機器學習基石課程中介紹的 Perceptron算法的 dvc=d+1d_{vc} =d+1,而SVM的 dvcd+1d_{vc} \le d+1,即因爲large-margin的限制,減少了dichotomies的數量,進而減少了 VC Dimention。因此也就降低了模型複雜度,提高了泛化能力。
在這裏插入圖片描述


習題4:
在這裏插入圖片描述


Summary

本節課介紹了線性支持向量機(Linear Support Vector Machine),其核心思想是想辦法降低VC Dimention,進而降低算法複雜度,從而提高泛化能力。
在這裏插入圖片描述


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