作者:杜客
鏈接:https://zhuanlan.zhihu.com/p/20945670
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
鏈接:https://zhuanlan.zhihu.com/p/20945670
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
SVM的損失函數定義如下:

舉例:用一個例子演示公式是如何計算的。假設有3個分類,並且得到了分值。其中第一個類別是正確類別,即
。同時假設
是10(后面會詳細介紹該超參數)。上面的公式是將所有不正確分類(
)加起來,所以我們得到兩個部分:

可以看到第一個部分結果是0,這是因為[-7-13+10]得到的是負數,經過函數處理后得到0。這一對類別分數和標簽的損失值是0,這是因為正確分類的得分13與錯誤分類的得分-7的差為20,高於邊界值10。而SVM只關心差距至少要大於10,更大的差值還是算作損失值為0。第二個部分計算[11-13+10]得到8。雖然正確分類的得分比不正確分類的得分要高(13>11),但是比10的邊界值還是小了,分差只有2,這就是為什么損失值等於8。簡而言之,SVM的損失函數想要正確分類類別
的分數比不正確類別分數高,而且至少要高
。如果不滿足這點,就開始計算損失值。
那么在這次的模型中,我們面對的是線性評分函數(),所以我們可以將損失函數的公式稍微改寫一下:

其中是權重
的第j行,被變形為列向量。然而,一旦開始考慮更復雜的評分函數
公式,這樣做就不是必須的了。
在結束這一小節前,還必須提一下的屬於是關於0的閥值:函數,它常被稱為折葉損失(hinge loss)。有時候會聽到人們使用平方折葉損失SVM(即L2-SVM),它使用的是
,將更強烈(平方地而不是線性地)地懲罰過界的邊界值。不使用平方是更標准的版本,但是在某些數據集中,平方折葉損失會工作得更好。可以通過交叉驗證來決定到底使用哪個