1. 程式人生 > >[SVM系列之一]白話支援向量機(SVM)

[SVM系列之一]白話支援向量機(SVM)

初識支援向量機(SVM)

我們來玩一個遊戲:

首先在桌子上放兩種顏色的球,它們似乎存在某種關係,那你能不能用一根木棒將兩種顏色分開呢?要求:儘可能在桌面上放置更多的小球后仍然適用。



你大概會這麼放吧:



為了測試你的答案是不是符合要求,我在桌上又放了更加多的藍紅小球,可以發現,一個紅球被分錯了位置:



支援向量機(SVM)可以白話為:試圖找到一個木棍放置的最佳位置,使得木棍的兩邊有儘可能大的間隙。



如此一來,即使我放更多的紅藍小球,木棍仍然可以正確分開兩種顏色:



看來我出的題目還是太簡單了,下面我給你出個難點兒的問題:桌面上的小球按下圖放置,你肯定不能直接用木棍分開兩種顏色的小球了,要怎麼辦呢?



你可以用力拍桌子,使球飛到空中,然後快速用一張紙插到兩種顏色的球之間。(只是為了便於理解,小孩子請勿模仿233333)



再從桌面的角度看這些小球,它們被完美地用一條曲線分開了。



我們可以定義幾個高大上的名詞,把這些小球叫做資料(data),把棍子叫做分類器(classifier),最大間隙trick叫做優化(optimization), 拍桌子叫做核化(kernelling), 那張紙叫做超平面(hyperplane)。

白話SVM原理

  • 假設我們要通過一條線把實心圓圈和空心圓圈分為兩類
  • 那麼有無數多條線可以完成這個任務。
  • 在SVM中,我們尋找一條最優
    的分界線使得它到兩邊的margin都最大。
  • 在這種情況下邊緣加粗的幾個資料點就叫做Support Vector,這也是這個分類演算法名字的來源。

如下圖所示:



我們還可以將其擴充套件到任意n維度空間上:

  • 首先在1維到n維空間中得到了一系列資料點
  • 然後總能在n1維上找到一個最優超平面(hyperplane)

這裡寫圖片描述

什麼是支援向量機(SVM)?

下面闡述一下正經概念:

支援向量機(Support Vector Machine,簡稱SVM)是Cortes和Vapnik於1995年首先提出的,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函式擬合等其他機器學習問題中。

通俗來講,它是一種二分類模型。它不是一種機器,而是一種機器學習演算法。其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。

後記:在本節,你僅需對SVM有個大致的瞭解,在本系列後續教程中,我們會更加深入討論支援向量機的原理以及應用場景,並配合實驗來加深理解。

參考資料

更多機器學習乾貨、最新論文解讀、AI資訊熱點等歡迎關注“AI學院(FAICULTY)”,內容持續更新中……
歡迎加入faiculty機器學習交流qq群:451429116(點此進群)