推薦svm理論基礎的bloghtml
SVM的學習是在特徵空間上進行的,SVM全部輸入都是由輸入空間轉換到特徵空間,可是在線性可分SVM和線性SVM中假設這兩個空間元素一一對應,而非線性SVM中,是非線性映射。回顧線性可分的定義是存在一個線性函數可以將兩類樣本徹底分開的數據稱爲線性可分數據。
思想:給定特徵空間的訓練集T={(x1,x2),…(xN,yN)},X屬於Rn,Y={+1,-1}稱爲正類,負類。學習的目標是在特徵空間找到一個分離超平面,能將實例徹底分類。超平面方程w·x+b=0,法向量w,b截距,可用(w,b)來用。這裏用間隔最大化來最優化分離超平面。
線性可分支持向量機定義:訓練集經過間隔最大化或等價地求解相應凸二次規劃問題學習model分離超平面;分類決策函數爲。這裏的超平面對應將線性可分數據正確劃分且間隔最大。算法
一個點距離超平面的遠近能夠表示分類預測的確信程度,較遠的可更爲可信。函數間隔(function margin)的概念簡單說就是用|w·x+b|可以相對的表示點x距離超平面的遠近,w·x+b的符號與label y的符號是否一致表示分類是否正確,所以可用y(w·x+b)表示分類正確性和確信度。即超平面(w,b)關於樣本點(xi,yi)的函數間隔爲:
超平面的函數間隔全部樣本點中函數間隔最小值:,表示超平面的預測正確性和確信度。
以上函數間隔存在問題:當法向量w,截距b成倍增長如2w,2b,超平面未變,可是函數間隔成爲原來的2倍。
處理:將w規範化,如,||w||=1,||w||爲L2範數,這就是幾何間隔(geometric margin),即
(其實就是中學的點到直線的距離公式)
同理,超平面要求爲全部樣本點中幾何間隔最小值。超平面關於樣本點的幾何間隔就是實例點到超平面的帶符號距離(signed distance)
幾何間隔和函數間隔的關係是:
雖然當||w||=1時兩者相等,可是幾何間隔由於歸一化的問題,不會由於w,b的成倍變化而變化。函數
知足分類條件的超平面可能有無窮多個,可是幾何間隔最大化就將獲得惟一超平面——稱爲硬間隔最大化。幾何間隔最大的好處是可以對距離最近的點也能有很好的劃分,即對未知數據的預測能力更強。學習
補充一下凸優化的概念:
凸優化問題就是約束最優化問題:
其中f爲目標函數,g爲約束函數,f,g均是R空間上連續可微的凸函數,約束函數h是R上的仿射函數(即形式y=ax+b,做爲對比線性函數爲y=ax)。
當目標函數f是二次函數且約束函數g是仿射函數時,凸優化問題就是凸二次規劃問題。優化
對原始的最優化問題應用拉格朗日對偶性,求解對偶問題(dual problem)獲得原始問題(primal problem)最優解。
首先構建Lagrange function:對約束引入拉格朗日乘子(Lagrange multuplier),得,
其中,α爲multiplier向量。
根據對偶性,原始問題轉化爲
分兩步走:
*先求min部分:分別對w,b求偏導,並另偏導爲0。
得,
將w的表達式代入L函數,同時利用第二個summation=0的條件消去一項得:
所以,獲得,
spa
這裏補充一些基礎知識:
[深刻理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件] http://blog.csdn.net/xianlingmao/article/details/7919597)
第二個理解博客.net
回到正題,如此將原始約束最優化問題轉化爲對偶最優化問題,原始最優化的解可求(具體可證):
分離超平面爲:;
分類決策函數爲:
此式稱爲SVM的對偶形式,只依賴於輸入x和訓練樣本xi的內積
線性可分SVM學習算法:
支持向量在定義:
稱爲SV。
支持向量必定在邊界上,所以
αi*>0,故, or
注意:現實狀況多是數據集含有噪聲,致使數據集線性不可分。3d
簡單來講就是數據集中存在一些特異點(outlier),正是由於這些點的存在致使數據變得線性不可分,容易想到的是除去這些點,數據集仍然變得線性可分。線性不可分意味着某些點不知足約束條件;
爲了解決這個問題對每一個樣本點(xi,yi)引入一個鬆弛變量ξi>=0,則約束條件爲;
同時,對每一個鬆弛變量ξi,在目標函數引入ξi即
其中,C>0稱爲懲罰參數,C變大對誤分類懲罰增大,變小誤分類懲罰減少。最小化目標函數的兩層含義:對最大間隔儘可能小;同時誤分類點個數也儘可能小,C是調和兩者的係數。從而能夠根據上節內容來學習此處的svm模型,稱爲軟間隔最大化。
線性不可分線性SVM學習模型:凸二次規劃(原始問題):
因這個問題是context quadratic programming,所以關於(w,b,ξ)的解是存在的,w惟一,b不惟一存在於某一區間。
經過求解上述凸優化問題獲得分離超平面:;相應分類決策函數:,這就是線性支持向量機,比線性可分SVM更具備廣適性。代理
對偶問題:
原始最優化拉格朗日函數爲:,
對L的w,b,ξ求偏導=0,即獲得對偶問題,求解對偶問題獲得原始問題的解:
線性SVM算法:
htm
線性不可分時,將對偶問題的解中對應於稱爲支持向量(軟間隔的支持向量)
支持向量到邊界的距離:
α和ξ對分類的影響:
此處書上講解不太詳細可看http://www.cnblogs.com/pinard/p/6100722.html
其中,這也是一系列SVM原理介紹。
與以上思路(軟間隔最大化,凸二次規劃)不一樣的是,最小化如下目標函數:
其中,第一項爲經驗風險,則合頁損失函數爲:,第二項爲正規化項
右下角的「+」符號爲取正值的函數:
L式的含義是:當樣本點被正確分類且函數間隔大於1時損失爲0,不然。
所以線性SVM原始最優化問題
等價於
合頁損失函數是0-1損失函數的上界又稱爲代理損失函數(surrogate loss funtion),虛線爲感知機的損失函數,可見合頁損失函數更靠右因此對學習提出更高的要求。
由上可知映射函數是不知道的,那麼一個函數K(x,z)知足什麼樣的條件纔是核函數?——正定核。
補充矩陣知識:
正定:全部特徵值均大於0;
半正定:全部特徵值均大於等於0;
貼一個知乎回答:
用戶語冰對特徵值大於0與變換角度小於0的關係闡述:特徵值就是原空間某一個基在變換後的空間的長度變化係數,大於0表示方向一致,小於0表示方向相反。變換後夾角小於90度,其實隱藏的含義是變換後的向量投影回原向量時方向不變。用特徵值不小於零或者大於零的條件作限制能夠更直觀也更嚴格地表達出這一個特色
Gram矩陣:v1,v2,…,vn 是內積空間的一組向量,Gram 矩陣定義爲: Gij=⟨vi,vj⟩,顯然其是對稱矩陣。
性質:Gram矩陣是半正定的;
一個重要應用是計算線性無關:一組向量線性無關 當且僅當 Gram行列式不等於0.
利用核技巧能夠將線性分類的學習方法應用到非線性分類問題上,將線性SVM擴展到非線性SVM中,只需將線性SVM對偶形式中的內積函數換成核函數。
非線性SVM學習算法:
凸二次規劃問題具備全局最優解,可是當訓練樣本很大時,這種求解算法很低效。故這裏提出一個SMO算法,以快速實現(1998年 Platt提出)。
要解決的問題是:凸二次規劃的對偶問題
SMO基本思路:啓發式算法,KKT條件時最優化問題的充要條件,若是知足則解就獲得了。不然,選擇兩個變量,固定其餘變量,針對這兩個變量構建二次規劃問題,這就使得原始問題變得更小,能夠經過解析方法獲得,提升計算速度;應該要求關於這兩個變量的解更接近於原始二次規劃的解。注意子問題有兩個變量,一個是違反KKT條件最嚴重的一個,另一個由約束條件自動肯定,如此SMO將原問題不斷分解爲子問題求解,進而達到求解原始問題的目的。
好比,將約束條件中假設兩個變量alpha1,alpha2,其餘固定,那麼等式約束爲:
SMO算法包括兩部分:兩個變量二次規劃的解析方法,選擇變量的啓發式方法。
仍是假設兩個變量爲alpha1,alpha2,則:
目標函數省略了不含這兩個變量的常數項,ζ是常數。
首先觀察約束條件,而後在約束條件下求解:
通過畫圖和變形,發現這已經變成中學學過的線性規劃的問題,這裏不等式約束變成一個區域,等式約束變成一條平行於正方形約束區域的對角線的直線,兩個變量可相互表示,所以兩個變量最優解的問題變成了單變量最優化的問題。
選擇兩個變量,至少一個變量嚴重違反KKT條件。