[讀書筆記] 自然語言處理中的損失函數和正則項

  • 書:
    • 基於深度學習的自然語言處理
    • Neural Network Methods for Natural Language Processing
  • 作者:Yoav Goldberg
  • 出版社:機械工業出版社
  • 章節:2.7 訓練和最優化

損失函數

注:主要是在自然語言處理中經常和線性模型以及神經網絡一起使用的損失函數。

1. hinge損失函數

二分類:間隔損失、SVM損失

  • 損失函數:
    Lhinge(binary)(y~,y)=max(0,1yy~) L_{hinge(binary)}(\widetilde{y},y)=max(0, 1-y\cdot\widetilde{y})
    分類規則爲:
    prediction=y^=sign(y~) prediction=\hat{y}=sign(\widetilde{y})
    其中,yy是正確的類別(1或-1),y~\widetilde{y}是分類器的計算結果,y^\hat{y}是分類器的輸出。
  • 目標:
    • 得到一個間隔至少是1的正確分類

多分類

  • 損失函數:
    Lhinge(multiclass)(y^,y)=max(0,1(y^[t]y^[k])) L_{hinge(multi-class)}(\hat{y},y)=max(0,1-(\hat{y}_{[t]}-\hat{y}_{[k]}))
    分類規則爲選擇分數最高的類別:
    prediction=argmaxi y^[i] prediction=\mathop{\arg\max}_{i}\ \hat{y}_{[i]}
    其中,yy是正確類別的獨熱向量,y^\hat{y}是模型的輸出向量(y^=y^[1],y^[2],,y^[n]\hat{y}=\hat{y}_{[1]},\hat{y}_{[2]},\dots,\hat{y}_{[n]}),y^[t]\hat{y}_{[t]}爲正確類別tt對應的分數,y^[k]\hat{y}_{[k]}最高分類別kk的分數。
  • 目標:
    • 使正確類別的得分比其他類別至少高出1。

評價

  • 可用於線性輸出
  • 適用於當需要一個嚴格的決策規則,而不需要建模類別成員概率的情況

2. 對數(log)損失函數

  • 損失函數:
    Llog(y^,y)=log(1+exp((y^[t]y^[k]) L_{log}(\hat{y},y)=log(1+exp(-(\hat{y}_{[t]}-\hat{y}_{[k]})
    符號含義同多分類hinge。

評價

  • 是hinge損失的常用變形
  • 可以看作hinge損失的平緩版本,具有無限大的間隔

3. 交叉熵

二分類:二元交叉熵損失、logistic損失

  • 損失函數:
    Llogistic(y^,y)=ylogy^(1y)log(1y^) L_{logistic}(\hat{y},y)=-ylog\hat{y}-(1-y)log(1-\hat{y})
    分類規則:
    prediction={0y^<0.51y^0.5 prediction= \begin{cases} 0 & \hat{y}<0.5 \\ 1 & \hat{y}\ge0.5 \end{cases}
    其中,yy是正確的類別(0或1),y^\hat{y}是模型的輸出y~\widetilde{y}經過變換的結果(y^=sigmod(y~)=P(y=1x))\hat{y}=sigmod(\widetilde{y})=P(y=1|x)),即y^\hat{y}爲樣本爲1的概率。

多分類:分類交叉熵損失、負對數似然損失

  • 損失函數:
    Lcrossentropy(y^,y)=iy[i]log(y^[i]) L_{cross-entropy}(\hat{y},y)=-\sum_iy_{[i]}log(\hat{y}_{[i]})
    其中,yy是正確類別分佈向量(y=y[1],y[2],,y[n]y=y_{[1]},y_{[2]},\dots,y_{[n]}),y^\hat{y}是經過softmax轉換的模型(線性分類器)輸出向量(y^=y^[1],y^[2],,y^[n]y^[i]=P(y=ix))\hat{y}=\hat{y}_{[1]},\hat{y}_{[2]},\dots,\hat{y}_{[n]},\hat{y}_{[i]}=P(y=i|x))
  • 簡化版:
    • 對於訓練樣本有且只有一個正確的類別這類嚴格的分類問題來說,yy是一個代表正確類別的獨熱向量:
      Lcrossentropy(hard classification)(y^,y)=log(y^[t]) L_{cross-entropy(hard\ classification)}(\hat{y},y)=-\log(\hat{y}_{[t]})
      其中,tt是正確的類別。
  • 目標:
    • (正常版)最小化正確類別分佈yy與預測類別分佈y^\hat{y}之間的相異度
    • (簡化版)使正確類別的概率最大

評價

  • 常見於對數線性模型和神經網絡文獻中
  • 用於構造一個不僅可以預測最好類別也可以預測可能類別分佈的多分類器

4. 等級損失

注:還沒整明白

margin

  • 損失函數:
    Lranking(margin)(x,x)=max(0,1(f(x)f(x))) L_{ranking(margin)}(x,x')=max(0,1-(f(x)-f(x')))

log

  • 損失函數:
    Lranking(log)(x,x)=log(1+exp(f(x)f(x)))) L_{ranking(log)}(x,x')=log(1+exp(-f(x)-f(x'))))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章