1. 程式人生 > >最優間隔分類器.原始/對偶優化問題.KKT.SVM對偶

最優間隔分類器.原始/對偶優化問題.KKT.SVM對偶

《Andrew Ng 機器學習筆記》這一系列文章文章是我再觀看Andrew Ng的Stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。

網易公開課地址:http://open.163.com/special/opencourse/machinelearning.html

本篇博文設計課程七:最優間隔分類器問題

主要內容包括:

(1)最優間隔分類器(optimal margin classifier)

(2)原始/對偶優化問題(KKT)(primal/dual optimization problem)

(3)SVM對偶(SVM dual)

(4)核方法(kernels)(下一篇博文具體分析)

最優間隔分類器

如果訓練集是線性可分的, 就是說用超平面可以分隔正負樣本. 我們要找到最大的幾何間隔. 我們可以轉化為下面的優化問題:

                                      這裡寫圖片描述

即,找到一個超平面,在將正負樣本分開的同時,使超平面到正負樣本間的距離儘可能大。

由於wb可隨意縮放,約束條件||w||=1,使得函式間隔等於幾何間隔。但是這個約束本身是一個非凸性約束。(非凸性:是指系統有多個穩定的平衡態。)要求解的引數w在一個球體表面,如果想得到一個凸優化問題,必須保證如梯度下降演算法這種區域性最優值搜尋演算法不會找到區域性最優值,而非凸性約束不能滿足這個條件,所以需要改變優化問題。

因此轉化為更好的一個問題:
                                                  這裡寫圖片描述

我們的目標變成要最大化這裡寫圖片描述,並且去掉了約束條件||w=1||,但是這裡寫圖片描述仍然是非凸性的.

因此,加上規模的限制,對訓練集的函式間隔設定為1:這裡寫圖片描述

至此,我們得到最終的最優間隔分類器


此時,我們的優化問題變為一個凸二次目標函式。

原始優化問題

拉格朗日二元性

考慮下式:

即最小化函式f(w),並滿足約束條件hi(w)=0,可以將hi寫成0向量我們可以通過拉格朗日乘數法的方法解決:

1、建立拉格朗日運算元:

即等於原始目標函式加限制函式的線性組合,其中引數β稱為拉格朗日乘數

2、對下式求偏導數置為0,即可求出解w和β:

原始問題

拉格朗日乘數法的一般形式,也稱為原始問題

考慮下式:

建立拉格朗日運算元:

此時α和β為拉格朗日乘數,定義:

上式中的“p”表示“原始問題”(primal),

如果w違反了約束條件,即這裡寫圖片描述那麼上式變成:

                                                             這裡寫圖片描述
分析上式,若gi(w)>0,那麼只要使αi無窮大,θp(w)就會無窮大;若hi(w)0,只要使βi相應取無窮大(hi(w)>0)或無窮小(hi(w)<0),θp(w)也會無窮大。

 反之,若w滿足約束條件,那麼θp(w) = f(w),所以可得:

那麼,求min f(w)就是求下式的值,定義為p*:

                                                                                            這裡寫圖片描述.

對偶問題

 與上面原始問題有略微差別,我們定義:

對其取最大值,即給出對偶優化問題,定義為d*:

                                                                                                 這裡寫圖片描述

顯然,我們有:

                                                      

在某些條件下,會有這裡寫圖片描述,因此我們可以通過解決原始問題來解決對偶問題. 

原始問題和對偶問題獲得相同解的條件:

1、令f為凸函式(凸函式的hessian矩陣是半正定的,H>=0,即開口朝上的碗狀函式

2、假設hi為仿射函式((affine,和線性是一樣的,只不過是加了截距),即

3、假設gi是嚴格可執行的,即存在w,使得對於所有i,gi(w)<0

在上述條件下,存在w*,α*,β*,其中w*是原始問題的解,α*,β*是對偶問題的解,並且:

此外,還要滿足以下條件:


這些條件被稱為KKT條件。(KKT是三個人名的縮寫),如果這裡寫圖片描述滿足KKT條件,那麼就是原始問題和對偶問題的解

其中,稱為KKT對偶補充條件。即就是:

如果αi>0那麼 gi(w*)=0,但是一般來說αi>0  <=>  gi(w*)=0。

當gi(w*)=0,稱gi(w*)為活動約束。

SVM對偶

前面,我們有了最優間隔分類器如下:

約束條件可以寫為:

通過KKT條件,αi>0  =>  gi(w,b)=0=> y(i)(wTx(i)+b)=1,即函式間隔為1

給出例子如下圖:

圖中的圈和叉即正負樣本,實線即w,b確定的分割的超平面,最小的間隔是離決定邊界最近的點,上圖中有三個看出有三個樣本的函式間隔為1,其他樣本的函式間隔大於1,虛線即為函式間隔為1的點所構成的線。

過KKT條件,這些函式間隔為1的樣本對應的拉格朗日乘數一般不等於0, (因為根據KKT對偶補充條件,只有這裡寫圖片描述,函式邊界才等於 1).這三個點被稱為支援向量(support vector)由此可見,支援向量的數量比訓練樣本數量小很多

所以,總結為:αi>0。這個函式間隔為1的樣本稱為支援向量。因為支撐向量數量很少,所以多數的αi=0,那麼反推可得,αi=0,對應的樣本不是支撐向量。

 對最優間隔優化問題構建拉格朗日運算元,有:

                                              
                                                             這裡寫圖片描述

由於這個問題只有不等式約束,所以沒有β。

對w求偏導並設為0

推出:

w就是輸入特徵向量的線性組合。對b求偏導:

將w代入拉格朗日運算元,得到:

                                                        

根據對b求偏導的結果,最後一項為0,得到:

將上式表示為W(α),對偶問題就是:

為了解決這個對偶問題,求出引數α*,而求出α,即可求出w,求出α和w後,容易求出b,因為w決定了超平面的斜率,那麼根據最優間隔,將α和w代入原始問題,就容易求出b了,如下式:

再得到:

                                                                   

這個公式的直觀理解就是,找到最差的樣本(離得最近的正負樣本,也就是支援向量),接著,就只需要計算x和支援向量的內積就可以求出超平面的位置。