線性可分支持向量機
SVM學習的思想是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面。
兩類樣本的情況,離分類面最近的樣本到分類面的距離稱爲分類間隔,最優超平面又叫最大間隔超平面。
支持向量就是決定最大間隔超平面的數據點。
一、函數間隔和幾何間隔
超平面wx+b=0 完全由(w,b)決定。
線性可分支持向量機利用間隔最大化求最優分離超平面,這時解是唯一的。
1.1, 函數間隔
在超平面wx+b=0確定的情況下,|wx+b|能夠表示點x到距離超平面的遠近,而通過觀察 wx+b 的符號與類標記y的符號是否一致可判斷分類是否正確,所以,可以用*( y(wx+b) )*的正負性來判定或表示分類的正確性。於此,我們便引出了函數間隔(functional margin)的概念。
函數間隔: 定義超平面(w, b)關於樣本點(xi,yi)的函數間隔爲:
γi^=yi(ω⋅xi+b)
注意到:
選擇分離超平面時,只要成比例地改變w和b, 例如將它們改爲cw和cb(c是常數),超平面並沒有改變,但函數間隔卻成爲原來的c倍。
要選擇最大間隔的超平面,還需要對法向量ω加上某些約束,比如規範化,使得間隔是確定的。
這時函數間隔成爲幾何間隔(geometric margin)。
此時,上述常數c=∣∣ω∣∣1。
怎樣才能使分類間隔最大呢?先計算分類間隔,然後優化求解。
1.2 如何計算幾何間隔呢?
先看一個點到超平面的間隔(也就是距離)。
第一種視角:
考慮二維空間中點到直線的“間隔”:
點(x0, y0)到直線 ax + by + c = 0的距離公式:
d=a2+b2∣ax0+by0+c∣
擴展到 n 維空間中:
dn=a12+a22+...+an2∣a1x1+a2x2+...+anxn+c∣
然後表示成向量形式:
D=∣∣ω∣∣1∣ω⋅x+b∣
其中,∣∣ω∣∣ 是向量w的二範數,w = {w1,w2,w3,…,wn}。
第二種視角:
https://blog.csdn.net/yjn03151111/article/details/46746839
向量知識:ωTω=∣∣ω∣∣2
假設任意一個樣本x,在分類超平面ωTx+b=0上的投影記爲x0,x到分類平面的距離記爲d(d >= 0)。
w是垂直於超平面的法向量,法向量的方向(單位向量)是法向量除以它的模長:∣∣ω∣∣ω,可以得到:
x−x0=d⋅∣∣ω∣∣ω⇒x=x0+d⋅∣∣ω∣∣ω
兩邊同時左乘ωT:
ωTx−ωTx0=d⋅∣∣ω∣∣ωTω=d∣∣ω∣∣d∣∣ω∣∣=ωTx−ωTx0−b+b=ωTx−(ωTx0+b)+b
又由於x0在超平面ωTx0+b=0上,代入得
d=∣∣ω∣∣∣ωTx+b∣ (d >= 0)
第三種視角:
https://www.jianshu.com/p/097ab4f0d4d4
設X1是決策邊界上的一點,那麼任意點X到決策邊界的距離D,是向量X X1長度在垂直於決策邊界方向上的投影,既dist=X−X1=∣∣X−X1∣∣cos(α),alpha爲向量X X1與垂直於決策邊界方向的夾角。
兩個向量相乘等於向量長度的乘積再與向量夾角餘弦值的乘積,由於w是決策邊界的法向量,
所以w與X - X_1 的夾角就是上式中的alpha,於是:
ω(X−X1)=∣∣ω∣∣∗∣∣X−X1∣∣cos(α)∣∣ω∣∣ω(X−X1)=∣X−X1∣∣∗cos(α)=dist
所以dist=∣∣ω∣∣ω(X−X1)=∣∣ω∣∣ωTX−ωTX1
又由於X1在超平面ωTX1+b=0,代入得
dist=∣∣ω∣∣1(ωTX+b)
爲了確保距離非負,我們在ωTX+b外面加一個絕對值符號。
1.3 幾何間隔和函數間隔的關係
記 y∈{−1,1} 爲分類標籤,間隔公式乘以類別標籤,所以∣wTx+b∣=yi(wTx+b),我們可以以此消去上式的絕對值。於是
N 個樣本 Xi 和分類超平面的幾何間隔的表達式:
γ=∥ω∥yi(wTxi+b), i=1,2,...,N
由函數間隔的表達式:γ^=yi(ω⋅xi+b) 可知,
γ=∥ω∥yf(x)=∥ω∥γ^
幾何間隔就是函數間隔除以||w||
二、最大化分類間隔
這裏要解釋 margin=min21∥ω∥2 是怎麼來的。
第一種視角:
根據上面的幾何間隔公式,求解能使間隔最大化的參數w和b,即求解以下優化函數:
maxw,b γ=max{∥w∥yi(wTxi+b)∣∣ i=1,2,...,n}
最大分類間隔的目標函數寫成:
⎩⎪⎨⎪⎧w,bmax ∥w∥y0(wTx0+b)s.t.yi(wTxi+b)≥y0(wTx0+b), i=1,2,...,N
我們令w^=w / y0(wTx0+b),b^=b / y0(wTx0+b) ;
則優化函數可寫成:
1 / ∥w^∥s.t. yi(wTxi+b)≥1, i=1,2,...,N
再用w替換 ω^,並且利用 maxw1 / ∥w∥andmaxw1 / ∥w∥2 等價的原理,可以得到以下下等價的優化問題:
⎩⎪⎨⎪⎧w,bmax ∥w∥21s.t. yi(wTxi+b)≥1, i=1,2,...,N
第二種視角:
對一個數據點進行分類,當這個點和超平面之間的間隔越大的時候,分類正確的把握越大。對於一個包含n個點的數據集,我們可以很自然地定義它的間隔爲所有這n個點的間隔中最小的那個。
要正確劃分訓練數據集{x1,x2,…xn},滿足y=1時,所有點的間隔 γ>=dmin,y=-1時,所有點的間隔 γ<=dmin ,寫成下面的公式:
{(ωTxi+b)/∣∣ω∣∣≥dmin(ωTxi+b)/∣∣ω∣∣≤−dmin∀ yi=1∀ yi=−1
兩邊先除以d, 然後w和b都成比例縮放,令 ω′=dmin∣∣ω∣∣ω,b′=dmin∣∣ω∣∣b 得到:
{(ω′Txi+b′)≥1(ω′Txi+b′)≤−1∀ yi=1∀ yi=−1
只有當xi是決策面 ωTx+b=0 所對應的支持向量時,等於1或-1的情況纔會出現。
此時有 yi(ωTxi+b)=1
代入之前 1.3 中的間隔公式γ=∥ω∥yi(wTxi+b),得到:
支持向量到超平面的距離爲∣∣ω∣∣1,兩側的距離加起來就是∥ω∥2。
我們希望距離越大越好,也就是說∥ω∥1越大越好,同時對於數據集中數據的分佈滿足y(ωTx+b)≥1。因此,我們得到了如下的優化問題:
⎩⎪⎨⎪⎧max∥ω∥1s.t.yi(ωTxi+b)⩾1,i=1,2,...,n