1. 程式人生 > >Andrew Ng機器學習筆記+Weka相關算法實現(四)SVM和原始對偶問題

Andrew Ng機器學習筆記+Weka相關算法實現(四)SVM和原始對偶問題

優化問題 坐標 出了 變量 addclass fun ber 找到 線性

這篇博客主要解說了Ng的課第六、七個視頻,涉及到的內容包含,函數間隔和幾何間隔、最優間隔分類器 ( Optimal Margin
Classifier)、原始/對偶問題 ( Primal/Dual Problem)、 SVM 的對偶問題幾個部分。

  • 函數間隔和幾何間隔

函數間隔( functional margin) 與幾何間隔( geometric margin)是理解SVM的基礎和前提。
如果y∈{-1,1},而不再是0,1,我們能夠將分類器函數表演示樣例如以下:
技術分享
這裏的b參數事實上就是原來的X0,那麽我們能夠知道,W和B決定了一個確定的超平面。
給定一個訓練樣本,我們定義函數間隔:
技術分享


則當y(i)=1的時候,為了使函數間隔最大,我們要使技術分享取得一個較大的正數,當y(i)=-1時。我們要使得上式取到一個非常小的負值。
接下來我們能夠定義全局的函數間隔:
技術分享
也就是說全局的函數間隔取決於函數間隔最小的那個樣本點。
但同一時候也不難發現這裏有一個問題,如果同一時候加大 w 和 b。則能夠非常easy的添加函數間隔。可是這樣對實際求解是沒有意義的的。我們為了限制 w 和 b。須要添加歸一化條件。
接下來引入幾何間隔:
技術分享
對於上面的圖片,如果切割面上有一點B,它是A在這個切割面上的投影。這個間隔我們用γ表示,那麽我們非常easy知道BA的方向事實上就是切割面的梯度方向。其單位向量是:技術分享
,它的長度是1,方向和BA方向一致。那麽我們如果A點的坐標是:技術分享
這樣我們不難表示出B點的坐標:
技術分享
將坐標代入切割面方程技術分享
我們得到下式:
技術分享
所以:
技術分享
對於全局的γ,我們須要乘上類別:
技術分享
這就是點到平面的幾何間隔。我們不難看出,當||W||=1時。幾何間隔就是函數間隔。相同我們能夠定義全局幾何間隔:
技術分享

  • 最優間隔分類器

我們的目標是尋找到一個超平面。使得這個平面與離它近期的點距離最大,而不關心其它的點到平面的距離。
形式化表演示樣例如以下:
技術分享
接下來的目標就是求得這個切割面的參數W和b。可是我們看到上述函數的約束條件是||W||=1。這是一個球面,典型的非凸優化問題,難以求解。我們要進行適當的變換。考慮幾何間隔和函數間隔的關系:
技術分享


我們能夠將原問題轉化為:
技術分享
我們最好還是再令:技術分享
那麽原問題就是求取1/||W||的最大值。也就是||W||平方的最大值,原問題進一步能夠轉化為以下問題:
技術分享
這個問題就變成了一個典型的二次規劃問題,原問題變得能夠求解。

  • 拉格朗日對偶

為了求解上述問題。我們先看下一種最簡單的等式約束:
技術分享
對於上述問題。我們一般能夠用拉格朗日乘子法來求解。引入變量β:
技術分享
構造出上述拉格朗日乘式子。則原問題能夠通過分別對W和β求偏導數
技術分享
並令偏導數為0來求解出W和β。詳細的數學證明就不在此解說了,本科《微積分》都學過。
以下我們就是要將等式的情況推廣到不等式,考慮到以下的求解問題:
技術分享
存在不等式約束條件。依舊構造拉格朗日表達式:
技術分享
由於兩個表達式。我們要引入αβ兩個變量。
依照之前的求解方法,這個問題求解會遇到一個非常大的問題:
由於g(W)<0,我們將α=正無窮,則表達式值變為負無窮,這樣是沒有意義的。因此我們必須避免這種情況,定義下式:
技術分享
我們令α>0,則僅僅有 g 和 h 滿足約束時。 θ(w)為 f(w),也就是:
技術分享
這樣原問題求 min f(w)就等價於求minθ(w)。
我們令:
技術分享
又一次定義一個函數:
技術分享
並令:
技術分享
則有下列關系:
技術分享
也就是最小值的最大值小於或等於最大值的最小值。這個問題是原問題的對偶問題。相對於原問題僅僅是更換了 min 和 max 的順序,在這裏取等號。條件例如以下描寫敘述:

①如果約束不等式 gi都是凸 ( convex)函數(線性函數都屬於凸函數)
②約束等式 hi 都是仿射( affine)函數(形如h(w)=wTx+b)
③而且存在 w使得對於全部的 i,gi(W)< 0

在這些如果下,肯定存在 ω?, α?, β?,使得ω?是原始問題的解, α?, β?是對偶問題的解,且P? = d? = L(ω?, α?, β?)。這種ω?, α?, β?須要滿足 KKT( Karush-Kuhn-Tucker)條件。 KKT條件例如以下:
技術分享
如果ω?, α?, β?滿足了庫恩-塔克條件,那麽他們就是原問題和對偶問題的解。
從上式能夠看出來:
α?> 0,那麽gi(w?) = 0。

滿足gi(w?) = 0的w 處於可行域的邊界上。這時候的W才幹真正實用。內部的點,滿足gi(w?) <0都是沒有意義的。這就引出了SVM的支持向量的概念。

Andrew Ng機器學習筆記+Weka相關算法實現(四)SVM和原始對偶問題