對SVM支援向量機(1)

2020-10-28 14:01:25

支援向量機(英語:support vector machine,常簡稱為SVM,又名支援向量網路)是在分類與迴歸分析中分析資料的監督式學習模型與相關的學習演演算法。給定一組訓練範例,每個訓練範例被標記為屬於兩個類別中的一個或另一個,SVM訓練演演算法建立一個將新的範例分配給兩個類別之一的模型,使其成為非概率二元線性分類器。SVM模型是將範例表示為空間中的點,這樣對映就使得單獨類別的範例被儘可能寬的明顯的間隔分開。然後,將新的範例對映到同一空間,並基於它們落在間隔的哪一側來預測所屬類別。

SVM大致可以分為三種
線性可分SVM
當訓練傳輸線性可分時,通過硬間隔(hard margin,什麼是硬、軟間隔下面會講)最大化可以學習得到一個線性分類器,即硬間隔SVM。
線性SVM
當訓練資料不能線性可分但是可以近似線性可分時,通過軟間隔(soft margin)最大化也可以學習到一個線性分類器,即軟間隔SVM。
非線性SVM
當訓練傳輸線性不可分時,通過使用核技巧(kernel trick)和軟間隔最大化,可以學習到一個非線性SVM。
SVM的目的就為尋找分開兩組資料集中最優的超平面,如上圖所示,H1、H2、H3中最優直線(超平面),我們應該選擇H3.

SVM 想要的就是找到各類樣本點到超平面的距離最遠,也就是找到最大間隔超平面。任意超平面可以用下面這個線性方程來描述:
在這裡插入圖片描述
在這裡我們要用到幾何間隔的內容:
在這裡插入圖片描述
上圖中藍線上的點被稱為支援向量,d為間距
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
故我們得到第一個演演算法:
在這裡插入圖片描述