文章目錄
一、SVM簡介
SVM是一種二分類模型。它的基本思想是在特徵空間中尋找最大的分離超平面使得數據二分類。具體來講,有三種情況(不加核函數的話就是個線性模型,加了核函數就是一個非線性模型):
- 當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機。
- 當訓練數據近似線性可分時,引入鬆弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機。
- 當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。
二、SVM爲什麼採用間隔最大化(與感知機的區別)
當訓練數據線性可分時,存在無窮個分離超平面可以將兩類數據正確分開。
- 感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。
- 線性可分支持向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知實例的泛化能力最強。
三、SVM的目標(硬間隔)
有兩個目標:
- 第一個是使間隔最大化
- 第二個是使樣本正確分類
四、求解目標(硬間隔)
SVM是一個有約束條件的最優化問題,用拉格朗日函數來解決。
在滿足Slater定理的時候,且過程滿足KKT條件的時候,原問題轉換成對偶問題
先求內部最小值,對w和b求偏導並令其等於0
五、軟間隔
不管直接在原特徵空間,還是在映射的高維空間,我們都假設樣本是線性可分的。雖然理論上我們總能找到一個高維映射使數據線性可分,但在實際任務中,尋找一個合適的核函數很難。此外,由於數據通常由噪聲存在,一味追求數據線性可分可能會使模型陷入過擬合,因此,我們放寬對樣本的要求,允許少量樣本分類錯誤。給之前的目標函數加上一個誤差,將相當於允許原先的目標出錯,引入鬆弛變量。鬆弛變量用hinge loss計算。
六、核函數
核函數就是一個函數,接受兩個變量,這兩個變量是在低維空間中的變量,而核函數求得值等於將兩個低維空間中的向量映射到高維空間後的內積。
七、如何選擇核函數
- 當特徵維數d超過樣本數m時(文本分類問題通常是這種情況),使用線性核。
- 當特徵維數d比較小,樣本數m中等時,使用RBF核。
- 當特徵維數d比較小,樣本數m特別大時,支持向量機性能通常不如深度神經網絡。
八、關於支持向量機的問題
1. KKT條件
- 主問題可行
- 對偶問題可行
- 互不鬆弛
2. 支持向量
- 支持向量是距離劃分超平面最近的樣本,落在最大間隔邊界上。
- 支持向量機的參數(w,b)僅由支持向量決定,與其它樣本無關。
3.爲什麼將原問題轉換爲對偶問題
- 對偶問題更容易求解
- 可以自然引入核函數,進而推廣到非線性分類問題
九、爲什麼SVM對缺失數據敏感
這裏說的缺失數據是指缺失某些特徵數據(向量數據不完整)。SVM沒有處理缺失值的策略,而SVM希望樣本在特徵空間中線性可分,所以特徵空間的好壞對SVM的性能很重要。缺失特徵數據將影響訓練結果的好壞。
十、SVM的優缺點
優點:
- 由於SVM是一個凸優化問題,所以求得的解一定是全局最優而不是局部最優。
- 不僅適用於線性問題還適用於非線性問題(用核技巧)。
- 擁有高維樣本空間的數據也能用SVM,這是因爲數據集的複雜度只取決於支持向量而不是數據集的維度,這在某種意義上避免了“維度災難”。
- 理論基礎比較完善(例如神經網絡就更像一個黑盒子)
缺點: - 二次規劃問題求解將涉及m階矩陣的計算(m爲樣本的個數),因此SVM不適用與超大數據集。(SMO算法可以緩解這個問題)
- 只適用於二分類問題。(SVM的推廣SVR也適用於迴歸問題;可以通過多個SVM的組合來解決多分類問題)