將軟間隔支持向量機看做正則化模型
上一小節中我們介紹了軟間隔支持向量機,該模型允許有錯分類數據的存在,從而使模型對數據有更好的適應性,有效避免過擬合的問題。
現在我們回顧一下松弛變量ξn,我們用ξn來記錄違反分類邊界的數據到邊界的距離。

我們可以從另外一個角度,考慮一下ξn的計算:
對于任何一個點,如果該點違反了邊界,那么ξn記錄了其到邊界的距離;如果沒有違反,ξn為0。

所以我們可以用下面這個式子來表示:

與正則化模型的比較
在正則化中,我們用w的長度來控制復雜度,并且我們希望某個誤差度量最小。所以對于軟間隔支持向量機來說,你可以把它看成是這種正則化的一種形式。

那么我們為什么不從正則化的角度來介紹SVM呢?
原因:
首先如果以正則化的角度看待SVM,那么這就不能使用二次規劃的方式來求解,這樣就不能使用核技巧來解決對偶問題
其次,max(·,0)這個誤差函數可能沒有辦法進行微分,比較難以求解
SVM和正則化
正則化做的事情是,其想讓Ein變小,但是在其上使用w的長度作為控制的條件。
而硬間隔SVM是在把Ein當做是條件,要求模型一定要將數據正確的分開,并且希望w的長度越小越好。
如果看一般的L2正則化,則是如下的形式:

所以,最大間隔就是一個正則化的實現形式,它代表了可以找到較少的超平面。
參數C比較大的時候,對應比較小的λ,就代表了越小的正則化。

小結
我們已經介紹完了SVM,但是我們想將SVM延伸到其他問題上,比如邏輯回歸的問題上,那么我們需要知道SVM和其他問題的關系,這樣才能將它靈活的運用。
使用SVM來求解邏輯回歸問題
第一步:比較SVM中誤差函數和邏輯回歸的交叉熵誤差
下面我們將SVM中誤差函數、邏輯回歸的交叉熵誤差和0/1誤差畫在同一圖像中:

我們可以看出SVM中誤差函數和邏輯回歸的交叉熵誤差都是0/1誤差的上限函數,而且SVM的誤差函數還是一個凸上限函數。
我們可以發現SVM中誤差函數和邏輯回歸的交叉熵誤差是很相像的。
下面是這兩個誤差函數的比較:

于是,我們可以猜想,SVM相當于做L2正則化的邏輯回歸問題。
第二步:用SVM做二元軟分類來得到類別概率

根據上面的式子,我們首先使用SVM計算一個分數,得到w。然后再加上兩個自由度,將這個分數乘上放縮因子A,加上平移因子B,這樣比較符合邏輯回歸中最大似然的需求。從幾何意義上來講,我們通過SVM計算得到分割線的法向量,然后再進行一些平移和放縮的微調,使之能更加吻合最大似然的要求。這是一個融合SVM和邏輯回歸的方式。
如果SVM做的足夠好的話,A的值應該大于0,而B的值應該很接近0。

下面是新的邏輯回歸的式子:

這個式子第一階段用SVM得到的一個分數,這個分數也可以看做是做完SVM后得到的一個特別的轉換,相當于從多維轉到一維的轉換。
在第二階段相當于求解的是單一維度的邏輯回歸問題。
這個算法流程敘述如下:

這個方法是使用核SVM得到Z空間中的邏輯回歸的近似解。
核邏輯回歸
在SVM中,我們要解的是一個二次規劃問題,然后可以到處對偶的式子,我們使用核技巧來求解高維向量的內積。
然而,在邏輯回歸中,壓根就不存在二次規劃問題,那么我們該怎么去使用核技巧呢?
我們在計算中用到了w和z的內積,如果w可以表示成z的線性組合,當w和z求內積的時候,我們就可以用核技巧來計算z和z的內積了。

表示定理(Representer Theorem)
如果你求解的是L2-regularized的問題,那么一定有一個最好的w可以表示成z的線性組合:

如何來證明這件事情呢?
我們將w分成兩個部分,分別為w的平行部分(由zn展開的那個空間的向量來構成)和w的垂直部分(與zn展開表示的向量垂直的向量)。
我們希望最后完全沒有w的垂直部分。
將最優的那個w與zn相乘其實和w的平行部分和zn相乘得到的結果是一樣的,因為w的垂直部分與zn相乘為0,所以得到的err是一樣的。
對于最佳解wTw,其包含w的平行部分的平方和w的垂直部分的平方,如果使用反證法,假設w的垂直部分不是0,那么,wTw必將大于w的平行部分的平方,但是最小解wTw卻比w的平行部分的平方還大,這與我們的假設是矛盾的,所以就證明了w的垂直部分為0。
這樣就證明了w的最佳解可以被z線性表達。

通過上面的證明,我們知道只要是求解L2的線性模型,就可以使用核技巧。
將核技巧用于L2正則化的邏輯回歸

我們先得到要求解的表達式,然后用zn和βn的線性組合的方式表示最佳的w,代入到原始的式子中,就可以通過求βn代替求w了。

這就得到了一個沒有約束條件的最佳化問題,我們可以通過梯度下降的方法來求解βn。這就是核邏輯回歸問題。
核邏輯回歸的另一種解釋
在之前的介紹中,我們將核邏輯回歸看做是w的線性模型,這個w的線性模型作用于使用核技巧進行的轉換之中的數據,還使用了L2正則項。
而另一種視角是,我們可以將K(xm,xn)當做是一種數據的轉換,在轉換后的數據(K(x1,xn),K(x2,xn),...,K(xN,xn))加以β的權重。
將前面一項寫作矩陣形式βT* K *β可以看做是β和β的乘積,也相當于一種正則項。
這樣核邏輯回歸就可以看做是β的線性模型,作用于使用核函數轉換之后的數據和一個核正則項。

轉載請注明作者Jason Ding及其出處
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
Github博客主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.lxweimin.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354進入我的博客主頁