SVM理解
一、概念
支持向量機是學習策略的間隔最大化,可形式化為一個求解凸二次規(guī)劃的問題,也等價于正則化的合頁損失函數的最小化問題。支持向量機的學習算法是求解凸二次規(guī)劃的最優(yōu)化算法。
二、問題類型
1)訓練數據線性可分時,通過硬間隔最大化,學習一個線性的分類器,叫線性可分支持向量機,又稱硬間隔支持向量機。
2)當訓練數據近似線性可分時,加入松弛變量,通過軟間隔最大化,叫線性支持向量機,又稱軟間隔支持向量機。
3)當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。
三、線性可分支持向量機
點(a0,a1)到直線或者平面w0x0+w1x1+b的距離如下:
換成向量形式為:
定義超平面(w,b)關于訓練集T的幾何間隔為超平面(w,b)關于T中所有樣本點(xi,yi)的幾何間隔之最小值,幾何間隔一般是實例點到超平面的帶符號的距離,當樣本點被超平面正確分類時就是實例點到超平面的距離。
在線性可分時,r=|w·x+b|等價為yi(w·xi+b),yi=±1,因為當樣本被正確分類時,yi(w·xi+b)的乘積亦為正值,r又稱為函數間隔
從上述點到平面的距離可以看出,當w和b成倍進行縮放的時候,距離是不變的,因為分子分母正好抵消。所以為了方便計算與優(yōu)化,我們對w和b進行縮放,讓離超平面最近的點(包含正負樣本)的函數距離r=1,這樣yi(w·xi+b)≥1恒成立。在滿足函數間隔都大于等于1的情況下,我們力求幾何間隔最大化,因為幾何間隔最大,在圖形上直觀顯示就是所有點離超平面都盡可能遠,分類的置信度就越高。所以我們的優(yōu)化目標變?yōu)椋?/p>
轉化為求最小值如下:
這是一個約束條件下求極值的凸二次規(guī)劃問題,可以采用拉格朗日對偶性方法求極值,最后就得到超平面w*·x+b*=0及分類決策函數f(x)=sign(w*·x+b*),即線性可分支持向量機。
拉格朗日對偶性求解:
優(yōu)化目標(拉格朗日不等式約束條件下求極值,條件不等式必須轉化為≤0的形式):
定義拉格朗日函數:
根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
步驟如下:
1)求minL(w,b,α),將拉格朗日函數L分別對w,b求偏導數并令其等于0,可以求得w和b
2)將求得的w和b帶入拉格朗日函數,變成了只有α的函數,再求對α的極大值
求解得:
知識點
1、最大超平面是有幾個,哪些是支持向量?
最大分離超平面存在且唯一。支持向量就是函數間隔為1的那些點,在決定分離超平面時只有支持向量起作用,其它實例點不起作用,支持向量的個數很少,所以支持向量機由很少的"重要的"訓練樣本確定。
2.為什么起作用的只有支持向量?
1)首先,在對w,b進行縮放的時候,就是讓離超平面最近的樣本點也即支持向量的函數距離r=1,所以初始w,b的值就是有支持向量來確定的,然后再最大化幾何間隔的時候,也是在r=1的前提下,最大化超平面和支持向量的幾何間隔距離,其它樣本點根本沒有參與到優(yōu)化當中。
2)其次,在拉格朗日對偶求解過程中,滿足kkt條件才能求得原問題最優(yōu)解,1-yi(w*·xi+b*≤0,αi*(1-yi(w*·xi+b*))=0,如果αi都等于0, 這求得的權重w=0,b=0,顯然不是最優(yōu)超平面,所有必有αi>0出現,而這個時候1-yi(w*·xi+b*)就等于0,所以這些點就是支持向量,最后求解的w就是根據支持向量求得的。
四、線性支持向量機
線性可分問題的支持向量機學習方法,對線性不可分訓練數據是不適用的,因為這時上述方法中的不等式約束條件并不能成立,如下圖所示:
從上圖可知,線性不可分意味著樣本點(x,y)不能滿足函數間隔≥1的約束條件,正負樣本點出現混雜在一起的情況,這個時候如果從中間畫一個超平面,分錯的樣本點的函數間隔就會為負值。為了解決此問題,使其滿足該條件,為每個樣本都引入一個松弛變量ξi,ξi≥0。
當ξi=0時,代表樣本點函數間隔正好為1;
當0<ξi<1時,代表樣本點位于支持向量所在的線與超平面之間,分類依舊正確;
當ξi=1時,代表樣本點位于分類超平面上。
當1<ξi時,代表樣本點已經被分錯。
也就是說松弛變量只為分錯的點,以及函數間隔≤1的樣本點設置,最終讓他們的函數間隔等于1,所以ξi只可能≥0,不可能小于0。
加入松弛變量后,約束條件就變?yōu)椋?/p>
同時,對每個松弛變量ξi,在目標函數中支持一個代價,最終優(yōu)化目標如下:
C>0稱為懲罰參數,C值增大對誤分類的懲罰增大,C值小時對誤分類的懲罰減小。最優(yōu)化目標的含義為:使1/2||w||2盡量小即間隔盡量大的情況下,同時使誤分類點的個數盡量少。
求解依然采用拉格朗日對偶法,同上述線性可分支持向量機。
知識點
1.為什么要引入松弛變量?
可以參考上述線性不可分的圖例,中間混雜了很多正負樣本點,屬于近似線性可分但又不能線性可分的情況,這個時候無法按照線性可分的約束條件進行求解,為了轉變?yōu)榫€性可分條件,才引入了松弛變量。另外引入松弛變量可以防止過擬合,同樣參考上述圖例,如果將混雜的樣本點完全分開,就會畫出一條曲曲折折的曲線,而這樣的曲線并不一定是真正兩種類別的合理分割線或者說分割面,中間混雜的部分有可能是噪音數據,所以不能完全迎合這些樣本點來畫分割面,避免陷入過擬合狀態(tài)。合理的方法,就是圖例所畫的超平面,引入松弛變量,在混雜數據中間畫一條超平面,讓大部分數據能夠分開即可,不迎合一部分噪音數據。
合頁損失函數(hinge loss)
Hinge loss專用于二分類問題,y為真實label,y^為預測值,函數如下:
當預測值被完全正確分為±1的時候,損失最小loss=0,當正樣本預測值為0.9,loss=0.1;當正樣本預測值為-0.8,這個時候樣本已經被誤分,loss=1.8損失變得比較大。
從上述圖示看得出,當樣本點的函數間隔≥1時候,loss就開始持續(xù)為0;當函數間隔<1的時候,loss就越來越大。
SVM可以通過直接最小化合頁損失函數求得最優(yōu)的分離超平面,目標函數如下:
其等價于上述引入松弛變量的優(yōu)化函數,證明如下:
令1-yi(w·xi+b)=ξi,通過前面松弛變量部分可得知,ξi的值只可能≥0,這個跟max(0,1-yi(w·xi+b))取值一致,而且其實就是一模一樣的取值,因為通過前面松弛變量部分可知,松弛變量只為那些函數間隔≤1的樣本點設置,而最終設置值就是讓他們函數間隔r=1,所以這些樣本點1-yi(w·xi+b)=ξi,而起作用的樣本點就是這些函數間隔r=1的樣本點,其它r>1的樣本點完全不起作用。所以上述合頁損失函數可以變?yōu)槿缦拢?sub>
至于前面的懲罰參數C,則可以另λ=1/2*C,再整體乘以參數C就保持一致了。
為什么叫合頁損失函數呢?
根據上述圖示可知,損失函數的圖形像一個合頁,因而叫合頁損失函數。
五、非線性支持向量機
用線性分類方法求解非線性分類問題分為兩步:
1)利用核技巧將原空間的數據映射到新空間
2)在新空間里用線性分類學習方法從訓練數據中學習分類模型。
核技巧的想法是,在學習與預測中只定義核函數K(x,z),而不顯式地定義映射函數,也就是學習是隱式地在特征空間進行的,不需要顯式地定義特征空間和映射函數。
總結
- 上一篇: hdu 1198 Farm Irriga
- 下一篇: SQL 快速入门2.1