機器學習之核函式邏輯迴歸(機器學習技法)
從軟間隔SVM到正則化
從引數ξ談起
在軟間隔支援向量機中引數ξ代表某一個資料點相對於邊界犯錯的程度,如下圖:
在資料點沒有違反邊界時ξ的值為0,在違反邊界時的值就會大於0。所以總的來說ξ的值等於max(1 - y(WZ + b) , 0)。所以我們把問題合併如下:
這樣這個問題就變成了一個沒有條件的問題。
與L2正則化的關係
上述簡化後的問題與L2的正則化極其相似:
它們的目標都是最小化W²與一個錯誤衡量的和。在軟間隔的SVM中用來做正則化的是W,我們希望有小的W這樣就會有LargeMargin。在L2中我們也是希望W有較小的維度這樣就不至於模型複雜度過高。
為什麼不以正則化的角度出發去推導軟間隔SVM?
①在這個簡化問題上,沒有一次的約束條件所以我們很難想象去用二次規劃工具去解決。當然也就不會用到關於對偶與核函式的方法。
②在這個簡化問題上,max()函式在某些點上不可微分很難最小化。
總的來說如果以正則化的角度出發去推導軟間隔SVM會使得問題非常難解。
關聯的目的
寫到這裡我們知道了SVM就像是一個正則化的模型我們總結如下:
無論是SVM的LargeMargin還是L2的限制(事實上是維度上的限制)都會得到更少的超平面減少了模型過擬合的危險。軟間隔是我們估算錯誤的一種方式。
我們之所以將SVM看成是一個正則化的模型是因為我們希望SVM以一種新的角度去做更多的事情(比如說迴歸問題,etc.)。
軟間隔SVM的錯誤衡量
與二元分類的錯誤衡量的關係
軟間隔SVM在衡量一個資料的犯錯誤情況時就是在看這個資料點的違反邊界的情況也就是ξ的值,它等於max(1 - y(WZ + b) , 0)
圖中的折葉式曲線為SVM的錯誤衡量曲線,我們能夠明顯看出SVM的錯誤衡量曲線是0/1錯誤函式的上限(準確的來說是凸的上限)。
與LogisticRegression錯誤衡量的聯絡
將LogisticRegression的錯誤函式作一個放縮的動作放到上圖的座標系中得到:
圖中橘色的曲線就是LogisticRegression的錯誤衡量曲線。從直觀上感覺它與SVM的錯誤衡量曲線很相似。它們都有以下特徵:
從+∞與-∞兩個極端的情況來看LogisticRegression的錯誤與SVM的錯誤幾乎一樣,從這種角度來開SVM就像是在做L2正則化的LogisticRegression。(一個是最大的邊距,一個是W的降維處理)
用線性模型做二元分類
①PLA演算法直接去衡量在一筆資料上是否犯錯進而去優化模型,但是它要求資料是線性可分的。即使是pocket也是一個NP-Hard問題。
②SVM是通過二次規劃區優化模型的,比叫簡單而且也有理論上的保障。但是在做二元分類的問題上它只得到一個上限。
③L2正則化的LogisticRegression通過梯度下降法(或者是隨機梯度下降法)來優化模型,比叫簡單也有正則化的保證。但是在做二元分類的問題上它只得到一個上限。
小節:我們解決了一個L2正則化的LogisticRegression就幾乎解決了一個SVM的問題。
SVM做軟間隔二元分類
簡單的組合
既然SVM與LogisticRegression有很大的相似性,我們試著將SVM與LogisticRegression結合起來去做軟性的二元分類。
方法一:得到SVM的結果然後對映到S型函式上,這種方法表現的還不錯但是沒有體現出LogisticRegression最優化時極大似然估計的特徵。
方法二:得到SVM的結果,以這個結果為起點去做LogisticRegression,但是這樣的做法與直接去做一個LogisticRegression沒有什麼區別。因為後面的效果將前面的SVM的功勞覆蓋了。
二者兼顧的組合
①我們先用SVM得到W與b的值。
②將這個值進行一些放縮,並對映到S型函式上。如下圖所示:
整體來看先用SVM做出了大體上的結果又用LogisticRegression進行了微調。從形勢上看,整個式子與LogisticRegression最優化時的結構很相似(如下圖),其中B的值是做一些十分微小的微調。在這裡更把SVM的前置操作當做是對資料X的一種特殊轉換。
理論上來說:
①A的值應該大於0,如果小於0的話證明在一開始的時候我們的SVM在亂做。
②B的值約等於0,在SVM做好之後不應該有太大的調整。
將上述的式子更加具體化得到下圖:
當SVM計算完畢的時候我們將X這個多維的轉換為一個一維的數字我們對這個數字做放縮和平移的動作,在第二階段我們只是在解決一個單一維度的兩個變數的邏輯迴歸問題。
總的來說這個模型的解決如下:
這個模型的結果與只有SVM做出來的結果略有不同因為有B做微調的動作。由於只有兩個變數我們除了用(隨機)梯度下降法之外我們還可以使用其他的方法來得到最優解。
小節:我們用SVM的方式得到了LogisticRegression在Z空間(特徵轉換空間)的解。
核函式邏輯迴歸
核函式背後的關鍵
在做SVM的時候核函式是計算一堆Z的內積的方法,而在最終的模型中也能夠使用核函式的原因是最優的W的解能夠寫成一堆Z的線性組合(稱之為representer theorem)如下圖:
而在我們以前學過的演算法中也出現過最優的W的解能夠寫成一堆Z的線性組合如下:
①SVM中的係數α是從對偶問題的結果中來。
②PLA中的係數α是來自我們訓練的過程裡每個Z到底參與了多少錯誤修正的過程來得到的。
③LogisticRegression中的係數α來自於在梯度下降的時候梯度告訴我們走的情況。
我們想要將核函式的方法應用到上述這些情景中來更加方便的解決在Z空間(特徵轉換)的問題。
representer theorem
至於什麼時候能夠使用representer theorem 這個理論,在數學上給出了這樣的結果:如果現在解決的是一個L2正則化的線性模型的問題,它的最佳化W的可以使用一堆Z的線性組合來表示,如下圖:
representer theorem 的證明
①將最佳的W(這裡用W*來表示)分解成與Z空間平行的部分W||,和與Z空間垂直的部分W⊥。我們有一個假設:如果W*能夠用Z來完全表示的話那麼W⊥的值肯定為0。
②我們使用反證法,既如果W⊥不為0則有下面的情況:
最重要的是在計算W*的內積的時候會有W*的內積>W||的內積,這樣W||就成為了最優解這顯然與我們的假設矛盾,所以W⊥不為0這個假設不成立。這就是representer theorem為什麼可行。我們得到最強烈的資訊就是凡是進行L2正則化的線性問題我們都能將核函式的技巧用到上面。
核函式邏輯迴歸
我們將用核函式的方法來解決一個L2正則化的邏輯迴歸如下圖:
我們直接將W*表示成β的形式帶到我們最佳化的問題中,然後就得到一個關於β的無條件的最佳化問題。這時我們可以用梯度下降法或隨機梯度下降法來得到問題的最優解。
核函式邏輯迴歸的全新角度
再仔細觀察核函式邏輯迴歸之後會發現它可以是一個關於β的線性模型:
其中kernel函式既充當了轉換的角色有充當了正則化的角色,這種角度同樣適用於SVM演演算法。需要注意的是:SVM的解α大多都是0,核函式邏輯迴歸的解β大多都不是0這樣我們會付出計算上的代價。