1. 程式人生 > >【林軒田】SVM

【林軒田】SVM

訓練數據 次數 復雜 AC har 真的 比較 mage gaussian

SVM 推導點到平面的距離(幾何距離):
技術分享圖片
函數距離: |wx+b|,不考慮1/||w||.
SVM的優化目標:所有樣本點到分離超平面的最小的幾何距離最大,可以寫成:技術分享圖片這裏 限制條件的第一行表示每個樣本點都被正確的分類, 第二行表示最大化的目標是樣本點到分離超平面的最小幾何距離。

W,b同步放縮並不影響分離超平面,故放縮至一定比例,使所有樣本點到超平面的最小函數距離剛好為1, 那麽最大化的目標就很簡單了技術分享圖片
需要優化的問題的形式為技術分享圖片註意,既然放縮時使最小的函數間隔為1,那麽實際上產生了一個比之前每個點到平面距離都>0(要分類正確)更強的條件,故之前的條件可以不要。
現在,優化問題的限制條件為最小的那一個等於1
,這個比較不好解,可以對這個條件放松(所有的都>=1),使得問題更好解,但是保證最優解仍然落在=1的範圍裏,這樣雖然放松了條件,但是最優解仍然落在之前嚴格條件的範圍裏,故最優解不變。證明(反證法:假設最優解落在>=1,但不是=1的範圍裏,那麽可以對最優解除以其最小值,構造一個更好的解,從而形成矛盾)技術分享圖片
現在,需要優化的問題的形式為:(對1 / ||w|| 做一點等價的變形)技術分享圖片

為什麽更大的幾何間隔更好?(1)直觀理解: 可以忍受更大的數據的噪音(2) 考慮 對比SVM 和 帶正則項的 分類器(例如logistic regression):技術分享圖片可以發現,這相當於E_in 和 WTW 對調了一下。因此,SVM可以類似於帶了正則項的一個模型。
(3) 從VC_dimension的復雜度層面分析,SVM降低了復雜度例如,不加分割面的margin限制,例如PLA, 那麽對於下面的樣本點可能有4中分割方法;但是,如果要求分割面的margin為最小1.126,那麽其實就少於4種分割方法了。因此,加上margin的限制降低了VC dimension,亦即降低了模型的復雜度。(因此SVM在vc dimension上復雜度其實比感知機低)技術分享圖片

