支援向量機 SVM

2021-09-13 19:01:10 字數 3579 閱讀 8141

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

支援向量機(support vector machines,svm)是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,可形式化為乙個凸二次規劃(convex quadratic programming)問題的求解。
函式間隔(function margin)定義:對於給定訓練資料集t和超平面$(w, b)$,定義超平面$(w,b)$關於樣本點$(x_,y_)$的函式間隔為$$\widehat}=y_(w\cdot x_+b)$$

定義超平面$(w,b)$關於資料集t的幾何間隔為超平面$(w,b)$t中所有樣本點$(x_,y_)$的函式間隔之最小值,即$$\widehat=min\widehat}$$

幾何間隔(geimetric margin)定義:對於給定訓練資料集t和超平面$(w, b)$,定義超平面$(w,b)$關於樣本點

$(x_,y_)$的幾何間隔為$$\gamma _=y_(\frac\cdot x_+\frac)$$

定義超平面$(w,b)$關於資料集t的幾何間隔為超平面$(w,b)$t中所有樣本點$(x_,y_)$的函式間隔之最小值,即$$\gamma=min\gamma _$$

因為如果超平面引數$w$和$b$成比例改變,雖然超平面不變,但是函式間隔離變了。因此使用幾何間隔,並且令$\left \| w \right \|=1$,下圖為《機器學習》中的一張插圖。

得到的目標函式如下

$$max\frac \hspace s.t., \gamma_(w^+b)\geq 1$$

$由於求\frac的最大值相當於求\frac\left \|w \right \|^的最小值,所以上面的目標函式等價於$

$$min\frac\left \|w \right \|^ \hspace s.t., \gamma_(w^+b)\geq 1$$

為了更好地理解接下來的內容,這裡插入一段有關對偶性(duality)的補充。詳情請見

這篇文章,已經清楚的夥伴可以跳過。

簡單來說,對於任意乙個帶約束的優化都可以寫成這樣的形式:

$$ \begin \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 $$

雖然約束條件能夠幫助我們減小搜尋空間,但是如果約束條件本身就是比較複雜的形式的話,其實是一件很讓人頭痛的問題,為此我們希望把帶約束的優化問題轉化為無約束的優化問題。為此,我們定義lagrangian如下:

$$l(x,\lambda,\nu)=f_0(x)+\sum_^m\lambda_if_i(x)+\sum_^p\nu_ih_i(x)$$

令:$$z(x)=\max_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_ l(x, \lambda, \nu)$$

因為如果原始問題有最優值,那麼肯定是在滿足約束條件的某個 x∗ 取得,而對於所有滿足約束條件的$ x$ ,$z(x)$ 和 $f_0(x)$ 都是相等的。

這個原問題(primal problem)對偶問題(dual problem)將$min$和$max$調換了位置(記為$d^*$):

$$d^*=\max_\ \min_x l(x, \lambda, \nu)$$

可以證明$d^*\leq p^*$,此這個性質叫做弱對偶(weak duality),對於所有的優化問題都成立。注意,無論原問題是什麼形式,它的對偶問題總是凸優化問題(convex optimization)

強對偶(strong duality)即$d^*=p^*$,在svm中滿足ktt(karush-kuhn-tucker)條件,通過求解對偶問題間接求解原始問題。

根據上面的補充,繼續如下推導。

引入拉格朗日乘子(lagrange multiplier)構造拉格朗日函式 ,( 其中拉格朗日乘子$\alpha=(\alpha_,\alpha_,...\alpha_)^$ )

$$l(w, b, \alpha)=\frac\left \|w \right \|^-\sum_^n\alpha _(\gamma_(w^+b)-1)$$

要求解:

$$ \min_\ \max_\succeq 0} l(w, b, \alpha)=p^*$$

轉換為對偶問題:

$$ \max_\succeq 0}\ \min_\ l(w, b, \alpha)=d^*$$

先求$l(w, b, \alpha)$對 $w$,$b$的極小,再求對$\alpha$的極大。
$$\nabla_l(w, b, \alpha)=0 \hspace和 \hspace \nabla_l(w, b, \alpha)=0$$

得到$$w=\sum_^n\alpha_y_x_ \hspace和 \hspace\sum_^n\alpha_y_=0$$

將上面兩式帶入拉格朗日函式l,得到:

$$\min_\ l(w, b, \alpha)=-\frac\sum_^n\alpha_\alpha_y_y_x_^tx_+\sum_^n\alpha_$$

詳細推導補充如下:

將 $\alpha^=(\alpha_,\alpha_,...\alpha_)^$ 求解出來之後,即可求出 $w^$ 和 $b^$

$$w^=\sum_^n\alpha_y_x_$$

$$b^=y_-\sum_^n\alpha_^y_(x_ \cdot x_)$$

二次規劃求解可以使用更加優化的smo(sequential minimal optimization)替代,更加高效,暫時自己還沒有看懂,先放著。

個人感覺svm挺難理解的,前前後後參考了很多資料,感謝大神們的總結和指導,自己仍有不足,若有錯漏歡迎指出。有引用部分,侵刪。

參考如下:

1.svm三重境界

2.《統計學習方法》 李航

3.支援向量機:duality

4.《機器學習》 周志華

支援向量機(SVM)

簡介 術語 支援向量機 svm 是乙個類分類器,正式的定義是乙個能夠將不同類樣本在樣本空間分隔的超平面。換句話說,給定一些標記 label 好的訓練樣本 監督式學習 svm演算法輸出乙個最優化的分隔超平面。首先我們假定有乙個未知的欲分類的集合,可以進行分割,但是我們不知道分割的函式 超平面,也叫真實...

支援向量機SVM

支援向量機svm support vector machine 是機器學習領域的乙個有監督的學習模型。一 簡介 支援向量機建立在統計學習理論的基礎之上。統計學習理論 statistical learning theory簡稱slt 是一種處理小樣本的統計理論 為研究有限樣本情況下的統計模式識別和更廣...

SVM支援向量機

在機器學習領域,很多時候會用到分類的一些演算法,例如knn,貝葉斯。我們可以把分類的樣本簡單除暴的分為兩種型別。線性可分和非線性可分。可以使用乙個非常簡單的例子來解釋什麼是線性可分,什麼是線性不可分。a 線性可分的2類樣本 b 非線性可分的2類樣 已知乙個線性可分的資料集,其中x表示乙個n維向量,當...