拉格朗日 SVM KKT
在R中使用支持向量機(SVM)(1)
1. 線性SVM假設有分布在Rd空間中的數據,我們希望能夠在該空間上找出一個超平面(Hyper-pan),將這一數據分成兩類。屬于這一類的數據均在超平面的同側,而屬于另一類的數據均在超平面的另一側。如下圖。
???????????????????????????????????????????????????????????
???? 比較上圖,我們可以發現左圖所找出的超平面(虛線),其兩平行且與兩類數據相切的超平面(實線)之間的距離較近,而右圖則具有較大的間隔。而由于我們希望可以找出將兩類數據分得較開的超平面,因此右圖所找出的是比較好的超平面。可以將問題簡述如下:
設訓練的樣本輸入為xi,i=1,…,l,對應的期望輸出為yi∈{+1,-1},其中+1和-1分別代表兩類的類別標識,假定分類面方程為ω﹒x+b=0。為使分類面對所有樣本正確分類并且具備分類間隔,就要求它滿足以下約束條件:
(1)
可以計算出,分類間隔為
? (2)
???? 在約束式的條件下最大化分類間隔2/||ω||這可以通過最小化||ω||2的方法來實現。那么,求解最優平面問題可以表示成如下的約束優化:即在條件式(1)的約束下,最小化函數
? (3)
???? 為了解決約束最優化問題,引入式(3)的拉格朗日函數
? (4)
??? 其中,αi>0為拉格朗日系數,現在的問題就是關于ω和b求L的最小值。
??? 把式(4)分別對ω和b求偏微分并令其等于0,就可以把上述問題轉化為一個較簡單的"對偶"形式:
(5a)
???? (5b)
將得到的關系式:
(6)
代入到原始拉格朗日函數,得到:
(7)
如果αi*為最優解,那么
(8)
即最優超平面的權系數向量是訓練樣本向量的線性組合。
??? 由于上述優化問題是一個Convex Problem,求解上述的SVM問題,須滿足KKT條件,這個優化問題的解必須滿足
? (9)
因此,對多數樣本ai將為0,取值不為零的ai對應于式(1)中等號成立的樣本即支持向量。
求解上述問題后得到的最優分類函數是
? (10)
由于非支持向量對應的ai均為0,因此上式的求和實際上只對支持向量進行。最終的優化問題為
(11)
2. 非線性SVM
????????????????????????????????????????????
???? 然而有的問題并不是線性可分的。但是可以通過一個適當的非線性函數φ,將數據由原始特征空間映射到一個新的特征空間,然后在新空間中尋求最優判定超平面。?
??? 所以問題(11)可以改寫為
(12)
???? 如果直接在高維空間計算φ(x),將會帶來維數災難。為了解決這一問題,引入核函數
? (13)
??? 這樣問題(12)就變成
(14)
??? 常用的核函數有
??? 實際問題很少線性可分,雖然理論上可通過非線性映射得到線性可分的數據,但如何獲得這樣的映射,且避免過擬合,仍存在問題。所以更實際的策略是允許一定誤差。通常引入松弛變量ε,放松約束。這時問題描述改為下面的形式
(15)
??? 這樣的分類器稱為線性軟間隔支持向量分類機。轉化為拉格朗日乘子待定問題
(16)
?
??? 其KKT條件為
(17)
??? 得到
(18)
??? 只要確定a,便可解出w,b.
??? 將上述條件代入L中,得到新的優化問題:
(19)
??? 同樣地引入核函數,把這個軟間隔SVM的訓練表示為一個高維空間上的二次規劃問題
(20)
3. 求解SVM??? 非線性SVM可用經典的二次規劃方法求解,但同時求解n個拉格朗日乘子涉及很多次迭代,計算開銷太大。所以一般采用Sequential Minimal Optimization(SMO)算法。其基本思路是每次只更新兩個乘子,迭代獲得最終解。計算流程可表示如下
????? For i=1:iter
End
??? SMO算法的優點在于,只有兩個變量的二次規劃問題存在解析解。
??? 關鍵的技術細節在于,一是在每次迭代中,怎樣更新乘子;二是怎樣選擇每次迭代需要更新的乘子。
??? 假定在某次迭代中,需要更新樣本x1,x2對應的拉格朗日乘子a1,a2.
這個小規模的二次規劃問題可以寫成
(21)
?
進一步簡化為
(22)
?
步驟1 計算上下界L和H
?
步驟2 計算Ls的二階導數
步驟3 更新a2
步驟4 計算中間變量
步驟5 更新a1
選擇需要更新的乘子需要滿足兩點。
SMO算法的優點,在于
(1)可保證解的全局最優性,不存在陷入局部極小解的問題。
(2)分類器復雜度由支撐向量的個數,而非特征空間的維數決定,因此較少因維數災難發生過擬合現象。
缺點是需要求解二次規劃問題,其規模與訓練量成正比,因此計算復雜度高,且存儲開銷大, 不適用于需進行在線學習的大規模分類問題。
4.LS-SVM??? Suykens和Vandewalle1999年提出
? (23)
??? 與SVM的關鍵不同是約束條件由不等式變為了等式,對應的優化問題
(24)
??? 不等式變為等式后,拉格朗日乘子可以通過解線性系統得到
(25)
解線性系統遠易于解二次規劃問題。但相應地,絕大部分拉格朗日乘子都將不為零。也就是說,LS-SVM分類器的測試時間將長于SVM分類器。
5.SVM最后概述??? 機器學習問題是在已知n個獨立同分布的觀測樣本,在同一組預測函數中求一個最優的函數對依賴關系進行估計,使期望風險R[f]最小。期望風險的大小直觀上可以理解為,當我們用f(x)進行預測時,"平均"的損失程度,或"平均"犯錯誤的程度。損失函數是評價預測準確程度的一種度量,它與預測函數f(x)密切相關。而f(x)的期望風險依賴于概率分布和損失函數,前者是客觀存在的,后者是根據具體問題選定的,帶有(主觀的)人為的或偏好色彩。
但是,只有樣本卻無法計算期望風險,因此,傳統的學習方法用樣本定義經驗風險Remp[f]作為對期望風險的估計,并設計學習算法使之最小化。即所謂的經驗風險最小化(Empirical Risk Minimization, ERM)歸納原則。經驗風險是用損失函數來計算的。對于模式識別問題的損失函數來說,經驗風險就是訓練樣本錯誤率;對于函數逼近問題的損失函數來說,就是平方訓練誤差;而對于概率密度估計問題的損失函數來 說,ERM準則就等價于最大似然法。事實上,用ERM準則代替期望風險最小化并沒有經過充分的理論論證,只是直觀上合理的想當然做法。也就是說,經驗風險最小不一定意味著期望風險最小。其實,只有樣本數目趨近于無窮大時,經驗風險才有可能趨近于期望風險。但是很多問題中樣本數目離無窮大很遠,那么在有限樣本下ERM準則就不一定能使真實風險較小。ERM準則不成功的一個例子就是神經網絡的過學習問題(某些情況下,訓練誤差過小反而導致推廣能力下降,或者說是訓練誤差過小導致了預測錯誤率的增加,即真實風險的增加)。
??? 因此,在有限樣本情況下,僅僅用ERM來近似期望風險是行不通的。統計學習理論給出了期望風險R[f]與經驗風險Remp[f]之間關系:R[f] <= ( Remp[f] + e )。其中 e = g(h/n) 為置信區間,e 是VC維 h 的增函數,也是樣本數n的減函數。右端稱為結構風險,它是期望風險 R[f] 的一個上界。經驗風險的最小依賴較大的F(樣本數較多的函數集)中某個 f 的選擇,但是 F 較大,則VC維較大,就導致置信區間 e 變大,所以要想使期望風險 R[f] 最小,必須選擇合適的h和n來使不等式右邊的結構風險最小,這就是結構風險最小化(Structural Risk Minimization, SRM)歸納原則。實現SRM的思路之一就是設計函數集的某種結構使每個子集中都能取得最小的經驗風險(如使訓練誤差為0),然后只需選擇適當的子集使置信范圍最小,則這個子集中使經驗風險最小的函數就是最優函數。SVM方法實際上就是這種思想的具體實現。
??? SVM是一種基于統計的學習方法,它是對SRM的近似。概括地說,SVM就是首先通過用內積函數定義的非線性變換將輸入空間變換到一個高維空間,然后再在這個空間中求(廣義)最優分類面的分類方法。
總結
以上是生活随笔為你收集整理的拉格朗日 SVM KKT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Karush-Kuhn-Tucker 最
- 下一篇: SVM中的Karush-Kuhn-Tuc