1. 程式人生 > >機器學習數學原理(6)——最優間隔分類器

機器學習數學原理(6)——最優間隔分類器

機器學習數學原理(6)——最優間隔分類器

這一篇博文主要起一個承上啟下的作用,即需要上一篇博文所說的泛化拉格朗日定理方面的知識(建議讀者先閱讀上一篇博文《機器學習數學原理(5)——廣泛拉格朗日乘子法》),同時為下一篇關於SVM支援向量機的博文作鋪墊。這一篇博文介紹最優間隔分類器

需要注意的是,本篇所介紹的最優間隔分類器都是建立在線性可分的二分類樣本基礎上的,對於非線性可分的樣本筆者會在下一篇博文SVM支援向量機核函式法(Kernel)的章節中仔細介紹,這裡便先不再贅述。

另外老規矩,由於筆者水平有限,如果文章中出現不妥或者錯誤的地方,歡迎大家批評指出。

1 間隔

最優間隔分類器(the Optimal Margin Classifier)的核心便是間隔(Margins),整個演算法便是圍繞這個概念展開。所謂間隔指的是特徵點到分割超平面(Separating Hyperplane)的距離。

為了方便以後的敘述,將間隔分為兩類:

  1. 函式間隔
  2. 幾何間隔

接下來筆者便先來介紹這兩種間隔。

在我們介紹間隔前筆者認為有必要先確定一下符號:

  • xi:樣本空間中第i個樣本,有n維。
  • yi:第i個樣本的標籤,取值為1和-1兩種
  • ωbω為特徵空間的超平面中x前面的係數,為向量;b為偏置項,也可以看做截距,為常數項。

則由符號我們可以定義出分割超平面在特徵空間的表示式為:

注意:這裡的ω和b並不唯一,可以等比例放大縮小,表示的任然是同一個超平面,這一點很重要,後面演算法的匯出需要用到這一點。

1.1 函式間隔

函式間隔(Functional Margins),Xi樣本到分割超平面的函式間隔的表示式為

γ的正負表明在超平面分割出的不同空間,若γ=0.則表明在超平面上。

注意:由於超平面的ω和b可以任意等比例變化,導致γ的值不唯一。這既會增加麻煩,但同時也增加了靈活性,使得問題後面能夠變為凸優化問題。

從上我們可知,如果要使得函式間隔唯一,則我們需要對超平面的引數進行一個規範化,即需要一個f(ω,b)=0來約束超平面引數使之唯一,從而使得函式間隔唯一。

其實下面講的幾何間隔就是在規範化方程|ω|-1=0下的函式間隔。

1.2 幾何間隔

幾何間隔(Geometric Margins),Xi樣本到分割超平面的幾何間隔的表示式為

這裡的ω和b沒有任何規範化約束,因為約束條件已經通過除以ω的模展現了出來,使得幾何間隔不再隨著ω和b的等比例放大縮小而改變,變得唯一。這個也是在實際立體影象中點到平面距離的表示式。

當然也可以寫成上面函式間隔的形式,即在|ω|-1=0下的函式間隔。

2 最優間隔分類器主要思想

為了方便敘述,我們先假設一個樣本空間在特徵空間的分佈形式如圖,樣本為二分類,同時樣本是線性可分的,換句話說,可以通過一個超平面(圖中為一條直線)將兩類樣本完全分開。

這裡先給讀者道個歉,因為畫圖有些麻煩(實際是因為筆者太懶…),下面的散點圖均摘自360圖片搜尋“最優間隔分類器”的搜尋結果。

我們先看如何用一個超平面(二維的是直線)分開兩類樣本

可以看出,通過一定角度的旋轉,這樣的超平面有無數個,均可以將兩類樣本分開。既然有這麼多個,那麼我們如何選擇呢?這個選擇的策略便是最優間隔分類器的主要思想。

我們先通過自己的直覺來思考這個問題,怎樣的超平面才能更好的,更加準確的分割這個樣本空間呢?通過直覺不難發現(至少筆者的直覺是這樣的^_^),如果我們能夠使得樣本邊界到達分割超平面的距離最大即為最好的分割超平面,換句話說我們需要使得距離分割超平面最近的樣本點到分割超平面的距離取極大值(這個有點繞,需要仔細看一下)。

這樣的想法是自然的,簡潔的,容易理解的,因此,很多人都認為SVM支援向量機是最好的分類演算法(當然這說法並不太妥,但確實很多人是這樣認為的)。

3 最優間隔分類器引數確定

根據我們的主要思想,現在我們將這個主要思想數學化。假設有m個樣本點,每個樣本點均有n維的特徵。首先再來看一下這個選取超平面的策略:

  • 改變ω,b,使得距離分割超平面最近的樣本點到分割超平面的距離取極大值。

這裡我們先確定標籤的取值以及間隔的絕對值表示:

這樣一來,間隔的絕對值則可以表示為

注意:這裡我們均採用函式間隔表示,因為幾何間隔可以寫成|ω|-1=0約束下的函式間隔。

首先第一步,我們先找到距離分割超平面最近的樣本點到分割超平面的距離,用數學表示式表示即為

那麼優化問題可以轉化為數學表示式:

雖然這個優化問題已經用數學表示式表示出來了,但是我們可以發現這樣的優化問題並不是凸優化問題,這總是令人不愉快的。那麼接下來我們想辦法把它轉化為一個凸優化問題。

優化問題已經如上確定了,我們如何才能改變,這裡我們前面提到的函式間隔的規範式便開始出來起作用了,我們知道在上述的優化問題中ω與b的值可以隨意改變,這裡我們不妨加上一個規範式從而使得問題轉化為凸優化問題

這裡我們選取的規範式為:

這裡γ隱含ω和b的。

選取這樣的規範式過後,我們的優化問題變成了:

進一步轉化為等價的凸優化問題:

至此我們的問題便轉化為了一個相對好解決的凸優化問題了。

接下來便是解決這個凸優化問題了,這裡需要用到上一篇博文《機器學習數學原理(5)——廣泛拉格朗日乘子法》的內容,這裡筆者不再做推導,直接給出結論:

將上面的條件帶入拉格朗日函式中我們可以得到對偶優化問題:

當然同時也要滿足KKT條件

這樣,我們就把轉化變數變為了α,然後通過上面ω與α的關係便可以求出ω,ω求出來後,b也可以很容易的得到為:

然後接下來就需要解決上面關於α的優化問題了,解決方案將放在下一篇博文中。