SVM支援向量機(吳恩達課程筆記)
支援向量機(support vector machine) 大概是機器學習中最熱門的演算法之一,但同時也是最難懂的演算法之一。最近看了吳恩達的課程,雖講的比較淺顯,但對於初學者來說不失為一個入門的好路徑。
1. Optimization objective 目標函式
先來回顧一下邏輯迴歸,這是其計算分類概率的函式:
這是邏輯迴歸的cost function
:
分y=1
和y=2
兩種情況來表示z
和cost function
之間的關係(黑色的細線):
如果將上圖中邏輯迴歸的代價函式替換為藍色的線,就得到了SVM。
這是邏輯迴歸的目標函式:
這是SVM的目標函式:
可以看到SVM中沒有1/m,並且把λ替換為了C,這裡C=1/λ
2. Large margin 大間隔
從SVM的代價函式可以看出,當y=1時,我們希望z>=1,而不僅僅是大於0;同樣的,當y=0,我們希望z<=-1,而不僅僅小於0:
當C非常大的時候,我們可以將SVM代價函式改寫為帶約束的極值問題:
對於一個線性可分的問題,比較大的C會得到一個大間隔的decision bundary
(黃色的那條決策邊界):
當存在一個離群的異常點時,較大的C不能容忍分類錯誤的情況,所以會產生黃色的決策邊界。當C不那麼大時,就可以得到更加合理的藍色分界線:
回顧一下向量內積的定義,v 和u的內積等於v 在u上的投影長度p乘以||u||
依據上述定義,將SVM的優化函式改寫為如下形式。要最小化的目標函式是||θ||,P(i)
我們希望p(i)*||θ||儘可能大,又希望||θ||儘可能小,所以就需要p(i)儘可能大。那麼什麼樣的決策邊界會得到較大的p(i)呢?
如果決策邊界是下圖綠色的那條線(margin比較小),θ就是與它垂直的那條線。這個時候投影p(i)比較小。
如果決策邊界是下圖豎直的那條綠線(margin比較大),這時θ就是水平的線。此時的投影p(i)比較大,滿足我們的之前的要求。
3. Kernals 核函式
核函式可以看做特徵工程的一部分。對於一些線性不可分的樣本,通過核函式將它們的特徵對映到更高/複雜的維度,從而實現在高維新特徵下線性可分的目的。比如下圖的多項式核函式:
最常用的kernel是高斯核函式。首先選幾個landmarks,然後計算樣本點離這些landmarks的距離(相似性)作為新特徵:
由下圖的公式可以看出,當x與landmark很近,高斯相似度接近於1;當x於landmark很遠,高斯相似度接近於0:
SVM中關於引數C
和高斯核的引數σ^2
的偏差方差分析:
SVM的應用建議,關於kernel和引數的選擇:
邏輯迴歸 VS SVM