Hinge loss

article/2025/10/28 7:20:09

声明:

  1. 参考自维基百科
  2. 后面可能会更新

Hinge Loss

  在机器学习中,hinge loss作为一个损失函数(loss function),通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM(支持向量机support vector machines)用到的重要算法(注意:SVM的学习算法有两种解释:1. 间隔最大化与拉格朗日对偶;2. Hinge Loss)。

  Hinge loss专用于二分类问题,标签值 y=±1 y = ± 1 ,预测值 ŷ R y ^ ∈ R 。该二分类问题的目标函数的要求如下:
  当 ŷ  y ^ 大于等于+1或者小于等于-1时,都是分类器确定的分类结果,此时的损失函数loss为0;而当预测值 ŷ (1,1) y ^ ∈ ( − 1 , 1 ) 时,分类器对分类结果不确定,loss不为0。显然,当 ŷ =0 y ^ = 0 时,loss达到最大值。

  如果你想到了一个可以定义这种loss的函数,那说明有成为数学家的潜质。想不到的话就乖乖的往下看:hinge loss出场。
  对于输出 y=±1 y = ± 1 ,当前 ŷ  y ^ 的损失为

(y)=max(0,1yŷ ) ℓ ( y ) = max ( 0 , 1 − y ⋅ y ^ )

上式是Hinge loss在二分类问题的的变体,可以看做双向Hinge loss。难以理解的话,可以先看单方向的hinge loss。以y=+1,为例。当 y1 y ⩾ 1 时,loss为0,否则loss线性增大。函数图像如下所示:

Hinge函数图像
图片来源: 机器学习基础(四十二)—— 常用损失函数的设计(multiclass SVM loss & hinge loss)

Hinge loss在SVM中的应用

  SVM在简单情况下(线性可分情况下)使用的就是一个最大间隔算法。几何意义如下图所示(实心的数据点就是该类别的支持向量),最大化分离超平面到两个类别的支持向量之间的距离 。

支持向量
图片来源: 知乎-支持向量机(SVM)是什么意思?

  线性可分SVM的预测值 ŷ =wx+b y ^ = w ⋅ x + b ,其中 w w b都是分类器通过样本学习到的参数。正如前面所说, ŷ R y ^ ∈ R 。如果分离超平面在如上图所示的位置(这是最大分割情况)并且支持向量与分割平面之间的距离=1,每个 y=1 y = 1 的样本其 ŷ 1 y ^ ⩾ 1 ,每个 y=1 y = − 1 的样本其 ŷ 1 y ^ ⩽ − 1 ,每个点的Hinge loss为0,整体loss作为平均值,也等于0。 如果分割超平面误分类,则Hinge loss大于0。Hinge loss驱动分割超平面作出调整。 如果分割超平面距离支持向量的距离小于1,则Hinge loss大于0,且就算分离超平面满足最大间隔,Hinge loss仍大于0

拓展

  再强调一下,使用Hinge loss的分类器的 ŷ R y ^ ∈ R |ŷ | | y ^ | 越大,说明样本点离分割超平面越远,即该样本点很容易被分类。但是,我们在选择合适的损失函数进行优化时,没必要关注那些离超平面很远的样本。为此,我们可以通过对距分离超平面的距离选择一个阈值,来过滤这些离超平面很远的样本。这就是Hinge loss的精髓, (y)=max(0,1yŷ ) ℓ ( y ) = max ( 0 , 1 − y ⋅ y ^ ) ,式中的1就是我们选择的阈值,这个可以作为一个超参数。通过一个max(0, )函数,忽略 ŷ  y ^ 值过高的情况

SVM

  这个思想可以拓展到SVM的多分类问题。SVM的多分类有两种损失函数:

(y)=max(0,1+maxŷ ywŷ xwyx) ℓ ( y ) = max ( 0 , 1 + max y ^ ≠ y w y ^ x − w y x )

其中, maxŷ y(wŷ x+b) max y ^ ≠ y ( w y ^ x + b ) 表示对于某一标签值 y y ,分类器错误预测的最大值,wyx+b表示正确的分类器预测值, 1 1 表示分类阈值。注意:即使是分类器,也是先产生预测值,再根据预测值和分类阈值进行分类的

(y)=tymax(0,1+wy^xwyx)

其中, wŷ x+b w y ^ x + b 表示错误的分类器预测值, wyx+b w y x + b 表示正确的分类器预测值, 1 1 表示分类阈值。
如下图SVM的预测结果所示:

多分类SVM预测结果
图片来源:CS231n 2016 通关 第三章-SVM与Softmax

运用公式1:
x1的Hinge loss

(y)=max(0,1+5.13.2)=2.9 ℓ ( y ) = max ( 0 , 1 + 5.1 − 3.2 ) = 2.9

