支持向量机学习总结
1.支持向量機是什么?
? ? 支持向量機是一個超平面分類算法,他通過對已有標記的數據進行訓練得出分類的超平面,對未知標記的點進行分類.
2.支持向量機的工作原理?
? ? 線性可分情況:
? ? ? ? 1.求平面wx+b=0,即求w和b的值.使得樣本集中的點到平面的距離min?yi(wTxi+b)/||w||的值關于xi最小.實際上是求
? ? ? ? maxw,b (minxi (yi(wTxi+b)/||w||))
? ? ? ? 因為w,b前加一個系數不影響平面,所以令所有的yi(wTxi+b)>=1.其中最小的那些取等號.取等號的即為支持向量.
? ? ? ? 這里實際上是對w和b做了一次變換,設最小的那個點到平面的距離為r.令w'=w/r,b'=b/r.
? ? ? ? 2.轉化為lagrange dual problem.
? ? ? ? 在加入假設之后實際上是求
? ? ? ? maxw,b 1/||w||==>可以轉化為minw?||w||2/2
? ? ? ? s.t.?yi(wTxi+b)>=1 i=1,...n
? ? ? ? 其lagrange函數為
minw,b θ(w)=minw,b?maxαi,αi>0?L(α,w,b)=||w||2/2-Σiαi(yi(wTxi+b)-1)
? ? ? ? 因為是對αi求最值,所以lagrange函數問題θ(w)與原問題等價.這相當于把二次規劃的限制條件放到了目標函數中去了.
? ? ? ? 這里是先求max再求min.因為svm的lagrange函數滿足slater條件,同時滿足KKT條件.所以先求max再求min與先求min再求max得出的結果是一樣的.如果不滿足條件則
max min f(x,y) 是 min max f(x,y)的一個下界.一個是頂上最矮的,一個是地上最高的. 因而我們求其對偶問題
maxαi,αi>0?minw,b??L(α,w,b)=||w||2/2-Σiαi(yi(wTxi+b)-1) (1)
又有滿足KTT條件: L(α,w,b)對w,b求導為0.即得
w=Σi?αiyixi (2)
Σi?αiyi?= 0 (3)
? ? ? ? 將(2)代入(1)得
L(α,w,b)=Σiαi -?(1/2)*Σj,iαiαjyiyjxTixj
這里消掉了w和b.成了α的函數,同時還有Σi?αiyi?= 0.于是這就是轉化成的新的lagrange dual problem:
maxαi,αi>0?L(α,w,b)=Σiαi?-?(1/2)*Σj,iαiαjyiyjxTixj
Σi?αiyi?= 0 其中αi>=0
這一問題可以用SMO(序列最小最優化算法)求解α就可以通過(2)和wx+b=0解出w和b.最后給測試集x進行判斷時就計算wx+b就可以了.
另外可以直接使用(2)導出wx+b=Σi?αiyixTix+b.這里可以用支持向量和未知向量的內積來確認未知向量的類型.
? ? 線性不可分情況:
? ? ? ? 將數據從低維轉化為高維,使其線性可分,然后使用同樣的方法對其求解α,w,b.然后通過計算wx+b來確認.當然,這時的難點在于低維到高維的轉化.同時,這里求出的w,b也是高維空間中的值,因為只有高維空間才線性可分,滿足KKT條件.所有未知向量需要先轉化為高維向量再代入計算.這樣是非常麻煩的.同時高維向量的內積計算起來也很難.
? ? ? ? 這里有核函數將高維空間中的內積轉化為低維空間中的計算.這樣通過求α就可以進行計算了.其中有多項式核函數和指數核函數.
? ? ? ? 因為計算可以轉化為高維空間中的內積,所以才可以使用核函數的方法.否則SVM的應用會更加難以推廣
?
總結
- 上一篇: SGU101 求有重边的无向图欧拉迹
- 下一篇: MySQL5.6开启慢查询