支持向量機SVM原理及實踐(一)

 一、什麼是支持向量機 SVM

 支持向量機( Support Vector Mavhine )簡稱 SVM ,是一種二類分類模型。SVM 的目標是找到一個超平面,然後找到各個分類離這個超平面最近的樣本點,使得這個點到超平面的距離最大化,即使直線兩端的數據間隔最大。與分割超平面距離最近的樣本稱爲支持向量,下圖中虛線是間隔邊界,確定最終的分割超平面只有支持向量起作用,其他樣本點不起作用,所以稱爲支持向量機。

這個超平面用 f\left ( x \right )=w^{T}\cdot x+b,f(x)>0 時,y=1,爲正類,如圖中圓圈表示;f(x)<0 時,y= - 1,爲負類,如圖中星星表示;

y 爲什麼用+1,-1表示?

1.對於二類問題,y 只要取兩個任意值就行;

2.支持向量機 SVM 去解二類問題,目標是求一個特徵空間的超平面,而超平面分開的兩類對應於超平面的函數值的符號是剛好相反的。上述兩種考慮,爲了使問題足夠簡單,我們取 y 的值爲 1 和 -1。

接下來問題是尋找最大間隔的超平面

二、函數間隔和幾何間隔

在分割超平面 w*x+b=0 確定的情況下,|w*x+b| 可以表示樣本點距離超平面的遠近。當 w*x+b 與樣本標籤 y 同號時,表示分類是正確的,所以使用 y(w*x+b)來表示分類的正確性和確信度,這是函數間隔的定義。

1.函數間隔:

\small \hat{\gamma }=y\left ( w^{T}\cdot x+b\right )=yf\left ( x \right )

超平面 (w,b) 關於訓練數據集 T ( m 個)中所有樣本點 (xi,yi) 的函數間隔最小值(其中,x 是特徵,y 是結果標籤,i 表示第 i 個樣本),便爲超平面 (w, b) 關於訓練數據集 T 的函數間隔:

\small \hat{\gamma }=min\hat{\gamma _{i}}

函數間隔可以表示分類預測的正確性和確定性,但是,當 w 和 b同時放大對於超平面沒有任何改變,函數值f卻變大。爲解決這個問題我們對法向量w加約束條件,從而引入幾何函數。

2.幾何函數:

假定對於一個點 x ,令其垂直投影到超平面上的對應點爲 x0 ,w 是垂直於超平面的一個向量,\small \gamma爲樣本x到超平面的距離,如下圖所示,

由平面幾何知識得:

\small x=x_{0}+\gamma \frac{w}{\left \| w \right \|}

因爲x0在超平面上,所以f(x0),即 \small w^{T}x_{0}=-b,對式 \small x=x_{0}+\gamma \frac{w}{\left \| w \right \|} 左右兩邊同乘\small w^{T},由 \small w^{T}w=\left \| w \right \|^{2} 得:

\small \gamma =\frac{w^{T}x+b}{\left \| w \right \|}=\frac{f\left ( x \right )}{\left \| w \right \|}

爲了得到\small \gamma的絕對值,對上式同乘以y,使 \small \gamma\cdot y=\tilde{\gamma } ,則幾何間隔定義爲:

\small \tilde{\gamma }=\gamma y=\frac{\tilde{\gamma }}{\left \| w \right \|}

由上式知幾何間隔就是函數間隔除以 ||w||,函數間隔 y*(wx+b) = y*f(x) 實際就是 |f(x)|,幾何間隔纔是直觀上的點到超平面的距離。

3.  最大間隔

對一個數據點進行分類,當超平面離數據點的“間隔”越大,分類的確信度也越大。所以,爲了使得分類的確信度儘量高,需要讓所選擇的超平面能夠最大化這個“間隔”值。這個間隔就是下圖中的 Gap 的一半。

