70 什麼是支撐向量機(SVM)

2021-10-25 01:50:42 字數 2723 閱讀 3047

我們將開始學習一種新的機器學習演算法:支撐向量機(svm)

那什麼是支撐向量機呢?它的英文是 support vector machine。其實我們使用支撐向量機的思想既可以解決分類問題,也可以解決回歸問題。我們首先會學習使用支撐向量機解決分類問題,之後會學習使用支撐向量機來解決回歸問題。

我們先來看看支撐向量機的思想到底是怎樣的?下面是乙個二維的特徵平面,所有的樣本點分成了兩類,邏輯回歸就是在該平面中找到了乙個決策邊界,如果在決策邊界的一側,我們的演算法就認為這些資料屬於某一類,如果位於決策邊界的另一側,就認為屬於另一類。

比如說,找的決策邊界是這樣的一條直線。在決策邊界上方就屬於紅色點,在決策邊界下方就屬於藍色點。

不過,也存在一些問題,這個決策邊界並不唯一。下圖中 y

1y_1

y1​ 是乙個決策邊界,相應的,y

2y_2

y2​ 也是乙個決策邊界。

對於這種決策邊界不唯一的問題,通常有乙個專門的術語叫做不適定問題。那麼回憶一下,邏輯回歸演算法是怎麼解決這個不適定的問題的。其實它解決的思路是定義了乙個概率函式(sigmoid 函式),根據這個概率函式進行建模,得到了乙個損失函式,我們最小化這個損失函式從而求出一條決策邊界。這就是邏輯回歸解決不適定問題的思路。在這裡,這個損失函式完全由我們的訓練資料集所決定的。

支撐向量機解決問題的方式稍有不同。假設我們得到的決策邊界是這樣一條直線。

顯然在訓練資料集上,決策邊界非常好的將資料分成了兩部分。但是有乙個非常重要的問題就是模型的泛化能力。換句話說,當我們求出了決策邊界之後,這個決策邊界對於新的樣本是不是乙個好的決策邊界呢?它能不能非常好的得到那些未知的資料相應的分類結果呢?

假設我們有乙個未知的資料樣本點。

根據它現在所處的位置,它應該是分成藍色這一類的。但是我們直觀的覺得將這個樣本點分成紅色的類別是更加合理的。換句話說,就是我們當前求出的決策邊界它的泛化效果不夠好。這是為什麼呢?是因為我們現在求出的決策邊界離紅色的點離得太近了,這就導致很多其它很多離紅色點很近的點很有可能就被誤分在了決策邊界的另外一側。那什麼樣的決策邊界比較好呢?

下圖中的決策邊界相對來說就比較好。

這根直線的特點就是使得離這根直線最近的那些點離這根直線的距離盡可能的遠。

換句話說,就是讓決策邊界既離這些紅色的點盡可能的遠,又離這些藍色的點盡可能的遠。同時又能夠很好地分辨紅色和藍色兩個類別的資料點。

也就是我們要找到乙個決策邊界,這條決策邊界離我們的分類樣本盡可能的遠,我們直觀的觀察,這樣的決策邊界相對來說是比較好的。實際上,這樣的乙個假設不僅僅是乙個直觀的假設,它背後也是有數學的理論的。其實也正是因為這個原因,svm 也是統計學中一種非常非常重要的方法,它的背後是有極強的統計理論的支撐,所以 svm 在機器學習領域是一類非常重要的方法。

再來看看 svm 定義出的決策邊界有什麼特點?就是使得離決策邊界最近的那些點離決策邊界盡可能地遠。在上面的例子中,有三個點離決策邊界最近(兩紅一藍)。其實這些資料點又定義出了兩條直線,這兩條直線和決策邊界是平行的,這兩根直線相當於定義了兩個區域,在這兩根直線之間將不再有任何的資料點。而 svm 最終得到的決策邊界其實就是這個區域中間的那根線。

對於我們的支撐向量機來說,它相當於要找到中間的那根線,將它作為最優的決策邊界。這個決策邊界距離兩個類別最近的樣本最遠,這些樣本點就被稱為支撐向量

進一步,圖中三條直線之間都有一定的距離 ddd。

通常我們將這兩條直線之間的距離稱為 margin。那麼這個 margin 的大小就是 2 倍的 ddd。

那麼我們的 svm 要做什麼呢?svm 演算法要做的就是最大化 margin。我們再次將機器學習的思路轉化成了乙個最優值求解的問題。其實上面的例子都是針對線性可分的問題來說,那什麼是線性可分呢?其實就是我們的樣本點來說。它首先要存在一根直線可以將這些點劃分,在這種情況下,我們才定義出了 margin,這樣的演算法又被稱為 hard margin svm(嚴格的) 。但是在真實情況下,我們的資料有很多情況下是線性不可分的,那麼在這種情況下,svm 通過進一步的改進,得到 soft margin svm。

支撐向量機SVM

首先,回顧一下svm問題的定義,如下 線性約束很煩,不方便優化,是否有一種方法可以將線性約束放到優化問題本身,這樣就可以無拘無束的優化,而不用考慮線性約束了。其對應的拉格朗日對偶形式為 最終的優化結果保證離超平面遠的點的權重為0。經過上面的對偶變化,下面來一步一步的簡化我們的原始問題,首先對b求偏導...

SVM支撐向量機

參考 麥好,機器學習實踐指南 svm在解決小樣本 非線性及高維模式識別問題中具有許多優勢。1 演算法思想 svm首先將向量對映到乙個更高維的空間裡,在其中建立最大間隔超平面,將資料分開 然後,在超平面兩邊再設立兩個互相平行的超平面 最後分隔超平面,使兩個平行平面的距離最大化。svm假定平行超平面的距...

SVM學習筆記 線性支撐向量機

對於pla演算法來說,最終得到哪一條線是不一定的,取決於演算法scan資料的過程。從vc bound的角度來說,上述三條線的複雜度是一樣的 eout w ein 0 h dvc d 1 直觀來看,最右邊的線是比較好的hyperplane。為什麼最右邊的分隔面最好?對於測量誤差的容忍度是最好的。例如對...