1. 程式人生 > >決策邊界 支援向量機

決策邊界 支援向量機

支援向量機(Support Vector Machine)名字聽起來很炫,功能也很炫,但公式理解起來常有眩暈感。所以本文嘗試不用一個公式來說明SVM的原理,以保證不嚇跑一個讀者。理解SVM有四個關鍵名詞:分離超平面、最大邊緣超平面、軟邊緣、核函式

  • 分離超平面separating hyperplane):處理分類問題的時候需要一個決策邊界,好象楚河漢界一樣,在界這邊我們判別A,在界那邊我們判別B。這種決策邊界將兩類事物相分離,而線性的決策邊界就是分離超平面。
  • 最大邊緣超平面(Maximal Margin Hyperplane):分離超平面可以有很多個,怎麼找最好的那個呢,SVM的作法是找一個“最中間”的。換句話說,就是這個平面要儘量和兩邊保持距離,以留足餘量,減小泛化誤差,保證穩健性。或者用中國人的話講叫做“執中”。以江河為國界的時候,就是以航道中心線為界,這個就是最大邊緣超平面的體現。在數學上找到這個最大邊緣超平面的方法是一個二次規劃問題。
  • 軟邊緣(Soft Margin):但世界上沒這麼美的事,很多情況下都是“你中有我,我中有你”的混雜狀態。不大可能用一個平面完美的分離兩個類別。線上性不可分情況下就要考慮軟邊緣了。軟邊緣可以破例允許個別樣本跑到其它類別的地盤上去。但要使用引數來權衡兩端,一個是要保持最大邊緣的分離,另一個要使這種破例不能太離譜。這種引數就是對錯誤分類的懲罰程度C。
  • 核函式(Kernel Function),為了解決完美分離的問題,SVM還提出一種思路,就是將原始資料對映到高維空間中去,直覺上可以感覺高維空間中的資料變的稀疏,有利於“分清敵我”。那麼對映的方法就是使用“核函式”。如果這種“核技術”選擇得當,高維空間中的資料就變得容易線性分離了。而且可以證明,總是存在一種核函式能將資料集對映成可分離的高維資料。看到這裡各位不要過於興奮,對映到高維空間中並非是有百利而無一害的。維數過高的害處就是會出現過度擬合。

選擇合適的核函式以及軟邊緣引數C就是訓練SVM的重要因素。一般來講,核函式越複雜,模型越偏向於擬合過度。在引數C方面,它可以看作是LASSO演算法中的lambda的倒數,C越大模型越偏向於擬合過度,反之則擬合不足。實際問題中怎麼選呢?用人類最古老的辦法,試錯。




常用的核函式有如下種類:
  • Linear:使用它的話就成為線性向量機,效果基本等價於Logistic迴歸。但它可以處理變數極多的情況,例如文字挖掘。
  • polynomial:多項式核函式,適用於影象處理問題。
  • Radial basis,高斯核函式,最流行易用的選擇。引數包括了sigma,其值若設定過小,會有過度擬合出現。
  • sigmoid:反曲核函式,多用於神經網路的啟用函式。

https://www.r-bloggers.com/lang/chinese/1067