SVM支援向量機(一)
- 1. 分類模型
- 2. SVM
- 3. hinge loss
- 參考文獻
支援向量機(support vector machine)是一種二分類模型,它的基本模型就是特征空間上的間隔最大的線性分類器,它的優化目标就是間隔最大化,一般将其轉換為一個凸二次規劃問題的求解。李宏毅老師從深度學習的角度解讀了SVM模型,用梯度下降的方法求解使損失函數最小的參數,下面進行具體的介紹。
1. 分類模型
給定一個訓練樣本集,訓練樣本屬于不同類别,我們需要在樣本空間中找到一個分類器(劃分超平面)将不同類别的樣本分開,這就是分類問題。對于二分類問題,假設樣本為 x ,類别為 y,y 可能的取值是 +1 和 -1。将樣本 x 輸入分類器,分類器将預測所給樣本的類别。分類模型從某種意義上來說是假設函數的集合(Function set),我們通過假設函數假定輸入樣本x和類别y之間的關系,不同參數下的假設函數構成集合就是分類模型(Model)。下圖給出了不同參數下的二分類模型。

一般使用損失函數(Loss function)來評估假設函數的優劣。損失函數的值越小則假設函數越好,我們期望找到一組最優參數使損失函數的值最小。深度學習一般采用梯度下降法尋找最優的參數。
下圖給出了一個二分類模型的構造方法。右上角的藍色實線框中給出了樣本 x 及其對應的類别 y(取值為+1 和 -1)。第一步:設計一組假設函數Function set,給定一個樣本 x,并輸出其對應 Output。 第二步:設計一個損失函數。第三步:梯度下降,訓練模型。
2. SVM
SVM是一種二分類模型,它的兩個亮點是Hinge Loss 和 Kernel Method。
如果想使用梯度下降法優化損失函數,那麼損失函數一定得是可微的。上面的二分類模型(Binary Classification)中的損失函數是不可微的,SVM中用Hinge Loss替代它。此外SVM針對線性不可分問題還提出了Kernel Method。
3. hinge loss
由于ideal loss 是不可微的,是以用一個函數近似它,如下圖所示。ideal loss 給出了預測值 g(x) 和 類别 y 之間的關系,如果 g(x) 的輸出 output 和 類别 y 兩者不等,損失函數值加1,如果相等則損失值不變。将 y * f(x) 作為橫軸,是以 y * f(x) 越大,loss 值越小。近似ideal loss 的函數也應該滿足相同的原則,即 loss值随橫軸坐标增加而減小。
- 首先考慮用 Square loss 近似,損失函數在圖中用紅色曲線表示。函數不滿足上述原則,y * f(x) 大于1時,loss值随橫軸坐标增加而增大。是以用Square loss函數近似 ideal loss 是不合理的。
飛槳PaddlePaddle|李宏毅機器學習特訓營之支援向量機(一)1. 分類模型2. SVM3. hinge loss參考文獻 - 考慮用 sigmoid + Square loss 近似,損失函數在圖中用藍色曲線表示。
飛槳PaddlePaddle|李宏毅機器學習特訓營之支援向量機(一)1. 分類模型2. SVM3. hinge loss參考文獻 - 考慮用 sigmoid + cross entropy 近似,即 logistic regression 在圖中用綠色曲線表示。 相比 sigmoid + Square loss,使用 logistic regression 作為損失函數,模型訓練更容易。如上圖所示,相同的橫坐标變化下 logistic regression 的 loss 下降更快,“努力可以有回報”;sigmoid + Square loss 的 loss 下降更慢,“沒有回報,不想努力”。
飛槳PaddlePaddle|李宏毅機器學習特訓營之支援向量機(一)1. 分類模型2. SVM3. hinge loss參考文獻 - 用 hinge loss 近似, 在圖中用紫色曲線表示。 hinge loss 不會随橫坐标的增加,一直下降下去。當橫坐标達到某一值時,loss就不會再減小,“及格就好”。logistic regression 則不會這樣,它随橫坐标增加,loss 會一直下降,“還要更好”。
飛槳PaddlePaddle|李宏毅機器學習特訓營之支援向量機(一)1. 分類模型2. SVM3. hinge loss參考文獻
參考文獻
- 支援向量機通俗導論
- 《機器學習》周志華
-
李宏毅機器學習特訓營的課程連結
課程連結