Hinge loss

来自testwiki
跳转到导航 跳转到搜索
Template:Math 时变量 Template:Mvar(水平方向)的铰链损失(蓝色,垂直方向)与0/1损失(垂直方向;绿色为 Template:Math ,即分类错误)。注意铰接损失在 Template:Math 时也会给出惩罚,对应于支持向量机中间隔的概念。

機器學習中,鉸鏈損失是一個用於訓練分類器的損失函數。鉸鏈損失被用於「最大間格分類」,因此非常適合用於支持向量機 (SVM)。[1] 对于一个预期输出 t=±1,分类结果 y 的鉸鏈損失定義為

(y)=max(0,1ty)

特別注意:以上式子的y應該使用分類器的「原始輸出」,而非預測標籤。例如,在線性支持向量機當中,y=𝐰𝐱+b,其中 (𝐰,b)超平面参数,𝐱是輸入資料點。

ty同號(意即分類器的輸出y是正確的分類),且 |y|1时,鉸鏈損失 (y)=0。但是,當它們異號(意即分類器的輸出y是错误的分類)時,(y)y 線性增長。套用相似的想法,如果 |y|<1,即使 ty 同號(意即分類器的分類正確,但是間隔不足),此時仍然會有損失。

扩展

二元支持向量机经常通过一对多(winner-takes-all strategy,WTA SVM)或一对一(max-wins voting,MWV SVM)策略来扩展为多元分类[2] 铰接损失也可以做出类似的扩展,已有数个不同的多元分类铰接损失的变体被提出。[3] 例如,Crammer 和 Singer [4] 将一个多元线性分类的铰链损失定义为[5]

(y)=max(0,1+maxyt𝐰y𝐱𝐰t𝐱)

其中 t 为目的标签, 𝐰t𝐰y 该模型的参数。

Weston 和 Watkins 提出了一个类似的定义,但使用求和代替了最大值:[6][3]

(y)=ytmax(0,1+𝐰y𝐱𝐰t𝐱)

在结构预测中,铰接损失可以进一步扩展到结构化输出空间。支持间隔调整的结构化支持向量机 可以使用如下所示的铰链损失变体,其中 Template:Math 表示SVM的参数, Template:Math 为SVM的预测结果,Template:Mvar 为联合特征函数,Template:Math汉明损失:

(𝐲)=max(0,Δ(𝐲,𝐭)+𝐰,ϕ(𝐱,𝐲)𝐰,ϕ(𝐱,𝐭))=max(0,maxy𝒴(Δ(𝐲,𝐭)+𝐰,ϕ(𝐱,𝐲))𝐰,ϕ(𝐱,𝐭))

优化算法

铰链损失是一种凸函数,因此许多机器学习中常用的凸优化器均可用于优化铰链损失。 它不是可微函数,但拥有一个关于线性 SVM 模型参数 Template:Math次导数

wi={txiif ty<10otherwise

评分函数y=𝐰𝐱

三个铰链损失的变体 Template:Math:“普通变体”(蓝色),平方变体(绿色),以及 Rennie 和 Srebro 提出的分段平滑变体(红色)。

然而,由于铰接损失在 ty=1处不可导, Zhang 建议在优化时可使用平滑的变体建议,[7] 如Rennie 和 Srebro 提出的分段平滑[8]

(y)={12tyifty0,12(1ty)2if0<ty1,0if1ty

或平方平滑。

γ(y)={12γmax(0,1ty)2ifty1γ1γ2tyotherwise

Modified Huber loss Lγ=2时损失函数的特例,此时 L(t,y)=42(y)中。

参考文献

Template:Reflist