機器學習實戰 5 (SVM 支援向量機)

2021-08-07 11:06:34 字數 2706 閱讀 6000

本部落格記錄《機器學習實戰》(machinelearninginaction)的學習過程,包括演算法介紹和python實現。

svm是一種分類演算法,通過對訓練集資料的分析找到最好的分隔平面,然後用該平面對新資料進行分類。本篇文章介紹svm的總體思路,通過一些數學推導把初始問題不斷簡化,最後轉化為乙個比較簡單的二次優化問題。

設想二維平面上的一組資料點,分為兩個類別:

用平面上的直線wx

+b=0

(w和x是向量)來對資料進行分類,而svm的目的就是找到最好的一條直線。這條直線需要滿足兩個條件,一是把兩類資料完全分開,即同一類的資料落在直線的一邊,二是兩類資料中最靠近直線的那些點(稱為支援向量)離直線的距離必須盡可能的大。在圖中直觀的體現就是直線兩邊的空白間隔區盡可能地大。

點到直線的距離(推廣到高階就是點到超平面的距離)稱為幾何間隔(geometrical margin),計算公式如下,其中的分子y(

wx+b

) 稱為函式間隔: g=

y(wx

+b)|

|w||

上式中的y表示資料點的類別,在直線上方的點類別為1,下方為-1,這使得有錯誤分類點的那些直線會得到負的幾何間隔,從而被篩選掉。

現在我們可以通過幾何間隔來描述最優直線的條件,設

g 是資料集中離直線最近的點到直線的幾何間隔,gi

表示某個資料點到直線的幾何間隔,則問題描述為:

maxg,s

.t.,

gi≥g

即最大化資料集中最小的幾何間隔。

接著繼續對問題進行簡化,函式間隔的大小可以通過成倍地改變w來改變,直線本身卻不會變化,這意味可以取合適的值使得這些支援向量與直線的函式間隔為1,這樣,問題就變成:

max1||

w||,

s.t.

,yi(

wxi+

b)≥1

進一步分析,該式又等價於:

min12|

|w||

2,s.

t.,y

i(wx

i+b)

≥1這是乙個帶約束的二次優化問題,可以通過

拉格朗日對偶的方法來解決。

通過引入拉格朗日乘子把條件統一到式子中進行優化,構造拉格朗日函式,其中

α>

0 : l(

w,b,

α)=1

2||w

||2−

∑i=1

nαi(

yi(w

xi+b

)−1)

將α 作為自變數求取該式的最大值,可以得到:

maxα:α

i>0l

(w,b

,α)=

{12|

|w||

2,∞,

條件滿足

否則這樣,問題:

min12|

|w||

2,s.

t.,y

i(wx

i+b)

≥1就等價於問題:

minw,b

maxα:α

i≥0l

(w,b

,α)

即先以α

為變數最大化拉格朗日函式,再以w,

b 為變數將其最小化。

交換求最值的順序,得到原問題的對偶問題:

maxα:α

i≥0minw,

bl(w

,b,α

) 這個對偶問題更易求解,並且在滿足

kkt條件的情況下,兩者的解相同,於是問題又轉化為求對偶問題的解。

首先固定

α 求解函式值最小化時的引數w,

b 。分別另函式對w 和

b的導數為0,分別得到: w=

∑i=1

naiy

ixi

∑i=1

naiy

i=0

把這兩個式子帶回原式經過一番化簡,消去w,

b 得到: l(

w,b,

α)=∑

i=1n

αi−1

2∑i,

j=1n

αiαj

yiyj

xtix

j 現在,問題轉化為:

maxα∑i

=1nα

i−12

∑i,j

=1nα

iαjy

iyjx

tixj

s.t.

,αi≥

0,i=

1,..

.,n∑

i=1n

aiyi

=0這是乙個二次優化問題,可以用高效的smo演算法解決,具體實現將在以後的文章中介紹。

總的來說,svm的思路是找到乙個最優的分隔平面來進行分類,最優的判斷標準是最靠近分類平面的資料點(也就是支援向量)到分類平面的幾何間隔最大,這是乙個帶條件的優化問題。通過拉格朗日對偶,把最初的問題轉化為乙個更簡單的優化問題,其中的變數是拉格朗日乘子

α ,實現svm便是要找到這些

α 。以後會介紹一種最流行的求解方法(smo演算法)來解決這個問題,並構造svm分類器。

限於篇幅,本文中對原理推導只給出了大致的步驟,對於拉格朗日對偶及kkt條件的數學原理未做解釋(因為我也不是很懂),要了解其中細節,這部分內容還需要單獨學習一波。

機器學習實戰 初識支援向量機 SVM

svm 支援向量機。支援向量機,其含義是通過支援向量運算的分類器。其中 機 的意思是機器,可以理解為分類器。它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為乙個凸二次規劃問題的求解。給定訓練樣本集d y 我 分類學習的基本思想是基於訓練集...

機器學習 支援向量機 SVM

svm 方法的基本思想是 定義最優線性超平面,並把尋找最優線性超平面的演算法歸結為求解乙個凸規劃問題。進而基於 mercer 核展開定理,通過非線性對映 把樣本空間對映到乙個高維乃至於無窮維的特徵空間 hilbert 空間 使在特徵空間中可以應用線性學習機的方法解決樣本空間中的高度非線性分類和回歸等...

機器學習 支援向量機SVM

svm是一種監督學習演算法,主要用於分類 回歸 異常值檢測。目前應用於文字分類 手寫文字識別 影象分類 生物序列分析。支援向量機是一種通過某種非線性對映,把低維的非線性可分轉化為高維的線性可分,在高維空間進行線性分析的演算法。支援向量機 svm,support vector machine 是根據統...