支持向量機 ----- SVM

簡述

在《統計學習方法》中,這樣描述:機器學習

支持向量機(support vector machines,SVM)是一種二類分類模型,其基本模型定義爲特徵空間上的間隔最大的線性分類器,其學習策略即是間隔最大化,可形式化爲一個 凸二次規劃(convex quadratic programming)問題的求解。

函數距離與幾何距離

函數間隔(function margin)定義:對於給定訓練數據集T和超平面$(w, b)$,定義超平面$(w,b)$關於樣本點$(x_{i},y_{i})$的函數間隔爲$$\widehat{\gamma _{i}}=y_{i}(w\cdot x_{i}+b)$$
定義超平面$(w,b)$關於數據集T的幾何間隔爲超平面$(w,b)$T中全部樣本點$(x_{i},y_{i})$的函數間隔之最小值,即$$\widehat{\gamma}=min\widehat{\gamma _{i}}$$
幾何間隔(geimetric margin)定義:對於給定訓練數據集T和超平面$(w, b)$,定義超平面$(w,b)$關於樣本點
$(x_{i},y_{i})$的幾何間隔爲$$\gamma _{i}=y_{i}(\frac{w}{\left \| w \right \|}\cdot x_{i}+\frac{b}{\left \| w \right \|})$$
定義超平面$(w,b)$關於數據集T的幾何間隔爲超平面$(w,b)$T中全部樣本點$(x_{i},y_{i})$的函數間隔之最小值,即$$\gamma=min\gamma _{i}$$
由於若是超平面參數$w$和$b$成比例改變,雖然超平面不變,可是函數間隔離變了。所以使用幾何間隔,而且令$\left \| w \right \|=1$,下圖爲《機器學習》中的一張插圖。
clipboard.pngide

對偶問題

獲得的目標函數以下
$$max\frac{1}{\left \|w \right \|} \hspace{0.5cm} s.t., \gamma_{i}(w^{T}+b)\geq 1$$
$因爲求\frac{1}{\left \|w \right \|}的最大值至關於求\frac{1}{2}\left \|w \right \|^{2}的最小值,因此上面的目標函數等價於$
$$min\frac{1}{2}\left \|w \right \|^{2} \hspace{0.5cm} s.t., \gamma_{i}(w^{T}+b)\geq 1$$函數


補充解釋

爲了更好地理解接下來的內容,這裏插入一段有關 對偶性(duality)的補充。詳情請見 這篇文章,已經清楚的夥伴能夠跳過。

簡單來講,對於任意一個帶約束的優化均可以寫成這樣的形式:學習

$$ \begin{aligned} \min&f_0(x) \\ s.t. &f_i(x)\leq 0, \quad i=1,\ldots,m\\ &h_i(x)=0, \quad i=1,\ldots,p \end{aligned} $$優化

雖然約束條件可以幫助咱們減少搜索空間,可是若是約束條件自己就是比較複雜的形式的話,實際上是一件很讓人頭痛的問題,爲此咱們但願把帶約束的優化問題轉化爲無約束的優化問題。爲此,咱們定義 Lagrangian 以下:
$$L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)$$
令:
$$z(x)=\max_{\lambda\succeq 0, \nu}L(x,\lambda,\nu)$$
容易證實,對於知足約束條件的 x,有$f_0(x)=z(x)$,由於約束條件$h_i(x)=0$,即式子最後一項爲0,又由於$\lambda\geq 0$且約束條件$f_i(x)\leq 0$,所以式子的第二項最大值爲0,因此L的最大值即$z(x)=f_0(x)$.
因此,帶約束條件的原問題(primal problem)轉換爲不帶約束條件的優化問題,即:
$$\min_x z(x)$$
也即(記爲$p^*$):
$$p^*=\min_x\ \max_{\lambda\succeq 0, \nu} L(x, \lambda, \nu)$$
由於若是原始問題有最優值,那麼確定是在知足約束條件的某個 x∗ 取得,而對於全部知足約束條件的$ x$ ,$z(x)$ 和 $f_0(x)$ 都是相等的。
這個原問題(primal problem)對偶問題(dual problem)將$min$和$max$調換了位置(記爲$d^*$):
$$d^*=\max_{\lambda\succeq 0, \nu}\ \min_x L(x, \lambda, \nu)$$
能夠證實$d^*\leq p^*$,此這個性質叫作弱對偶(weak duality) ,對於全部的優化問題都成立。注意,不管原問題是什麼形式,它的對偶問題老是凸優化問題(convex optimization)
強對偶(strong duality)即$d^*=p^*$,在SVM中知足KTT(Karush-Kuhn-Tucker)條件,經過求解對偶問題間接求解原始問題。spa


