最优间隔分类器-SVM
http://blog.csdn.net/Andrewseu/article/details/46991541
本講大綱:
1.最優間隔分類器(optimal margin classifier)?
2.原始/對偶優化問題(KKT)(primal/dual optimization problem)?
3.SVM對偶(SVM dual)?
4.核方法(kernels)(簡要,下一講詳細)
1.最優間隔分類器
假設給我們的數據集是線性可分的(linearly separable). 就是說用超平面可以分隔正負樣本. 我們要找到最大的幾何間隔. 我們可以轉化為下面的優化問題:?
?
由于||W|| = 1,這保證了函數間隔等于幾何間隔,只要解決了上面的優化問題我們就解決了這個問題,但是||W||是一個不好的(非凸性)的限制,這不是我們能夠直接用軟件解決的優化問題. 因此轉化為更好的一個問題:?
我們最大化, 我們把限制||W||去掉了,但是仍然是非凸性的.
前面有討論過對w和b加上任意比例的限制不會改變什么. 因此,加上規模的限制,對訓練集的函數間隔設置為1:?
因此,最優化問題變為:?
?
上面的優化問題變為一個凸二次目標函數(convex quadratic objective). 這給我們一個最優間隔分類器的解決方案. 這個優化問題可以用商用的二次編程代碼解決.
2.原始/對偶優化問題
2.1 拉格朗日二元性(Lagrange duality)?
考慮下面形式的問題:?
?
我們可以用拉格朗日乘數法來解決這個問題.
定義Lagrangian為:?
?
這邊成為拉格朗日乘數(Lagrange multipliers). 另其偏導數為零.?
?
然后解出w和
2.2 原始優化問題(primal optimization problem)?
?
定義一般的拉格朗日算子(generalized Lagrangian):?
?
是拉格朗日乘數.?
?
下標”P”表示”prime”, 如果給定的w違反了原始限制(),則?
?
如果w滿足原始限制,那么?因此:?
考慮最小化問題:?
?
可以看到回到了最初的原始問題. 定義目標的原始值為.
一個略微不同的問題:?
?
下標”D”表示”dual”.
2.3 對偶優化問題(dual optimization problem)?
?
同樣的,定義目標的對偶值為:
顯然:?
(函數最小值的最大值肯定小于等于最大值的最小值),在某些條件下,會有,因此我們可以通過解決原始問題來解決對偶問題.
假設f和g是凸函數(黑塞矩陣為半正定的),h為仿射函數(affine,和線性是一樣的,只不過是加了截距,). 假設g是嚴格可行的,就是說對于所有的i存在.
基于上面的假設,肯定存在使得w*是原始問題的解而是對偶問題的解. 而且,滿足KKT條件(Karush-Kuhn-Tucker condition),如下:?
?
如果滿足KKT條件,那么就是原始問題和對偶問題的解.?
等式(5)稱為KKT對偶補充條件(KKT dual complementarity condition). 具體來說,就是如果,那么0.
3.SVM對偶
前面為了找到最優間隔分類器,提到以下的優化問題(原始優化):?
?
限制可以寫為:?
?
?
(實線為超平面)?
最小的間隔是離決定邊界最近的點,上圖中有三個(一個負的兩個正的),因此對于我們的優化問題只有三個a是不等于零的. (KKT對偶補充條件,只有,函數邊界才等于 1). 這三個點被稱為支持向量(support vector).?支持向量的數量比訓練樣本數量小很多在以后會非常有用.
為優化問題構建Lagrangian,有:?
?
對w求偏導:?
?
推出:?
?
對b求偏導:?
根據上面的式子化簡得到:?
?
最后一項為零,進一步得到:?
得到以下對偶優化問題:?
?
需要滿足d*和KKT條件來滿足我們的優化問題. 因此我們可以通過解決原始問題來解決對偶問題. 原始w作為a的函數,已經有了之后, 很容易得到截距b為:?
?
再得到:?
?
因此如果我們找到了a,為了預測,我們只需要計算x和數據集中點的內積(). 并且我們知道除了支持向量a都是零,因此我們只需要計算x和支持向量的內積就可以進行預測了.
4.核方法
有時候訓練樣本的維數很高,甚至有可能得到的特征向量是無限維的. 通過計算不同方法的內積,利用內積來進行有效的預測.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的最优间隔分类器-SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么叫轻度高血压
- 下一篇: 从基于直方图的Graph-Cut到Gra