Support Vetor Machine Summary

經過最近的學習了解了部分理論但是沒有實踐應用,所以先寫下來,可能不準確。

定義:

在reddit上看到一個很好的解釋更直觀和生動:
如何向一個五歲的孩子解釋SVM
知乎上也有人提到這個,而且已經整理如下:中文

wiki定義:其實就是個監督學習模型,用來分析回歸和分類,它巧妙的運用非線性變換把低維的特征投影到高維,可以執行比較復雜的分類任務(升維打擊),是一種二類分類模型。它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別于感知機;

包含了構建從簡單到復雜的模型:線性可分支持向量機(linear support vector machine in linearly separable case)、線性支持向量機(linear support vector machine)及非線性支持向量機(non-linear support vector machine)。簡單模型是復雜模型的基礎,也是復雜模型的特殊情況。(具體可以看李航老師的《統計學習方法》)

1基本問題

知錯能改感知機中,學習到在線性可分的訓練數據中,我們可以得到不能分分類界線

為了得到最大邊界間隔的超平面,將問題準換為優化問題,期中margin(b,w)表示超平面wx+b 離樣本的最小距離,進而讓這個最小距離最大化:


描述距離:
描述距離
描述距離

距離推導的結果:

將問題轉化為:

進一步簡化,因為w和b同時成倍的放縮不會影響超平面的變化,所以總可以找到一組w* 和b使得miny(wx+b *)=1,所以有

當然可以用反正法證明一下,假設

y(*wx+b *)>1, 我們可以通過放縮w,b得到更優化的解,約束條件和下圖等價


最后得到上圖的優化問題,這個問題的形式和二次規劃(線性規劃的進階版)一致,所以可以用二次規劃的方法解決。

2可行性

因為svm對噪聲的容忍性更強,所以從VC bound 角度講(超平面到底能產生多少圈圈叉叉分類的組合),對于PLA來說可以shatter所有組合,但svm會對margin有限制



linear hard SVM不能shatter任意三個inputs,說明有更少的維度,所以有更好的泛化能力。同時,使用特征轉化,可以使Linear hard SVM 進行更精細分類。

使用場景

SVM的典型使用場景如:
一、房價估算
根據過去十年來房價和房屋面積、臥室數量、當地消費水平等等各種因素數據,將房屋分為「豪宅」、「中等」、「經濟型住房」、「貧民窟」等幾類;
使用SVM訓練這些數據得出一個模型,可以用來預測在新的條件下,某個住房可以被劃歸到哪種分類,價值區間多少。

二、垃圾郵件分類器:
獲取可疑的spam email關鍵詞列表,例如:Buy、now等(實際Spam Corpus可以參考使用Apache Spam Assassin);
收集大量的spam和非spam郵件數據,將其中包含的可疑spam關鍵詞找出并標記在特征向量中,用SVM訓練這些數據,得出一個模型,用來判斷一封新的郵件是否為一個垃圾郵件。

其實SVM最難的在于各種核函數,包括選取,這個在后面的文章中再說。

Reference:

臺大林老師《機器學習技法》
李航《統計學習方法》

擴展閱讀:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容