根據上面的補充,繼續以下推導。
引入拉格朗日乘子(Lagrange multiplier)構造拉格朗日函數 ,( 其中拉格朗日乘子$\alpha=(\alpha_{1},\alpha_{2},...\alpha_{n})^{T}$ )
$$L(w, b, \alpha)=\frac{1}{2}\left \|w \right \|^{2}-\sum_{i=1}^n\alpha _{i}(\gamma_{i}(w^{T}+b)-1)$$
要求解:
$$ \min_{w,b}\ \max_{\alpha_{i}\succeq 0} L(w, b, \alpha)=p^*$$
轉換爲對偶問題:
$$ \max_{\alpha_{i}\succeq 0}\ \min_{w,b}\ L(w, b, \alpha)=d^*$$.net

對偶問題求解

先求$L(w, b, \alpha)$對 $w$,$b$的極小,再求對$\alpha$的極大。
  • 求$\min_{w,b}\ L(w, b, \alpha)$ :將拉格朗日函數$L(w, b, \alpha)$分別對$w$,$b$求偏導數並令其等於0。

$$\nabla_{w}L(w, b, \alpha)=0 \hspace{0.6cm}和 \hspace{0.6cm} \nabla_{b}L(w, b, \alpha)=0$$
獲得
$$w=\sum_{i=1}^n\alpha_{i}y_{i}x_{i} \hspace{0.6cm}和 \hspace{0.6cm}\sum_{i=1}^n\alpha_{i}y_{i}=0$$
將上面兩式帶入拉格朗日函數L,獲得:
$$\min_{w,b}\ L(w, b, \alpha)=-\frac{1}{2}\sum_{i,j=1}^n\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j}+\sum_{i=1}^n\alpha_{i}$$code

詳細推導補充以下:blog

clipboard.png

clipboard.png

  • 接下來求$\min_{w,b}\ L(w, b, \alpha)$對 $\alpha$的極大

$$ max-\frac{1}{2}\sum_{i,j=1}^n\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j}+\sum_{i=1}^n\alpha_{i} \\ s.t.,\ \alpha_{i}\geq 0, i=1,...,n \\ \sum_{i=1}^n\alpha_{i}y_{i}=0$$
將 $\alpha^{*}=(\alpha_{1},\alpha_{2},...\alpha_{n})^{T}$ 求解出來以後,便可求出 $w^{*}$ 和 $b^{*}$
$$w^{*}=\sum_{i=1}^n\alpha_{i}y_{i}x_{i}$$
$$b^{*}=y_{i}-\sum_{i=1}^n\alpha_{i}^{*}y_{i}(x_{i} \cdot x_{j})$$
二次規劃求解可使用更加優化的SMO(Sequential Minimal Optimization)替代,更加高效,暫時本身尚未看懂,先放着。ip

補充

我的感受SVM挺難理解的,前先後後參考了不少資料,感謝大神們的總結和指導,本身仍有不足,如有錯漏歡迎指出。有引用部分,侵刪。
參考以下:
1.SVM三重境界
2.《統計學習方法》 李航
3.支持向量機:Duality4.《機器學習》 周志華

相關文章
相關標籤/搜索