x2 x 2 的Hinge loss

(y)=max(0,1+2.04.9)=0 ℓ ( y ) = max ( 0 , 1 + 2.0 − 4.9 ) = 0

x3 x 3 的Hinge loss

(y)=max(0,1+2.5(3.1))=6.6 ℓ ( y ) = max ( 0 , 1 + 2.5 − ( − 3.1 ) ) = 6.6

L=133i(2.9+0+6.6) L = 1 3 ∑ i 3 ( 2.9 + 0 + 6.6 )

运用公式2:
也差不多,最后的结果是 2.9,0,10.9 2.9 , 0 , 10.9 ,然后再求平均。PS: 公式2在实际中应用更多

SSVM

  Hinge loss的变体也被应用于Structured SVMs中。这里不太懂…

优化

  Hinge loss是一个凸函数(convex function),所以适用所有的机器学习凸优化方法。
虽然Hinge loss函数不可微,但我们可以求它的分段梯度:

wi={txi0if ty<1otherwise ∂ ℓ ∂ w i = { − t ⋅ x i if  t ⋅ y < 1 0 otherwise

当然,Hinge loss的梯度在 ty=1 t y = 1 点处未定义。

平滑

  为了解决Hinge loss的优化问题,现在有两种平滑(smoothed)策略:

(y)=12ty12(1ty)20if  ty0,if  0<ty1,if  1ty ℓ ( y ) = { 1 2 − t y if t y ≤ 0 , 1 2 ( 1 − t y ) 2 if 0 < t y ≤ 1 , 0 if 1 ≤ t y

(y)=12γmax(0,1ty)2 ℓ ( y ) = 1 2 γ max ( 0 , 1 − t y ) 2
其中通常取 γ=2 γ = 2


http://chatgpt.dhexx.cn/article/qISxlIOh.shtml

相关文章

【深度学习】一文读懂机器学习常用损失函数(Loss Function)

【深度学习】一文读懂机器学习常用损失函数&#xff08;Loss Function&#xff09; 最近太忙已经好久没有写博客了&#xff0c;今天整理分享一篇关于损失函数的文章吧&#xff0c;以前对损失函数的理解不够深入&#xff0c;没有真正理解每个损失函数的特点以及应用范围&#x…

Pytorch之loss(损失函数)

损失函数也在torch.nn下&#xff0c;具体可以参考文档&#xff0c;也可以参考官网 先根据L1Loss举例 我个人感觉这里的描述还是到官网的文档找比较好&#xff0c;公式看的比文档清楚 import torch from torch import nninputs torch.tensor([[3, 2, 1],[1, 2, 3]], dtypetorch…

机器学习 损失函数 Loss function

损失函数 最小二乘法极大似然估计法交叉熵 【本文根据B站-王木头学科学-视频所学】 在梯度下降中&#xff0c;所求的梯度其实就是损失函数的梯度。 损失函数有三种设计方法&#xff1a; &#xff08;1&#xff09;最小二乘法 &#xff08;2&#xff09;极大似然估计法 &#x…

Focal loss 损失函数详解

Focal loss 目前目标检测的算法大致分为两类&#xff0c;One Stage 、Two Stage。 One Stage&#xff1a;主要指类似YOLO、SGD等这样不需要region proposal,直接回归的检测算法&#xff0c;这类算法检测速度很快&#xff0c;但是精度准确率不如使用Two stage的模型。 two St…

机器学习之常见的损失函数(loss function)

解决一个机器学习问题主要有两部分&#xff1a;数据和算法。而算法又有三个部分组成&#xff1a;假设函数、损失函数、算法优化。我们一般在看算法书或者视频教学时&#xff0c;更多的是去推算或者说参数估计出其假设函数&#xff0c;而往往不太注重损失函数&#xff0c;但是损…

深度学习loss函数理解

机器学习中的范数规则化之L0、L1、L2范数及loss函数 监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”&#xff0c;也就是在规则化参数的同时最小化误差。 最小化误差是为了让我们的模型拟合我们的训练数据&#xff0c;而规则化参数是防止我…

CE Loss,BCE Loss以及Focal Loss的原理理解

一、交叉熵损失函数&#xff08;CE Loss&#xff0c;BCE Loss&#xff09; 最开始理解交叉熵损失函数被自己搞的晕头转向的&#xff0c;最后发现是对随机变量的理解有偏差&#xff0c;不知道有没有读者和我有着一样的困惑&#xff0c;所以在本文开始之前&#xff0c;先介绍一下…

损失函数loss

http://blog.csdn.net/pipisorry/article/details/23538535 监督学习及其目标函数 损失函数&#xff08;loss function&#xff09;是用来估量你模型的预测值f(x)与真实值Y的不一致程度&#xff0c;它是一个非负实值函数&#xff0c;通常使用L(Y, f(x))来表示。 损失函数是经…

机器学习模型中的损失函数loss function

1. 概述 在机器学习算法中&#xff0c;有一个重要的概念就是损失函数&#xff08;Loss Function&#xff09;。损失函数的作用就是度量模型的预测值 f ( x ) f\left ( \mathbf{x} \right ) f(x)与真实值 y \mathbf{y} y之间的差异程度的函数&#xff0c;且是一个非负实值函数。…

损失函数(Loss)

如果我们定义了一个机器学习模型&#xff0c;比如一个三层的神经网络&#xff0c;那么就需要使得这个模型能够尽可能拟合所提供的训练数据。但是我们如何评价模型对于数据的拟合是否足够呢&#xff1f;那就需要使用相应的指标来评价它的拟合程度&#xff0c;所使用到的函数就称…

focal loss详解

文章目录 focal loss的整体理解易分辨样本、难分辨样本的含义focal loss的出现过程focal loss 举例说明focal loss的 α \alpha α变体 focal loss的整体理解 focal loss 是一种处理样本分类不均衡的损失函数&#xff0c;它侧重的点是根据样本分辨的难易程度给样本对应的损失添…

深度学习——损失函数(Regression Loss、Classification Loss)

简介 Loss function 损失函数 用于定义单个训练样本与真实值之间的误差 Cost function 代价函数 用于定义单个批次/整个训练集样本与真实值之间的误差 Objective function 目标函数 泛指任意可以被优化的函数 损失函数用于衡量模型所做出的预测离真实值(GT)之间的偏离程度。 …

深度学习中常见的损失函数(L1Loss、L2loss)

损失函数定义 损失函数&#xff1a;衡量模型输出与真实标签的差异。 L1_loss 平均绝对误差&#xff08;L1 Loss&#xff09;:平均绝对误差&#xff08;Mean Absolute Error,MAE&#xff09;是指模型预测值f(x)和真实值y之间距离的平均值&#xff0c;公式如下&#xff1a; 优…

损失函数(loss function)

文章目录 1、什么是损失函数2、为什么要使用损失函数3、损失函数分类1、分类一2、分类二3、分类三3.1基于距离度量的损失函数3.1.1 均方误差损失函数&#xff08;MSE&#xff09;3.1.2 L2损失函数3.1.3 L1损失函数3.1.4 Smooth L1损失函数3.1.5 huber损失函数 3.2 基于概率分布…

Focal Loss损失函数(超级详细的解读)

什么是损失函数&#xff1f; 1、什么是损失呢&#xff1f; 在机器学习模型中&#xff0c;对于每一个样本的预测值与真实值的差称为损失。 2、什么是损失函数呢&#xff1f; 显而易见&#xff0c;是一个用来计算损失的函数。它是一个非负实值函数,通常使用L(Y, f(x))来表示。 3、…

损失函数loss大总结

分类任务loss: 二分类交叉熵损失sigmoid_cross_entropy&#xff1a; TensorFlow 接口&#xff1a; tf.losses.sigmoid_cross_entropy(multi_class_labels,logits,weights1.0,label_smoothing0,scopeNone,loss_collectiontf.GraphKeys.LOSSES,reductionReduction.SUM_BY_NONZER…

深度学习基础(三)loss函数

loss函数&#xff0c;即损失函数&#xff0c;是决定网络学习质量的关键。若网络结构不变的前提下&#xff0c;损失函数选择不当会导致模型精度差等后果。若有错误&#xff0c;敬请指正&#xff0c;Thank you&#xff01; 目录 一、loss函数定义 二、常见的loss算法种类 1.M…

loss函数 激活函数

一、LOSS函数 loss函数指机器学习模型中用于最小化的目标函数&#xff0c;其一般意义是指判别错误的程度&#xff0c;因为我们要提高准确率&#xff0c;也就是降低错误率&#xff0c;所以可以归结为一个最小化损失函数的问题。 具体的&#xff0c;我们假设有一个十分类问题&a…

Loss损失函数

损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数&#xff0c;用于衡量预测值与实际值的偏离程度。在机器学习中&#xff0c;损失函数是代价函数的一部分&#xff0c;而代价函数是目标函数的一种类型。 在《神经网络中常…

深度学习之——损失函数(loss)

深度学习中的所有学习算法都必须有一个 最小化或最大化一个函数&#xff0c;称之为损失函数&#xff08;loss function&#xff09;&#xff0c;或“目标函数”、“代价函数”。损失函数是衡量模型的效果评估。比如&#xff1a;求解一个函数最小点最常用的方法是梯度下降法&…