在函數間隔中超平面不變的情況下,等比例地縮放 w 的長度和 b 的值,這樣可以使 f 得的值任意大。但幾何間隔因爲除\small \left \| w \right \|,使得在縮放 w 和 b 的時候幾何間隔的值是不會改變的,它只隨着超平面的變動而變動,所以最大間隔分類超平面中的“間隔”指的是幾何間隔。

則幾何間隔最大化的目標函數爲:

\small max\frac{\hat{\gamma }}{\left \| w \right \|}

同時滿足:\small y^{i}\left ( W\cdot X^{i}+b \right )\geq \hat{\gamma },i=1,2,...,m
可以令 \small \hat{\gamma }=1,則可轉化爲最小優化問題爲: (由於求 1/||w|| 的最大值相當於求 \small \frac{1}{2}\left \| w \right \|^{2}的最小值)

\small min \frac{1}{2}\left \| W \right \|^{2}   

\small \small s.t. y^{i}\left ( W\cdot X^{i} +b\right )\geq 1,i=1,2,...,m

三、分割超平面的求解

在前面我麼們所有的數據集其樣本都是可分類的,即存在分割超平面。但現實中的數據集,總存在着部分的特異點,只有將其去除纔可線性可分。我們爲了解決這個問題,對每個樣本引入鬆弛變量 \small \xi _{i}\geq 0。每個鬆弛變量都有一個代價 C,優化目標變爲:

\small \underset{w,b,\xi }{min} \frac{1}{2}\left \| W \right \|^{2}+C\sum_{i=1}^{m}\xi _{i}

\small s.t. y^{i}\left ( W\cdot X^{i} +b\right )\geq 1-\xi _{i}, \xi _{i}\geq 0 ,i=1,2,...,m

對前面求出的最小優化問題我們使用拉格朗日乘數法求解,將其轉化爲無約束條件的問題,即:

\small L\left ( w,b,\xi ,\alpha ,\beta \right )=\frac{1}{2}\left \| w \right \|^{2}+C\sum_{i=1}^{m}\xi _{i}-\sum_{i=1}^{m}\alpha _{i}\left ( y^{i} \left ( w^{T}x^{i} +b\right )-1+\xi _{i}\right )-\sum_{i=1}^{m}\beta _{i}\xi _{i}

其中\small \alpha =\left ( \alpha _{1} ,\alpha _{2},...,\alpha _{m}\right ),\beta =\left ( \beta _{1},\beta _{2},...,\beta _{m} \right ),\alpha _{i}\geq 0,\beta _{i}\geq 0

則最小化問題爲:\small \underset{w,b,\xi }{min}\underset{\alpha ,\beta }{max}L\left ( w,b,\xi ,\alpha ,\beta \right ),根據拉格朗日的對偶性,轉化爲對偶問題則爲:\small \underset{\alpha ,\beta }{max}\underset{w,b,\xi ,}{min}L\left ( w,b,\xi ,\alpha ,\beta \right )

先對 w,b 求偏導並使其爲零,則:

\small \frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{i=1}^{m}a_{i}y^{i}x^{i}

\small \frac{\partial L}{\partial b}=0\Rightarrow \sum_{i=1}^{m}a_{i}y^{i}=0

\small \frac{\partial L}{\partial \xi _{i}}=0\Rightarrow C-\alpha _{i}-\beta _{i}=0

將結果帶入 L 中,則有下面的推導過程:

當a* 爲最優解時,可得問題的最優解爲:

\small W^{*}=\sum_{i=1}^{m}\alpha _{i}^{*}y^{i}x^{i}

選擇a*的一個分量\small \alpha _{j}^{*},則b的最優解爲:

\small b^{*}=y^{i}-\sum_{i=1}^{m}y^{i}\alpha _{j}^{*}\left ( x^{i}\cdot x^{j} \right )

下一節瞭解序列最小優化算法 SMO

 

參考文獻 趙志勇《python 機器學習算法》

 

 

 

 

 

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