SVM(Support Vector Machine)讀書筆記二(支持向量和Kernel方法)

在一個線性不可分的樣本中,用添加多次項特徵可以將兩類樣本分開,具體原理請參考 這裏,用SVM分類器也是同樣道理。如果兩類樣本交叉越多,需要越高次的特徵,模型就越複雜,這在存儲上和計算資源上都是很大的開銷。SVM用kernel方法就解決了這個問題,kernel方法是將高維度的計算放到低維度來做,最後得到的是高緯度上的模型。具體原理請看下面的推導。

特徵轉換

如果樣本在低緯度空間不可分,那麼可以將樣本的特徵從低維度空間投影到高緯度空間,如下圖所示 
這裏寫圖片描述 
而一般從低緯度空間向高緯度空間投影的方法就是往已有的特徵中添加多項式特徵項,再來看下面一個圖 
這裏寫圖片描述
上面三個圖中,在(x1x1,x2x2)這個空間中,兩類樣本線性不可分,即在(x1x1,x2x2)空間中的所有線性模型都無法將這兩類樣本區分開。如果把這個空間投影到比如(x1x1,x2x2,x21x12,x21x2x12x2,x21x22x12x22,x21x32x12x23,x31x2x13x2,…)這樣的一個空間中就變得線性可分了(當然有過擬合的風險),在這個高緯度的空間中的超平面表現在(x1,x2x1,x2)空間中就是圖三所示的一條曲線,圖二則是將(x1,x2x1,x2)投影到二次項組成的4維空間中。

SVM的對偶問題

假設已經通過ϕ(x)ϕ(x)將樣本投影到了能夠將兩類樣本分開的zz空間,那麼需要解決的優化問題爲: 

minw,b12wTw;s.t.yn(wTϕ(x)+b)1,n=1...Nminw,b12wTw;s.t.yn(wTϕ(x)+b)≥1,n=1...N

上一篇中 講到可以用二次規劃解這個問題,只要把Q,p,A,c丟進解二次規劃的軟件裏就可以得到解,這裏對應的特徵是投影之後的高緯度特徵。 
Q=[00Td0dId];p=0;A=y1ynxT1y2y2xT2.......ynynxTn,c=1Q=[00dT0dId];p=0;A=[y1ynx1Ty2y2x2T.......ynynxnT],c=1

問題是,這裏的Q是和投影之後的維度有關的,如果投影到的空間是很高維甚至無窮維,這個問題就沒法解了。爲了解這個問題,就需要把原來的問題轉化成它的對偶形式,讓這個問題的求解和轉換後的維度沒有關係,只和輸入的樣本的個數有關。

SVM的求解是一個帶約束的最佳化問題: 

minw12wTw;s.t.yn(wTxn+b)1,n=1,2...Nminw12wTw;s.t.yn(wTxn+b)≥1,n=1,2...N

解上面這個帶約束的最佳化問題可參考Lagrange乘子法(可參考https://en.wikipedia.org/wiki/Lagrange_multiplier),把約束放進式子中,寫成Lagrange表達式爲: 

L(b,w,α)=12wTw+i=1i=Nαi(1yn(wTzn+b))L(b,w,α)=12wTw+∑i=1i=Nαi(1−yn(wTzn+b))

首先,用 Lagrange 乘子法可以將上面的最優化問題寫成下面的形式: 
minw,bmaxαL(b,w,α)=minw,b12wTw+maxαi0,i=1..Ni=1i=Nαi(1yn(wTzn+b))minw,bmaxαL(b,w,α)=minw,b12wTw+maxαi≥0,i=1..N∑i=1i=Nαi(1−yn(wTzn+b))

這裏,爲什麼這個最優化問題和上面的n個不等式約束的優化問題是等價的呢? 
上面優化過程中,先固定住w,b,根據 αα 來進行最大化,在w,b滿足 (1yn(wTzn+b))0(1−yn(wTzn+b))≥0 時候,最大化 αα 那項最大是無窮(這裏w,b的集合假設爲s1);w,b滿足 (1yn(wTzn+b))0(1−yn(wTzn+b))≤0 時候,最大化是 αα 那項是0(這裏w,b的集合假設爲s2)。第二次是找到最小化那個表達式的w,b, 當然選取的w,b肯定是s2裏面的,因爲s1根本不可能最小化,所以在最後的解裏 (1yn(wTzn+b))0(1−yn(wTzn+b))≤0 肯定成立。

上式中,把w,bw,b固定住,變動αα,要得到最大的那個αα,那麼minw,bL(b,wαα,要得到最大的那個αα,那麼minw,bL(b,w,α)minw,bL(b,w,α)比任何αα的項要大,那麼mi

相關文章
相關標籤/搜索