標籤:

損失函數——Hinge

本文討論Hinge損失函數,該函數是機器學習中常用的損失函數之一。


函數特性

在機器學習中,hinge loss是一種損失函數,它通常用於"maximum-margin"的分類任務中,如支持向量機。數學表達式為:

L(y)=max(0,1-hat{y}y)

其中 hat{y} 表示預測輸出,通常都是軟結果(就是說輸出不是0,1這種,可能是0.87。), y 表示正確的類別。

  • 如果 hat{y}y<1 ,則損失為: 1-hat{y}y
  • 如果 hat{y}y>=1 ,則損失為:0

其函數圖像如下,與0-1損失對比:

優化

以支持向量機為例,其模型為: hat{y}=wcdot x ,如果用hinge損失,其求導結果如下:

egin{split}frac{partial L}{partial w_i}=egin{cases} -ycdot x_i, & 	ext{if $hat{y}y<1$} \ 0, & 	ext{otherwise}end{cases}end{split}

變種

實際應用中,一方面很多時候我們的y的值域並不是[-1,1],比如我們可能更希望y更接近於一個概率,即其值域最好是[0,1]。另一方面,很多時候我們希望訓練的是兩個樣本之間的相似關係,而非樣本的整體分類,所以很多時候我們會用下面的公式:

l(y,y)=max(0, m-y+y)

其中,y是正樣本的得分,y』是負樣本的得分,m是margin(自己選一個數)

即我們希望正樣本分數越高越好,負樣本分數越低越好,但二者得分之差最多到m就足夠了,差距增大並不會有任何獎勵。

比如,我們想訓練詞向量,我們希望經常同時出現的詞,他們的向量內積越大越好;不經常同時出現的詞,他們的向量內積越小越好。則我們的hinge loss function可以是:

l(w,w+,w-)=max(0, 1-w^Tcdot w+ + w^Tcdot w-)

其中,w是當前正在處理的詞, w_+ 是w在文中前3個詞和後3個詞中的某一個詞, w_? 是隨機選的一個詞。

參考

[1]. Wikiwand Hinge loss

[2]. 損失函數:Hinge Loss(max margin)

推薦閱讀:

直覺版:CNN解讀part1
機器學習Part2:如何用邏輯回歸分類
Machine Learning: 機器學習項目Top 30 (v.2018)
機器學習基本套路
BOW 演算法,被CNN 打爆之前的王者

TAG:機器學習 |