在機器學習中,鉸鏈損失是一個用於訓練分類器的損失函數。鉸鏈損失被用於「最大間格分類」,因此非常適合用於支持向量機 (SVM)。
对于一个预期输出 t={\pm}1,分类结果 y 的鉸鏈損失定義為
:\ell(y) = \max(0, 1-t \cdot y)
特別注意:以上式子的y應該使用分類器的「原始輸出」,而非預測標籤。例如,在線性支持向量機當中,y = \mathbf{w} \cdot \mathbf{x} + b,其中 (\mathbf{w},b) 是超平面参数,\mathbf{x}是輸入資料點。
當t和y同號(意即分類器的輸出y是正確的分類),且 |y| \ge 1时,鉸鏈損失 \ell(y) = 0。但是,當它們異號(意即分類器的輸出y是错误的分類)時,\ell(y) 隨 y 線性增長。套用相似的想法,如果 |y| ,即使 t 和 y 同號(意即分類器的分類正確,但是間隔不足),此時仍然會有損失。
扩展
二元支持向量机经常通过一对多(winner-takes-all strategy,WTA SVM)或一对一(max-wins voting,MWV SVM)策略来扩展为多元分类,
铰接损失也可以做出类似的扩展,已有数个不同的多元分类铰接损失的变体被提出。 例如,Crammer 和 Singer
将一个多元线性分类的铰链损失定义为
: \ell(y) = \max(0, 1 + \max_{y \ne t} \mathbf{w}_y \mathbf{x} - \mathbf{w}_t \mathbf{x})
其中 t 为目的标签, \mathbf{w}_t 和 \mathbf{w}_y 该模型的参数。
Weston 和 Watkins 提出了一个类似的定义,但使用求和代替了最大值:
: \ell(y) = \sum_{y \ne t} \max(0, 1 + \mathbf{w}_y \mathbf{x} - \mathbf{w}_t \mathbf{x})
在结构预测中,铰接损失可以进一步扩展到结构化输出空间。支持间隔调整的结构化支持向量机 可以使用如下所示的铰链损失变体,其中 表示SVM的参数, 为SVM的预测结果, 为联合特征函数, 为汉明损失:
: \begin{align}
\ell(\mathbf{y}) & = \max(0, \Delta(\mathbf{y}, \mathbf{t}) + \langle \mathbf{w}, \phi(\mathbf{x}, \mathbf{y}) \rangle - \langle \mathbf{w}, \phi(\mathbf{x}, \mathbf{t}) \rangle) \\
& = \max(0, \max_{y \in \mathcal{Y}} \left( \Delta(\mathbf{y}, \mathbf{t}) + \langle \mathbf{w}, \phi(\mathbf{x}, \mathbf{y}) \rangle \right) - \langle \mathbf{w}, \phi(\mathbf{x}, \mathbf{t}) \rangle)
\end{align}
优化算法
铰链损失是一种凸函数,因此许多机器学习中常用的凸优化器均可用于优化铰链损失。 它不是可微函数,但拥有一个关于线性 SVM 模型参数 的次导数
: \frac{\partial\ell}{\partial w_i} = \begin{cases}
-t \cdot x_i & \text{if } t \cdot y
其评分函数为 y = \mathbf{w} \cdot \mathbf{x}
然而,由于铰接损失在 ty = 1处不可导, Zhang 建议在优化时可使用平滑的变体建议, 如Rennie 和 Srebro 提出的分段平滑
: \ell(y) = \begin{cases}
\frac{1}{2} - ty & \text{if} ~~ ty \le 0, \\
\frac{1}{2} (1 - ty)^2 & \text{if} ~~ 0
或平方平滑。
: \ell_\gamma(y) = \begin{cases}
\frac{1}{2\gamma} \max(0, 1 - ty)^2 & \text{if} ~~ ty \ge 1 - \gamma \\
1 - \frac{\gamma}{2} - ty & \text{otherwise}
\end{cases}
Modified Huber loss L是\gamma = 2时损失函数的特例,此时 L(t,y) = 4 \ell_2(y)中。
参考文献
评论 (0)