机器学习 [合页损失函数 Hinge Loss]

版权声明:作者原创,转载请注明出处 https://blog.csdn.net/gukedream/article/details/86562669

函数特性

在机器学习中,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}=w\cdot x ,如果用hinge损失,其求导结果如下:

\begin{split}\frac{\partial L}{\partial w_i}=\begin{cases} -y\cdot x_i, & \text{if $\hat{y}y<1$} \\ 0, & \text{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^T\cdot w+ + w^T\cdot w-)

其中,w是当前正在处理的词, w_+是w在文中前3个词和后3个词中的某一个词, w_− 是随机选的一个词。

 

参考

[1] Wikiwand Hinge loss

[2] 损失函数:Hinge Loss(max margin)

 

猜你喜欢

转载自blog.csdn.net/gukedream/article/details/86562669