支持向量機(二)——深入理解最優間隔分類器

1. 最優間隔分類器理論

之前我們提到在支持向量機中,我們的目標是尋找一個超平面,使得離超平面比較近的點能有更大的間距,也就是說我們不必考慮所有的點都必須遠離超平面,我們關心求得的超平面能夠讓所有點中離它最近的點有最大間距。
因此,注意最優間隔分類器我們的任務是什麼,就是使最近的點的幾何間距最大。先上公式:

這裏寫圖片描述

解釋一下: Max的γ,w,b$參數,右邊的γ爲最優化的目標函數,其實就是幾何間隔,s.t後面的兩個式子表示約束條件。(注意第一個式子中的γ已經是全局的幾何間隔中最近的那個樣本的幾何間隔)
首先我們的目標是幾何間距γ 最大,但不能任意的大,因此加的第一個約束條件就是要求找到一個γ ,使所有樣本的幾何間隔都要大於等於γ ,但是這個γ 可能有很多個,假設爲γmany ,因此我們要找到一組最大的w,b,使γγmany 中最大的那個值,這就是max裏面的三個參數。
其次爲什麼我們可以直接設置第二個約束條件,首先加上||w||=1這個條件,第一個約束條件就可以從函數間隔變成幾何間隔,而幾何間隔就是我們的目標,這是一個很好的思路,其次我們記得幾何間隔的優勢就是同時擴大w和b,對幾何間隔沒有影響,所以||w||=1這個條件可以直接通過對w和b的縮放實現,但對結果又不影響。
缺點:由於我們的要求解的參數w在一個球體表面,如果想得到一個凸優化問題,必須保證如梯度下降算法這種局部最優值搜索算法不會找到局部最優值,而非凸性約束不能滿足這個條件,所以需要改變優化問題。因此我們需要將上面的式子轉換一下:

這裏寫圖片描述>

我們繼續分析一下:max後面的參數不是γ (幾何間隔)而應該是γ^ (函數間隔),公式中沒有修正過來(同樣γ^ 表示已經是全局的函數間隔中最小的那個樣本的函數間隔)但是注意我們最優化的目標是γ^||ω|| ,這個目標其實還是幾何間隔,因爲γ=γ^||ω||
由於這裏||w||不等於1了,所以第一個約束條件其實是變成了函數間隔,翻譯一下,我們的目標不變依然是使幾何間隔最大,但是約束條件變爲,找到一個γ^ ,使所有樣本的函數間隔都要大於等於γ^ ,但是這個γ^ 可能有很多個,假設爲γ^many ,因此我們要找到一組最大的w,b,使γ^γ^many 中最大的那個值,這就是max裏面的三個參數。
注意這一步只是一個轉換,雖然約束條件變爲了函數間隔,但我們的目標還是求幾何間隔最大。
缺點:γ^||ω|| 目標函數不是一個凸函數,因此仍然需要改進。這裏γ^ 爲函數間隔之前講過,隨着w和b的擴大,函數間隔也會對應擴大,爲了保證w和b唯一而不是一組倍數解。因此我們將γ^ 做一些限制,保證解唯一,這裏爲了簡化,我們將γ^ =1,意義是將全局的函數間隔定義爲1,也就是說離超平面最近的點的幾何距離爲1||ω|| 。那麼求1||ω|| 的最大值就可以轉化成求12||w||2 最小值。改寫後的結果如圖:

這裏寫圖片描述

解釋一下:首先爲什麼我們可以設置函數間隔爲1,個人理解是,因爲我們要求的是函數間隔,由於之前說的縮放問題,無論w和b怎麼變,函數間隔會相應的變化,但是幾何間隔不會變,所以即使我將函數間隔縮放到1,幾何間隔依然不會變。
所以,這麼倒騰了幾下之後,我們發現最後變成了線性約束,這是一個凸優化問題,且沒有局部最優值,可以通過梯度下降找到全局最優值。而且是典型的二次規劃問題了。

2. 拉格朗日對偶

上面說了,我們將最優線性分隔器變化爲了二次規劃問題,那麼我們來看看這種帶有不等式約束的極值問題怎麼求,舉一個例子:

這裏寫圖片描述

