理解Hinge Loss (折页损失函数、铰链损失函数)

原创 2018年04月17日 01:32:35

Hinge Loss 是机器学习领域中的一种损失函数,可用于最大间隔(max-margin)”分类,其最著名的应用是作为SVM的目标函数。

在二分类情况下,公式如下: 

L(y) = max(0 , 1 – ty)

其中,y是预测值(-1到1之间),t为目标值(1或 -1)。其含义为,y的值在 -1到1之间即可,并不鼓励 |y|>1,即让某个样本能够正确分类就可以了,不鼓励分类器过度自信,当样本与分割线的距离超过1时并不会有任何奖励。目的在于使分类器更专注于整体的分类误差。

变种

在实际应用中,一方面,预测值y并不总是属于[-1,1],也可能属于其他的取值范围;另一方面,很多时候我们希望训练的是两个元素之间的相似关系,而非样本的类别得分。所以下面的公式可能会更加常用: 

L( y, y′) = max( 0, margin – (y–y′) )

             = max( 0, margin + (y′–y) )

            = max( 0, margin + y′ – y)

其中,y是正确预测的得分,y是错误预测的得分,两者的差值可用来表示两种预测结果的相似关系,margin是一个由自己指定的安全系数。我们希望正确预测的得分高于错误预测的得分,且高出一个边界值 margin,换句话说,y越高越好,y越低越好,(y–y′)越大越好,(y′–y)越小越好,但二者得分之差最多为margin就足够了,差距更大并不会有任何奖励。这样设计的目的在于,对单个样本正确分类只要有margin的把握就足够了,更大的把握则不必要,过分注重单个样本的分类效果反而有可能使整体的分类效果变坏。分类器应该更加专注于整体的分类误差。

举个栗子,假设有3个类cat、car、frog


第一列表示样本真实类别为cat,分类器判断样本为cat的分数为3.2,判断为car的分数为5.1,判断为frog的分数为 -1.7。那这里的 hinge loss 怎么计算呢?

这里是让其他两类的分数去减去真实类别的分数,这相当于计算其他类与真实类之间的误差。因为我们希望错误类别的评分低于正确类别的评分,所以这个误差值越小越好。另外,还使用了一个边界值margin,取值为1,为了使训练出的分类器有更大的把握进行正确分类。

有多种 hinge loss 的变化形式,比如,Crammerand Singer提出的一种针对线性分类器的损失函数:

Weston and Watkins提出了一种相似定义,只不过用相加取代了求最大值 

优化

hinge loss 函数是凸函数,因此机器学习中很多的凸优化方法同样适用于 hinge loss。

然而,因为 hinge loss 在ty=1的时候导数是不确定的,所以一个平滑版的 hinge loss 函数会更加有助于优化,它由Rennie and Srebro提出 

除此之外,还有二次方平滑



上图为 hinge loss 函数关于z=ty的三种版本,蓝色的线是原始版,绿色线为二次方平滑,红色的线为分段平滑,也就是Rennie and Srebro提出的那一版。


参考资料:

https://blog.csdn.net/luo123n/article/details/48878759###

https://blog.csdn.net/sxf1061926959/article/details/60470415

https://blog.csdn.net/chaipp0607/article/details/76037351

机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)

1. 损失函数损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表...
  • u010976453
  • u010976453
  • 2017-11-09 12:38:55
  • 7291

机器学习基础(四十二)—— 常用损失函数的设计(multiclass SVM loss & hinge loss)

损失函数,又叫代价函数(成本函数,cost function),是应用优化算法解决问题的关键。1. 0-1 损失函数误分类的概率为: P(Y≠f(X))=1−P(Y=f(X)) P(Y\neq f(...
  • lanchunhui
  • lanchunhui
  • 2016-04-06 12:23:44
  • 3468

SVM 合页损失函数 导数

Lets use the example of the SVM loss function for a single datapoint: We can differentiate the ...
  • suichen1
  • suichen1
  • 2016-01-12 13:25:46
  • 3489

损失函数:Hinge Loss(max margin)

Hinge Loss简介Hinge Loss是一种目标函数(或者说损失函数)的名称,有的时候又叫做max-margin objective。其最著名的应用是作为SVM的目标函数。其二分类情况下,公式如...
  • luo123n
  • luo123n
  • 2015-10-03 17:03:27
  • 28929

多类SVM的损失函数

原文:Multi-class SVM Loss  作者: Adrian Rosebrock  翻译: KK4SBB 责编:何永灿 from: http://geek.csdn.net...
  • Real_Myth
  • Real_Myth
  • 2016-09-19 09:08:36
  • 5048

机器学习中的损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验...
  • shenxiaoming77
  • shenxiaoming77
  • 2016-06-08 17:29:19
  • 52689

人脸识别:损失函数之softmax loss和cross entropy Loss

转载blog:http://blog.csdn.net/u014380165/article/details/77284921 我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般...
  • wfei101
  • wfei101
  • 2018-02-04 12:53:46
  • 161

hinge loss/支持向量损失的理解

线性分类器损失函数与最优化 假设有3类 cat car frog 第一列第二行的5.1表示真实类别为cat,然后分类器判断为car的的分数为5.1。 那这里的这个loss怎么...
  • AI_focus
  • AI_focus
  • 2017-10-25 11:22:56
  • 1216

支持向量机学习笔记(2)合页损失函数

合页损失函数 对于线性支持向量机学习来说,其模型为分离超平面及决策函数, 其学习策略为软间隔最大化,学习算法为凸二次规划。 现行支持向量机学习另一种解释,就是最小化一下目标函数: 目标函数的第一...
  • Ellamelody
  • Ellamelody
  • 2017-10-18 10:41:36
  • 661

机器学习中的常见问题——损失函数

import matplotlib.pyplot as plt import numpy as np xmin, xmax = -4, 4 xx = np.linspace(xmin, xmax, ...
  • google19890102
  • google19890102
  • 2016-03-31 15:54:55
  • 30184
收藏助手
不良信息举报
您举报文章:理解Hinge Loss (折页损失函数、铰链损失函数)
举报原因:
原因补充:

(最多只允许输入30个字)