機器學習——支援向量機SVM(一)

Yolo_1996發表於2018-12-08

在之前做數學建模的時候就有使用過支援向量機的有關知識,但是對於支援向量機的理解一直不是很深刻,尤其是數學推導部分還是存在一些問題。在最近看周志華西瓜書的過程中同樣發現這一問題,西瓜書中對支援向量機的講解部分不是很詳細,所以我又查詢了其他的資料。

支援向量機是一種原創性(非組合)的具有明顯直觀幾何意義的分類演算法,具有較高的準確率。雖然支援向量機的幾何意義較為直觀,但是細節非常複雜,內容涉及到凸優化分析,核函式,神經網路等多個領域,內容多而數學推導過程複雜。

我們可以將支援向量機看成是線性分類器的延伸和推廣,他作為一個分類器最大的作用就是可以解決一些非線性邊界的分類問題,而且處理過程複雜度比較小,因此支援向量機在生活中得到廣泛的應用,被譽為是“讓應用數學家真正得到應用的一種演算法”。
在這裡插入圖片描述

如上圖中圈和×的邊界顯然不是一個線性邊界,我們之前介紹的那些線性分類器無法將兩者進行劃分,而支援向量機可以很好的完成這一個任務。

在最基本的線性可分問題中,我們可以很輕鬆的畫出兩者的邊界。在這裡,我們需要意識到的是這種分離的方法不是唯一的,我們需要從這些分類方法中找出最好的那一種方法。
在這裡插入圖片描述
在分類問題中,我們認為處於位於兩類訓練樣本“正中間”的劃分超平面就是最好的分類方法,因為此時劃分平面對訓練樣本的容忍性最好(即使樣本發生少量變動依然可以完成分類)如下圖所示:
在這裡插入圖片描述

我們注意到有幾個樣本在分類的邊界上,我們將其稱為“支援向量”。

兩個支援向量到超平面之間的距離之和稱為“間隔”,我們希望得到最好的劃分超平面,也就是希望這個距離越大。

在樣本空間中,劃分超平面可以用線性方程wx+b=0w\cdot x+b=0來進行表示,其中ww表示超平面的法向量,如下圖:
在這裡插入圖片描述

對於分別通過x1x_{1}x2x_{2}這兩個支援向量的超平面來說,我們可以反解法推匯出分別為wx+b=1w\cdot x+b=1wx+b=1w\cdot x+b=-1,這兩條直線之間的距離就是d=2wd=\frac{2}{||w||},我們希望求出d=2wd=\frac{2}{||w||}在符合yi(wx+b)1y_{i}\cdot \left ( w\cdot x+b\right )\geq 1情況下的最值。這個問題等價於求解:
在這裡插入圖片描述
對於這個問題,我們就可以用拉格朗日運算元來求解其最值了。

相關文章