機器學習與深度學習系列連載: 第一部分 機器學習(九)支援向量機2(Support Vector Machine)
阿新 • • 發佈:2018-12-10
另一種視角定義SVM:hinge Loss +kennel trick
SVM 可以理解為就是hingle Loss和kernel 的組合
1. hinge Loss
還是讓我們回到二分類的問題,為了方便起見,我們y=1 看做是一類,y=-1 看做是另一類
他的Loss 函式是分類錯誤的次數,很顯然,這是個離散的值,不可微分,我們需要找到一個等價的Loss 於是我們出各種等價Loss 函式的圖,黑色的是本身的Loss,紅色的square Loss,藍色的的是square Loss+函式的Loss,綠色的是corssEntropy+函式的Loss(注意橫座標是 數值越大,Loss越小,說明分類越正確,可以結合前一篇的幾何意義理解)
在這裡,我們引入hinge Loss,它的公式:
含義是:當分類是1,,需要最大化0與的值,, 比1越大越好; 當分類是1,,需要最大化0與的值,, 比-1越x小越好
所以它的Loss影象為(紫色的線段):
所以 線性的SVM 的解法完全可以用 gradient decent 解: 我們的Loss 函式: 然後,這些公式是不是似曾相識:
2. Kernel
通常,我們需要對我們的資料在高維空間進行相關對映。
我們通過拉格朗日乘子法,得到最優的w是 x的線性組合 因為很有可能非常稀疏, 非0的 就是支援向量。 第一步:我們做等價轉換 第二步: 最小化Loss 我們就是要找到最適合的 我們甚至可以不需要知道x的向量,就可以計算與z的內積 , 它就是kernel