SVM 一氣呵成

2021-08-03 06:39:10 字數 3429 閱讀 7896

閱讀本文前,需要對機器學習有一定的了解,本文僅對svm基本理論做乙個梳理。

1 引入

機器學習乙個最根本的任務就是分類,而分類問題中大多數又屬於二分類問題,其最簡單直接的描述方式如下:

給定一訓練集 t,形如 (x

i0,x

i1,.

..,x

in;y

i)=(

xi;y

i),i

=0,1

,2,.

..,m

(1)

和乙個演算法a, 形如 ou

tput

=a(i

nput

) 當執行out

put=

a(in

put=

t)後,對於一條測試資料(t

i0,t

i1,.

..,t

in;?

),我們不知道它屬於什麼類別,a 能回答這條測試資料所屬類別,或者更多時候能給出這條測試資料屬於某個類別的概率。

為了能很好的理解svm,先簡單介紹一下感知機。如果把訓練集用幾何來表示,對於二維訓練(x

i0,x

i1;y

i),i

=0,1

,2,.

..,m

,在二維空間中實際上對應乙個乙個的資料點,只不過每個點有乙個標籤的屬性,如圖所示。

如果能找到一條直線l,將二維平面劃分成兩部分,處於上半平面的屬於一種類別,記為+1類,下半平面的又屬於一種類別,記為-1類,那麼就說該資料集線性可分。基本的感知機首先假設資料集線性可分,也就是說對於訓練集t,能找到乙個n-1 維的空間(也就是n維空間的超平面),將資料集完全劃分開來。然後再去尋找這個超平面,感知機的思想是只要找到乙個超平面即可,拿二維空間來說,為了找到一條直線劃分訓練集,存在無窮多條直線完成這個任務,那麼,選哪乙個好呢?在感知機中,這個超平面直接與最初的引數有關,雖然感知機將線性可分的資料集完全分開了,也就是說訓練誤差可以減小到0,但是它對於未知資料的分類能力未必就好。而機器學習往往需要的就是這種對未知資料的**能力,而不在於對已知資料的擬合能力。

2 優化模型建立

基於上述原因,svm被發展起來,在感知機的基礎上進一步思考,既然已經可以找到乙個超平面將線性可分的資料集完全分開,那麼能不能找到乙個超平面,它不僅可以將資料集分開,而且對於未知資料的也有較好的**能力呢?

答案是肯定的。為了完成這個目標,我們假設資料點到超平面(ω

,b) 的距離表示對此資料點分類表的可信度,距超平面越遠,我們認為分類的可信度越大,如果某個資料點處於超平面上,那麼可信度為0,即不能確定該資料點到底屬於哪一類。有了可信度的概念之後,對於乙個給定的訓練集

t 和超平面(ω

,b) ,資料集中存在乙個資料點xi

到超平面的距離是最小的,將這個最小的距離記為 γ^

≜mini|

ωxi+

b|||

ω||(2)

顯然,如果改變超平面 (ω

,b) ,此最小距離必定減小或增大,當然,我們希望通過改變超平面使得這個最小距離增大,因此,基於這樣的考量,svm的目標函式出爐了,寫成數學形式如下

max(ω,

b)mini|ω

xi+b

|||ω

||(3)

當然,上面的優化問題是不能直接優化的。但是我們可以通過等效的數學手段進行處理,使得它變成易於優化的形式。

首先,|ωx

i+b|

||ω|

| 表示的是幾何距離(如果分母取l2

範數的的話其實就是歐氏距離,在svm中被稱之為幾何間隔),其分子|ω

xi+b

| 表示的是相對距離,上面已經說過,處於上半超平面的資料點被標註為+1

類,對應的yi

=+1,

(ωxi

+b>=0)

,處於下半超平面的被標註為−1

類,對應的yi

=−1,

(ωxi

+b<0)

,那麼,這個相對距離可以統一表示為yi

(ωxi

+b) ,這個公式在svm 中被定義為函式間隔, 如果某個資料點被超平面(ω

,b) 劃分正確,則 必有 yi

(ωxi

+b)>=

0 ,如果某個資料點被超平面(ω

,b) 劃分錯誤,則 yi

(ωxi

+b)<

0 ,做此等效處理後,重寫原始優化問題公式如下

max(ω,

b)miniyi

(ωxi

+b)|

|ω||

(4)

進一步,對於內層的優化mi

n ,當給定超平面(ω

,b) 時,其實是在訓練集上的一次遍歷,找到最小的幾何間隔,上面已假設這個最小的相對距離為γ^

,那麼mi

n 這個過程可以通過施加約束條件處理掉,具體地,原始優化問題進一步寫作

max(ω,

b)γ^

||ω|

|,s.

t.yi

(ωxi

+b)≥

γ^,i

=1,2

,...

,m(5)

這個等效的最優化問題更加容易進行數學處理,不過發現,γ^

表示資料集對超平面的最小相對距離,它的取值對最優化問題的解並不影響,這樣就可以令 γ^

=1,這樣,問題變得更加簡潔

max(ω,

b)1|

|ω||

,s.t

.yi(

ωxi+

b)≥1

,i=1

,2,.

..,m

(6)

到了這裡,實際上原始最優化問題的這個等價形式依然不能直接求解,不過,現在只需要簡單的等價變換,就可以讓其變得可以求解,

max(ω,

b)1|

|ω||

可以等價地寫成

min(ω,

b)12

||ω|

|2,這樣,原始最優化問題終於變成了乙個可以求解的標準二次優化問題,重新寫作

min(ω,

b)12

||ω|

|2,s

.t.y

i(ωx

i+b)

≥γ^,

i=1,

2,…,

m(7)

借助於現有的二次規劃求解包,就可以求解該問題,但是當資料規模很大的時候,這個問題還是不易求解,優化時間甚至難以接受。需要繼續處理上述優化問題,使得其更加易於求解。3

此筆記未完待續…..

不足之處,歡迎批評指正。

reference:

統計學習方法/李航

kali安裝OneForAll(一氣呵成)

oneforall是一款功能強大的子域收集工具 以下命令 一行一行的輸入 git clone sudo apt install python3.8 python3.8 dev python3 testresources cd oneforall sudo apt install python3 pi...

LSD SLAM編譯之一氣呵成法

本lsd slam編譯平台資訊 sudo apt install libsuitesparse dev libqglviewer dev qt4 ros kinetic libg2o sudo ln s usr lib x86 64 linux gnu libqglviewer qt4 so usr...

hive 自定義UDF函式一氣呵成

hive udf開發流程 1.繼承udf類,重寫evaluate 方法並實現函式邏輯 如果方法不存在則自己建立該方法 依賴包hadoop common和hive exec dependency myfun自定義函式類 public class myfunc extends udf 2.專案打包為ja...