dual SVM 推導
為什麽要推導dual SVM:引入核函數,使得可以在低維空間做運算,完成在高維空間的上的分類。如果用一般的SVM(或者其他的模型),如果特征有d維(設原來的空間叫X空間),將其轉換到q維空間(轉換後的空間叫Z空間),那麽轉換後特征的維度技術分享圖片,如果直接在Z空間訓練分類器,這將大大地增加計算量;dual SVM以及核函數的目標是:無論將特征轉換到多少維(甚至無限維,高斯核),都能在不變的維度(N維)下完成計算。 即轉換後的模型復雜度只與N相關,而與d不相關。技術分享圖片
下面推導中的Z就是X,代表樣本X映射到高維空間中的結果。推導結束就會發現,W可以用Z的和的形式求解出來
dual SVM是帶條件(而且還是帶
不等式條件,因此涉及到KKT條件)最優化問題,技術分享圖片被當做是要求解的變量,而將約束轉化成其他形式。假設樣本數目為N,那麽SVM就有N個限制條件,因此從dual SVM就有N個技術分享圖片需要求解
定義 拉格朗日函數技術分享圖片現在證明SVM等價於這個 拉格朗日函數 在所有拉格朗日乘子技術分享圖片時的最小最大問題,先對技術分享圖片求最大(得到技術分享圖片是關於b,w的函數,當再把b,w確定了,技術分享圖片就可以求出來了),再對b,w求最小(此時式子中包含用b,w表示的技術分享圖片註意兩個問題都是最優化問題,因此要證明它們等價,只需要證明它們的最優解的位置是一樣的。如果拉格朗日問題的最優解,也是原始SVM問題的最優解,那麽它們就是等價的。(對於最優化問題,只要最優解不變,隨便怎麽修改原來的函數,最後都是和原來的函數等價的)如果b,w落在符合限制條件的範圍內,裏面的最大化問題的值就是技術分享圖片,最後是對技術分享圖片求最小。如果b,w落在符合限制條件的範圍外,裏面的最大化問題的值就是無窮大,最後是對無窮大求最小因此,可以肯定的是,拉格朗日問題的最優解(不管要怎麽得出,但是可以確定它的位置屬於哪個區域),還是會在符合限制條件的範圍內,對技術分享圖片求最小得到的,因而和原來的SVM問題等價。技術分享圖片
再想辦法將最小最大問題轉化為其對偶的最大最小問題,亦即拉格朗日對偶問題
考慮最小最大問題,對任意一個技術分享圖片,該不等式成立:即不考慮裏面的max動作,隨便選擇一個技術分享圖片。註意,該不等式對所有的技術分享圖片成立。技術分享圖片即然右邊這個式子在取任意技術分享圖片的值得時候都小於等於左邊的式子,那麽對它對技術分享圖片求最大值,依然小於等於左邊的式子,因而,有下述的不等式:技術分享圖片
右邊這個式子的裏面的最小化是沒有約束的,因而更容易求解。

註意這裏依然是不等關系,被稱之為弱對偶性;如果是等於關系,那麽被稱之為強對偶性。如果滿足強對偶關系的一些條件,那麽兩邊的問題的最優解是一樣的。什麽時候對偶問題和原問題是強對偶關系呢,對於二次規劃問題,如果滿足以下條件,那麽就是強對偶關系:1) 凸問題2) 原問題是有解的3) 約束條件是線性的技術分享圖片技術分享圖片可見對於dual SVM而言,對偶問題和原問題是強對偶的。即可以通過解對偶問題,得到原問題的最優解。
解對偶問題:
技術分享圖片裏面的問題沒有限制條件,直接 偏導數=0。先對b求偏導數,得到取得最大值時的一個約束條件:技術分享圖片既然取得最大值時一定要滿足這個約束條件,那麽直接帶著這個約束條件去求最大值,並不影響求解。因為這個約束條件是一個關於b的等式,因而,將它也添加到最優化問題的約束條件裏去,就可以消掉b了:技術分享圖片消掉b之後,之前的對b,w求最小,也就變成了對w求最小了。再對w求偏導數:技術分享圖片這個約束條件是一個關於w的等式,同理,將它也直接加到原問題的約束條件裏,就可以消掉問題裏的w了:技術分享圖片最後,優化的目標函數裏只剩技術分享圖片了!現在成了一個帶約束的,變量只有技術分享圖片的最優化問題。技術分享圖片
這個問題同時有等式約束和不等式約束,通過求解KKT條件,就可以得到最優解的候選解。也就是說,最優解必須滿足KKT條件(必要條件)(當原問題是凸問題時,則是充分必要條件,剛好這個問題也是凸問題),也就是說,下面這些條件是dual SVM最優的b, w, 技術分享圖片的充分必要條件:技術分享圖片
整理上面的最優化問題,將最大化換成最小化:技術分享圖片可以看到,有N個變量,N+1個限制條件(因為這個問題的變量只有技術分享圖片,顧暫不考慮約束條件技術分享圖片這個問題也是一個二次規劃問題,將其表示成標準的二次規劃問題,就可以用二次規劃算法求解了:技術分享圖片技術分享圖片這裏的Q_D矩陣是樣本點的內積矩陣(N*d d*N -> N*N 核函數~),特別大,而且十分稠密,需要用特殊的為SVM準備的二次規劃算法求解:技術分享圖片
解出技術分享圖片後,利用KKT條件求出w,b:w: 顯然可以用技術分享圖片求解b: 利用任何一個不是0的技術分享圖片,根據技術分享圖片求解。同時,技術分享圖片不等於0,代表這個點是支持向量技術分享圖片
dual SVM的理解技術分享圖片的那些點是支持向量(註意技術分享圖片=0但是也在margin邊界上的點不再是支持向量了,技術分享圖片裏的兩項都=0技術分享圖片回顧求解W的公式,發現W只與技術分享圖片的那些技術分享圖片有關,同理,b也是:技術分享圖片即,w和b都可以只依賴支持向量計算出來。(這也是為什麽即使在邊界上,但技術分享圖片=0d的樣本點不是支持向量,以為它們對求解w,b沒有貢獻
對比SVM和感知機,這裏技術分享圖片是訓練時在樣本n上犯錯的次數:技術分享圖片可以發現w都是原始資料的線性組合,即w可以被訓練數據表示出來!SVM認為重要的是支持向量,感知機認為重要的是犯錯誤的點,用它們來表示最後的w
技術分享圖片
對比原始SVM和dual SVM:原始問題在特征維度較小時更為適合,dual SVM在樣本數目較小時更為適合。技術分享圖片
dual SVM真的和特征維度無關嗎?其實隱藏在Q矩陣中:技術分享圖片這裏有樣本點的內積,與特征維度是相關的!如何讓樣本點的內積的成本與特征維度無關 —————— 核函數!
核函數之間說對偶問題的優化目標中包含樣本點的內積,這使得問題的求解依然與特征的維度技術分享圖片有關,因此如果將特征往高維空間轉換,依然會帶來較大的計算代價。而核函數就是一個解決樣本內積的trick,讓高維空間的樣本特征的內積可以在低維空間完成技術分享圖片
推導核函數,以二維的多項式轉化為例:d維特征的樣本在轉化到二維上結果如下:技術分享圖片接下來計算兩個樣本點的內積,註意內積是兩個樣本點的對應特征相乘,而不是笛卡爾積兩兩相乘:技術分享圖片可以發現,不用先轉換,再內積;而是可以先內積,再轉換!這樣時間復雜度還是O(d):技術分享圖片這個過程就是kernel函數。剛才的轉化的kernel函數就是:技術分享圖片
將kernel方法應用於Q矩陣的計算,以及參數b的計算,以及最終SVM模型在預測時的計算:技術分享圖片沒有任何一個時刻真正的在z空間做內積,只需要在x空間做內積。

kernel SVM的二次規劃算法技術分享圖片
kernel SVM的時間復雜度:技術分享圖片
多項式核函數通過更改kernel函數裏每一項的系數,就可以得到不同的從X空間到Z空間的轉換:技術分享圖片技術分享圖片技術分享圖片

一般的多項式kernel使用兩個參數構造不同的kernel技術分享圖片使用高維的kernel不用付出太大的計算代價,10次轉換和2次轉換代價基本一樣:技術分享圖片同時由於SVM本身依靠較大的邊界來降低模型的復雜度,因此使用高維的kernel也不用付出太大的模型復雜度的代價。
特例:1次kernel,沒有什麽變化;對於新問題,先嘗試linear kernel。技術分享圖片

高斯kernel —— 無限維假設樣本只有1個維度,證明 高斯核函數 等價於 無限維的轉換:(證明中涉及到泰勒展開技術分享圖片更一般的高斯kernel技術分享圖片

最後的SVM是中心在支持向量上的高斯函數的線性組合,也被稱為RBF kernel技術分享圖片技術分享圖片
高斯kernel裏的參數技術分享圖片控制高斯函數的方差,當技術分享圖片變大,高斯函數變陡,分類面也就越復雜。就算是SVM也會過擬合。技術分享圖片值需要謹慎選擇技術分享圖片
如果技術分享圖片變成無窮大呢?技術分享圖片技術分享圖片
不同kernel的比較linear kernel:技術分享圖片
polynomial kernel:缺點:1) 隨著轉換的空間維度增高,會放大或縮小原來的樣本的值,造成計算上的困難。2) 需要設定更多的參數技術分享圖片一般只用在冪次Q較小的情形,較大了也不會用polynomial kernel
Gaussian Kernel技術分享圖片
其他的kernel:先要證明一個轉換方式是一個kernel,為此,需要證明它滿足kernel的一些性質: Mercer‘s condition1) 對稱性2) 轉換再內積 = 內積再轉換技術分享圖片
Soft-margin SVMhard margin不管對什麽資料,都要堅持能夠分開,這意味著shatter,因此有過擬合的傾向。hard-margin SVM過擬合:1) 過於復雜的kernel轉換2) 堅持分開 —— hard margin技術分享圖片
soft margin: 能夠容忍一些錯誤naive idea:在優化目標裏加上錯誤的點的懲罰,同時放松錯誤的點的限制條件技術分享圖片
整理上述問題:技術分享圖片這已經不是一個二次規劃問題了,因為限制條件了出現了非線性。另外一個缺點是不能區分小錯誤和大錯誤,離邊界近的點和遠的點都被視為犯錯,一視同仁。因此,改進這種思路,得到以下的問題:為每個樣本增加一個參數,表示它可以“過界”的距離,即它已經到邊界裏面的了,小於最小的margin了。這個參數放松了margin的限制,但同時在優化目標裏也會懲罰“過界”的距離。技術分享圖片最小化時除了b,w,還多了一組參數:技術分享圖片這依然是一個二次規劃問題技術分享圖片參數C的影響:技術分享圖片多處的N個變量是N個技術分享圖片多出的N個限制條件是技術分享圖片都要大於等於0,這樣才是放寬邊界的限制,允許跑到邊界裏面去。
dual Soft-margin SVM
推導dual soft-margin SVM的對偶問題原問題技術分享圖片其拉格朗日函數是:技術分享圖片這裏跳過證明最小最大問題在SVM裏與最大最小問題最優解相同,直接求解對偶問題。希望得到其對偶問題,即最大最小問題:技術分享圖片技術分享圖片求偏導,可以消掉 beta,但是beta >=0 , 因而要求alpha <= C技術分享圖片將等式帶入原來的優化目標,可以進一步化簡,消掉了技術分享圖片技術分享圖片問題變成:技術分享圖片該問題和hard margin的優化目標一樣,只是多了一點限制條件技術分享圖片問題變成:技術分享圖片和hard margin一模一樣,只是多了一點限制條件
總結hard margin 和 soft margin技術分享圖片
理解soft margin SVM由於這個問題和hard margin SVM最終的優化問題有點不同,因此之前的KKT條件已經發生了改變。現在要如何求解b呢?之前hard margin SVM是找一個alpha不等於0的樣本點,利用該樣本點在邊界上的等式求出b。根據hard margin的約束條件,其KKT條件中包含一個complementary slackness條件:技術分享圖片,用該條件可以選擇一個支持向量求出b
對於soft margin SVM, 根據其約束條件,其KKT條件有兩個complementary slackness條件:技術分享圖片技術分享圖片 這裏技術分享圖片技術分享圖片等於0意味著樣本點沒有違反邊界,即樣本點在邊界上或者在邊界外,而不在邊界內技術分享圖片
高斯核函數的soft margin SVM可見C越大,對錯誤的容忍越小,越容易過擬合技術分享圖片
理解 soft margin SVM技術分享圖片考慮這兩個條件如果技術分享圖片=0, 那麽根據第二個等式,技術分享圖片, 也就是說樣本點沒有違反邊界,因此表示那些在邊界上或者邊界外的點如果技術分享圖片,那麽根據第一個等式和第二個等式,技術分享圖片,表明是在邊界上的樣本點如果技術分享圖片, 根據第二個等式,技術分享圖片,表示樣本點違反了邊界,因而是那些在邊界內部的點技術分享圖片
如果對SVM做leave-one-out CV,可以證明CV的誤差與支持向量的比例有關技術分享圖片這其實印證了去掉不是支持向量的樣本點,對模型沒有影響。
hinge loss考慮soft margin SVM, 換一個視角看它的優化目標,即將技術分享圖片看成正則項,而將soft margin的松弛導致的誤差項看做是損失函數。首先,看一下松弛項技術分享圖片是怎麽求的:技術分享圖片將這個目標函數看成是帶正則項的損失函數最小化問題。這樣,最後松弛項的誤差看成是損失函數。為什麽不直接解這個函數呢,1)不能用二次規劃;2)不可微;看一下這個“損失函數”的圖像:(這是對正樣本的圖像,即如果不是>0,就是誤分類)技術分享圖片這就是hinge loss的來源了曲線是logistic regression的損失函數,即技術分享圖片可以發現,hinge loss和log loss非常像。因此,解SVM得到的W,b可以代入logistic regression作為近似解SVM 約等於 帶L2正則項的Logistic Regression
如何使用SVM預測概率將SVM的預測結果,作為單一維度的特征,再訓練一個Logistic Regression,再做概率預測。




















































【林軒田】SVM