根據高數裏面的知識(不細說),我們定義的一般化拉格朗日算子爲:
這裏寫圖片描述
其中此時αiβi 爲拉格朗日乘數(到這裏都是高數的知識)。
在這裏,拉格朗日用了一個很巧妙的函數,我們先看公式,再來看它的奇妙之處。
這裏寫圖片描述
這裏的下標P表示primal,即原始問題。先拋開上面的約束條件,我們要使θp(w) 取得最大值的話,假設gi(w)>0 或者hi(w)0 ,那麼我們總是可以調整αiβi 來使得θp(w) 有正無窮的最大值。但是一旦滿足約束條件,即gi(w)0 或者hi(w)=0 ,而αi0 ,那要使θp(w) 最大,則必須滿足gi(w)αi=0 ,則最大值就是θp(w)=f(w) 。所以這個函數最奇妙的地方就是αi0 ,而且是求極大值。
因此我們可以將這個函數換一種寫法:
這裏寫圖片描述
這樣一來,我們原來要求的minf(w) ,就轉換成了求minθp(w)
這裏寫圖片描述
我們用p 表示minθp(w) 。如果直接求解,首先面對兩個參數,而且還有不等式約束,然後再有w上求最小值,太難計算,因此我們就引出對偶問題。
θp(w) 對偶的另外一個問題
這裏寫圖片描述

θD(α,β) 將α和β先看做常量,將問題轉化爲先求拉格朗日關於w的最小值。之後再求θD(α,β) 的最大值:
這裏寫圖片描述

這個問題就是原問題的對偶問題,定義爲d ,然後根據一般事實,我們有以下結論:
這裏寫圖片描述
關鍵的問題就是什麼時候原始問題和對偶問題的解相等了。假設f(w) 是凸函數,假設hi 爲仿射函數,即hi(w)=αiTw+b 。假設gi 是嚴格可執行的,即存在w,使得對於所有i,gi(w)<0 ,在上述條件下,一定存在wαβ ,其中w*是原始問題的解,αβ 是對偶問題的解,並且:
這裏寫圖片描述
此外,wαβ 還滿足KKT條件:
這裏寫圖片描述
注意,KKT的總體思想是認爲極值會在可行域的邊界上取得,對於可行域邊界內的點,對最優解不起作用,因此前面係數爲0。我們來看公式5,這個條件隱含了如果α*>0,則g函數等於0,也就是說g函數等於0,w處於可行域的邊界上,這纔是起作用的約束,其他內部的點(g<0)都不起約束條件。

3. 最優間隔分隔器計算

重新回到我們之前的優化問題上:

這裏寫圖片描述
我們將約束條件改爲:
這裏寫圖片描述
通過KKT條件可知,只有函數間隔是1,即離超平面最近的點的線性約束式前面的係數是αi>0 ,則這些點g(w)=0 ,那麼對於不在線上的點(g<0) ,則αi=0 ,每一個約束式其實是一個訓練樣本,如下圖所示:
這裏寫圖片描述

圖中的圈和叉即正負樣本,實線即w,b確定的分隔線,虛線即函數間隔爲1的點所構成的線。看出有三個樣本的函數間隔爲1,其他樣本的函數間隔大於1。
通過KKT條件,這些函數間隔爲1的樣本對應的拉格朗日乘數一般不等於0,即αi>0 。這個函數間隔爲1的樣本稱爲支持向量。支持向量數量很少,所以多數的αi=0 ,那麼反推可得,αi=0 ,對應的樣本不是支持向量。

構造拉格朗日函數爲:
這裏寫圖片描述
由於這個問題只有不等式約束,所以沒有β。下面我們就用到第二節講到的按照對偶問題來一步步求解:
這裏寫圖片描述
爲了使拉格朗日算子最小,因爲它是w,b的函數,對w,b求偏導數並設爲0。
求得:
這裏寫圖片描述
得到:
這裏寫圖片描述
將上式帶到拉格朗日函數找那個,得到函數的最小值,化簡後得:
這裏寫圖片描述
最後一項根據之前結果爲0,則
這裏寫圖片描述

將上式表示爲W(α) ,極大化的過程爲:
這裏寫圖片描述
前面說過對偶問題和原問題滿足幾個條件,首先是目標函數與線性約束都是凸函數,這裏不存在等式約束h。因此存在w使得對於所有的i,g<0 。因此,一定存在wα 使得w 是原問題的解,α 是對偶問題的解。這裏αi=α
如果求出αi ,根據之前求偏導的公式可求出w ,然後
這裏寫圖片描述
這個公式的直觀理解就是,找到最差的樣本(離得最近的正負樣本),根據它們的位置,可求出超平面的位置。關於上面的對偶問題如何求解,之後會告訴大家。
最後有一個引出話題,由於通篇考慮的是WTx+b ,根據求解得到的αi ,代入之前的式子:
這裏寫圖片描述

xiTx 表示爲新輸入的x和訓練樣本x的內積的和。這個好處在於之前都是將新來的樣本根據w,b 做一次線性運算來判斷是正還是負,現在有了αi ,我們不需要求出w,可以直接將新來的樣本和訓練數據的樣本做內積,而且根據KKT條件,只有支持向量αi>0 ,其他的αi=0 ,因此計算很高效

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