Peter教你談情說AI | 10支持向量機(1)—SVM原型

“談情說AI” 有段日子沒有更新了,今天我們挽起袖子繼續新的一節。從今天起我們的學習之旅進入了新的階段,之所以說是新的階段,是因爲之前講的幾個模型:線性迴歸、樸素貝葉斯、邏輯迴歸和決策樹等背後的數學推導都算初級難度。今天開始講AI的經典算法——SVM,經過幾天坐地鐵時間的學習終於搞清楚了SVM背後的來龍去脈。廢話少說,讓我們進入 “談情說AI” 新的旅程——SVM。

線性可分

先舉個簡單的例子。如下圖所示,現在有一個二維平面,平面上有兩種不同的數據,分別用圈和叉表示。由於這些數據是線性可分的,所以可以用一條直線將這兩類數據分開,這條直線就相當於一個超平面,超平面一邊的數據點所對應的y全是紅色 ,另一邊所對應的y全是藍色。

這樣,兩類樣本完美地被綠線分隔開。此時,我們說這兩類樣本在其特徵空間裏線性可分。

那什麼樣的超平面是最佳的呢,一個合理的策略是:以最大間隔把兩類樣本分開的超平面,是最佳超平面!

其實線性可分支持向量機就是:以找出線性可分的樣本在特徵空間中的最大間隔超平面爲學習目的的分類模型。

下面我們看看如何找到最大間隔超平面

尋找最大間隔超平面

我們可以先找到兩個平行的,能夠分離正負例的輔助超平面,然後將它們分別推向正負例兩側,使得它們之間的距離儘可能大,一直到有至少一個正樣本或者負樣本通過對應的輔助超平面爲止——推到無法再推,再推就“過界”爲止。

下圖是二維座標系裏,兩個輔助超平面(藍、紅兩條直線)的例子:

這兩個超平面互相平行,它們範圍內的區域稱爲“間隔”,最大間隔超平面位於這兩個輔助超平面正中的位置與它們平行的超平面——圖中綠線爲最大間隔超平面。

下面我們推導下紅藍綠這三條直線的式子:

故這個超平面由其法向量 w 和截距 b 確定,可用 (w, b) 表示。

這些樣本在特徵空間是線性可分的,因此我們可以找到兩個將正負兩類樣本分離到距離儘可能大的超平面,它們分別是:

通過幾何不難得到這兩個超平面之間的距離是

,因此要使兩平面間的距離最大,我們需要最小化

根據定義,我們知道樣本數據需滿足下列兩個條件之一:

將上面兩個式子合併一下就是

。也就是說,我們要最小化

是有約束條件的,條件就是:

因此,求最大分割超平面問題其實是一個約束條件下的最優化問題,我們要的是:

爲了後面好算,我們變換一下約束形式:

這就是支持向量機的學習目標,其中

是目標函數,我們要對它進行最優化。

對這樣一個最優化問題,需要通過優化算法來求解。關於優化算法,我們之前學習過梯度下降法,簡單直接,是不是可以應用到這裏呢?可惜不行。因爲,梯度下降是優化沒有約束條件問題的算法。

這裏我們遇到的,是一個有約束條件的最優化問題

那麼該如何求解呢?在此我們要學習一個新的算法:拉個朗日乘子法。

下一節我們來看下拉個朗日乘子法。

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