svm-支持向量機

目標函數推導

點到超平面的距離公式:

|ωTx+b|||ω||

在分類過程中,f(x)=ωTx+b 預測出的符號應與類標記y 一致。故y(ωTx+b) 的正負性可以表示分類的正確性。
函數間隔:
Υ=yf(x)

幾何間隔:
Υ=yf(x)||ω||

超平面最小几何間隔:
Υ=minyf(x)||ω||

最大間隔分類器的目標函數就是最大化最小几何間隔Υ
maxΥ=maxminyf(x)||ω||

這裏寫圖片描述
即:
maxΥ=maxyf(x)||ω||

st.yi(ωTxi+b)Υ

令函數間隔爲1,則yf(x)=1 ,則超平面最小几何間隔爲
Υ=min1||ω||

從而目標函數轉爲:

max1||ω||=min12||ω||2

st.yi(ωTxi+b)1

現在目標函數是二次的,約束條件是線性的,所以這是一個凸二次規劃問題。

拉格朗日法

使用拉格朗日法,得到對偶問題:

L(ω,b,α)=12||ω||2i=1nαi(yi(ωTxi+b)1

首先對ω 和b求最小化,得到:
ω=i=1nαiyixi

若存在αi0 ,則對應的就是在分界線上的支持向量,那麼yi(ω.xi+b)1=0 .則等式兩邊同時乘yi
b=yii=1nαiyi(xi.xj)

根據
f(x)=ωTx+b
可得分類結果
ωb 帶回到目標函數後,可以得到關於α 的函數,通過SMO等方法可以解出。
maxαi=1nαi12i,j=1nαiαjyiyjxTixj

s.t.
0αiC

 i=1nαiyi=0

smo

求解二次規劃的解析法

在 αi = {α1, α2, α3, …, αn} 上求上述目標函數的最小值。爲 了求解這些乘子,每次從中任意抽取兩個乘子 α1 和 α2,然後固定 α1 和 α2 以外的其 它乘子 {α3, …, αn},使得目標函數只是關於 α1 和 α2 的函數。這樣,不斷的從一堆乘 子中任意抽取兩個求解,不斷的迭代求解子問題,最終達到求解原問題的目的。
假設選擇的是兩個變量α1, α2,其他變量{α3, …, αn}是固定的,那麼子問題可以寫成:

minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2

s.t.
0αiC

α1y1+α2y2=i=3Nαiyi=ϵ

其中,ϵ 是常數。兩個因子不好同時求解,所以可先求第二個乘子 α2 的解(αnew2 ),
得到α2 的解(αnew2 )之後,再用α2 的解(αnew2 )表示α1 解(αnew2 ),。爲了求解αnew1 ,
得先確定 (αnew2 ), 的取值範圍。假設它的上下邊界分別爲 H 和 L,那麼有:
Lαnew2H

y1和y2不同時,當做+-1
y1和y2相同時,都當做1
則可以畫出兩個取值圖:
這裏寫圖片描述
設預測值爲:
g(x)=i=1NαiyiK(xi,x)+b

則對輸入預測值與真實輸出之差
得到關於單變量α2 的未考慮不等式約束0αiC 時的解:
這裏寫圖片描述

選擇α 的啓發式算法

  1. 外層循環尋找第一個乘子α1 ,找到不滿足kkt的
  2. 內層循環尋找滿足條件:max|EiEj| 的乘子
    這裏寫圖片描述

總結

smo是一種啓發式算法,基本思路是:如果所有變量都滿足kkt條件,那麼最優化問題的解就得到了。否則選擇2個變量,固定其餘變量,針對這2個變量構建一個二次規劃子問題,這時可以通過解析法求解。如此可以通過不斷的將原問題拆解爲子問題達到求解原問題的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章