损失函数分类

article/2025/10/11 14:11:37

损失函数

机器学习模型关于单个样本的预测值与真实值的差称为损失。损失越小,模型越好,如果预测值与真实值相等,就是没有损失。
损失函数(Loss function)是用来估量模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示。损失函数越小,模型的鲁棒性就越好。
虽然损失函数可以让我们看到模型的优劣,并且为我们提供了优化的方向,但是我们必须知道没有任何一种损失函数适用于所有的模型。损失函数的选取依赖于参数的数量、异常值、机器学习算法、梯度下降的效率、导数求取的难易和预测的置信度等若干方面。
由于机器学习的任务不同,损失函数一般分为分类和回归两类,回归会预测出一个数值结果,分类则会给出一个标签。

分类损失函数

1.0-1损失函数

0-1损失是指,预测值和目标值不相等为1,否则为0:

感知机就是用的这种损失函数。但是由于相等这个条件太过严格,因此我们可以放宽条件,即满足 |Y−f(X)|<T时认为相等。

2.对数损失函数

逻辑回归的损失函数就是对数损失函数,在逻辑回归的推导中,它假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接着用对数求极值。逻辑回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了对数损失函数。
损失函数的标准形式:

在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。损失函数L(Y,P(Y|X))是指样本X在分类Y的情况下,使概率P(Y|X)达到最大值(利用已知的样本分布,找到最大概率导致这种分布的参数值)

3.平方损失函数

最小二乘法是线性回归的一种方法,它将回归的问题转化为了凸优化的问题。最小二乘法的基本原则是:最优拟合曲线应该使得所有点到回归直线的距离和最小。通常用欧几里得距离进行距离的度量。平方损失的损失函数为:

4. 指数损失函数

AdaBoost就是以指数损失函数为损失函数的。
指数损失函数的标准形式:

 

5. Hinge损失函数

Hinge损失函数用于最大间隔(maximum-margin)分类,其中最有代表性的就是支持向量机SVM。
Hinge函数的标准形式:

其中,t为目标值(-1或+1),y是分类器输出的预测值,并不直接是类标签。其含义为,当t和y的符号相同时(表示y预测正确)并且|y|≥1时,hinge loss为0;当t和y的符号相反时,Hinge损失函数随着y的增大线性增大。
在支持向量机中,最初的SVM优化的函数如下:

将约束项进行变形,则为:

则损失函数可以进一步写为:

因此,SVM的损失函数可以看做是L2正则化与Hinge loss之和。

回归损失函数

1.L1损失函数:

平均绝对误差(MAE)是一种常用的回归损失函数,它是目标值与预测值之差绝对值的和,表示了预测值的平均误差幅度,而不需要考虑误差的方向(注:平均偏差误差MBE则是考虑的方向的误差,是残差的和),范围是0到∞,其公式如下所示:

MAE损失(y轴)与预测(x轴)

2.L2损失函数:

均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和,其公式如下所示:

下图是均方根误差值的曲线分布,其中最小值为预测值为目标值的位置。我们可以看到随着误差的增加损失函数增加的更为迅猛。

MSE损失(y轴)与预测(x轴)

3.Huber损失函数

Huber损失相比于平方损失来说对于异常值不敏感,但它同样保持了可微的特性。它基于绝对误差但在误差很小的时候变成了平方误差。我们可以使用超参数δ来调节这一误差的阈值。当δ趋向于0时它就退化成了MAE,而当δ趋向于无穷时则退化为了MSE,其表达式如下,是一个连续可微的分段函数:

 

Huber损失(y轴)与预测(x轴)

对于Huber损失来说,δ的选择十分重要,它决定了模型处理异常值的行为。当残差大于δ时使用L1损失,很小时则使用更为合适的L2损失来进行优化。
Huber损失函数克服了MAE和MSE的缺点,不仅可以保持损失函数具有连续的导数,同时可以利用MSE梯度随误差减小的特性来得到更精确的最小值,也对异常值具有更好的鲁棒性。而Huber损失函数的良好表现得益于精心训练的超参数δ。

4.Log-Cosh损失函数

Log-Cosh损失函数是一种比L2更为平滑的损失函数,利用双曲余弦来计算预测误差:

Log-Cosh损失(y轴)与预测(x轴)

它的优点在于对于很小的误差来说log(cosh(x))与(x**2)/2很相近,而对于很大的误差则与abs(x)-log2很相近。这意味着log cosh损失函数可以在拥有MSE优点的同时也不会受到异常值的太多影响。它拥有Huber的所有优点,并且在每一个点都是二次可导的。二次可导在很多机器学习模型中是十分必要的,例如使用牛顿法的XGBoost优化模型(Hessian矩阵)。

5.分位数损失函数

在大多数真实世界的预测问题中,我们常常希望看到我们预测结果的不确定性。通过预测出一个取值区间而不是一个个具体的取值点,这对于具体业务流程中的决策至关重要。
分位数损失函数在我们需要预测结果的取值区间时是一个特别有用的工具。通常情况下我们利用最小二乘回归来预测取值区间主要基于这样的假设:取值残差的方差是常数。但很多时候对于线性模型是不满足的。这时候就需要分位数损失函数和分位数回归来拯救回归模型了。它对于预测的区间十分敏感,即使在非均匀分布的残差下也能保持良好的性能。下面让我们用两个例子看看分位数损失在异方差数据下的回归表现。

左:线性关系b / w X1和Y.具有恒定的残差方差。右:线性关系b / w X2和Y,但Y的方差随着X2增加。

上图是两种不同的数据分布,其中左图是残差的方差为常数的情况,而右图则是残差的方差变化的情况。我们利用正常的最小二乘对上述两种情况进行了估计,其中橙色线为建模的结果。但是我们却无法得到取值的区间范围,这时候就需要分位数损失函数来提供。

上图中上下两条虚线基于0.05和0.95的分位数损失得到的取值区间,从图中可以清晰地看到建模后预测值得取值范围。
分位数回归的目标在于估计给定预测值的条件分位数。实际上分位数回归就是平均绝对误差的一种拓展。分位数值得选择在于我们是否希望让正的或者负的误差发挥更大的价值。损失函数会基于分位数γ对过拟合和欠拟合的施加不同的惩罚。例如选取γ为0.25时意味着将要惩罚更多的过拟合而尽量保持稍小于中值的预测值。

γ的取值通常在0-1之间,图中描述了不同分位数下的损失函数情况,明显可以看到对于正负误差不平衡的状态。

分位数损失(Y轴)与预测(X轴)

转载:https://www.jianshu.com/p/5c036b636d5b

参考文章:
https://www.jianshu.com/p/b715888f079b
http://baijiahao.baidu.com/s?id=1603857666277651546&wfr=spider&for=pc
https://blog.csdn.net/weixin_37933986/article/details/68488339


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

相关文章

损失函数总结

1. 概况 损失函数一般分为&#xff1a;0-1 损失函数&#xff0c;HingeLoss&#xff0c;绝对值损失函数&#xff0c;Huber Loss, 平方损失函数&#xff0c;对数损失函数&#xff0c;指数损失。 1. 0-1损失函数(zero-one loss) 0-1损失是指预测值和目标值不相等为1&#xff0…

matlab的损失函数mse,MSELoss损失函数

MSELoss损失函数中文名字就是&#xff1a;均方损失函数&#xff0c;公式如下所示&#xff1a; 这里 loss, x, y 的维度是一样的&#xff0c;可以是向量或者矩阵&#xff0c;i 是下标。 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数。因为一般损失函数都是直…

损失函数Loss Fuction

说说代价函数的作用&#xff1f; 1.为得到训练模型的参数&#xff0c;需要一个代价函数&#xff0c;通过训练代价函数来得到参数。    2.用于找到最优解的目的函数。 说说代价函数为什么要非负&#xff1f; 因为目标函数存在下界&#xff0c;在优化过程当中&#xff0c;如果优…

常用的损失函数

来自 机器学习成长之路公众号 本文将常用的损失函数分为了两大类&#xff1a;分类和回归。然后又分别对这两类进行了细分和讲解&#xff0c;其中回归中包含了一种不太常见的损失函数&#xff1a;平均偏差误差&#xff0c;可以用来确定模型中存在正偏差还是负偏差。 从学习任务…

损失函数设计

目录 1.常见损失函数 1.1 平方损失函数 1.2 绝对值损失函数 1.3 Huber损失函数 1.4 Hinge损失函数 1.5 交叉熵损失函数 1.6 指数损失函数 2.不对称损失函数设计 3.面向容错的损失函数设计 4.评测指标不可导时的损失函数设计 5.没有“Groud Truth“的损失函数设计 6…

如何选择合适的损失函数

【AI科技大本营导读】机器学习中的所有算法都依赖于最小化或最大化某一个函数&#xff0c;我们称之为“目标函数”。最小化的这组函数被称为“损失函数”。损失函数是衡量预测模型预测期望结果表现的指标。寻找函数最小值的最常用方法是“梯度下降”。把损失函数想象成起伏的山…

常用的损失函数合集

目录 一、什么是损失函数&#xff1f; 二、为什么需要损失函数&#xff1f; 三、损失函数通常使用的位置 四、损失函数的分类 五、常用的损失函数 1、回归损失&#xff08;针对连续型变量&#xff09; 1.L1 Loss也称为Mean Absolute Error&#xff0c;即平均绝对误差&…

语义分割的损失函数

语义分割任务实际上是一种像素层面上的分类&#xff0c;需要识别图像中存在的内容和位置&#xff0c;同样也存在与分类类似问题-样本类别不平衡&#xff0c;对于语义分割更多的是前景区域的样本远小于背景区域。针对类别不平衡问题&#xff0c;在loss层面上有不同的选择。 1. …

损失函数简介

损失函数的作用&#xff1a;衡量模型预测的好坏。 简单来说就是&#xff0c;损失函数就是用来表现预测与真实数据的差距程度。 令 真实值 为Y&#xff0c;预测值为 f(x)&#xff0c;损失函数为L( Y , f(x&#xff09;&#xff09;&#xff0c;关系如下&#xff1a; 损失函数&a…

Pyotorch自定义损失函数

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;大数据专业硕士在读&#xff0c;CSDN人工智能领域博客专家&#xff0c;阿里云专家博主&#xff0c;专注大数据与人工智能知识分享&#xff0c;公众号&#xff1a;GoAI的学习小屋&#xff0c;免费分享书籍、简历、导图等资料&a…

GAN的损失函数

1.GAN 在训练过程中&#xff0c;生成器和判别器的目标是相矛盾的&#xff0c;并且这种矛盾可以体现在判别器的判断准确性上。生成器的目标是生成尽量真实的数据&#xff0c;最好能够以假乱真、让判别器判断不出来&#xff0c;因此生成器的学习目标是让判别器上的判断准确性越来…

损失函数比较

Pytorch学习之十九种损失函数 一、简介 损失函数&#xff08;Loss Function)是用来评估模型好坏程度&#xff0c;即预测值f(x)与真实值的不一致程度&#xff0c;通常表示为L(Y, f(x))的一个非负的浮点数。比如你要做一个线性回归&#xff0c;你拟合出来的曲线不会和原始的数据…

常见的损失函数

1、损失函数的意义 机器学习中的监督学习本质上是给定一系列训练样本 &#xff0c;尝试学习 的映射关系&#xff0c;使得给定一个 &#xff0c;即便这个 不在训练样本中&#xff0c;也能够得到尽量接近真实 的输出 。而损失函数&#xff08;Loss Function&#xff09;则是这个过…

损失函数

损失函数&#xff08;loss function&#xff09;是用来估量你模型的预测值f(x)与真实值Y的不一致程度&#xff0c;它是一个非负实值函数,通常使用L(Y, f(x))来表示&#xff0c;损失函数越小&#xff0c;模型的鲁棒性就越好。损失函数是经验风险函数的核心部分&#xff0c;也是结…

常见损失函数

常见损失函数 (cs231n) 文章目录 常见损失函数损失函数定义0-1损失函数(zero-one loss)绝对值损失函数(Absolute loss)log对数损失函数(Log Loss)平方损失函数(Square Loss)指数损失函数 (Exponential Loss)SVM损失函数&#xff08;Hinge Loss&#xff09;感知损失函数(percep…

【常见的损失函数总结】

文章目录 损失函数的定义神经网络的学习为何要设定损失函数&#xff1f;常见的损失函数1. 0-1损失函数(zero-one loss)2. 对数损失函数3. 平方损失函数MSE(均值平方差&#xff09;4. Hinge 损失函数5. 交叉熵损失函数 (Cross-entropy loss function) 损失函数的定义 损失函数&…

神经网络损失函数汇总

目录 一、基础知识 二、分类 &#xff08;1&#xff09;二分类交叉熵损失函数&#xff08;binary_crossentropy&#xff09; &#xff08;2&#xff09;categorical_crossentropy损失函数 &#xff08;3&#xff09;sparse_categorical_crossentropy &#xff08;4&#…

Jmeter 使用正则表达式提取器将返回值全部保存到一个文件中

目标&#xff1a;将响应数据 {"errorCode":0,"message":"success","data":null} 中的message字段的值全部保存到一个文件中。 1.正则表达式提取器 正则表达式&#xff1a;提取内容的正则表达式【()表示提取&#xff0c;对于你要提取的…

Jmeter性能测试报告模板

性能测试报告 一、测试内容 针对当当网——服务器&#xff0c;进行性能测试&#xff0c;主要针对的核心业务是&#xff1a;注册&#xff0c;登录&#xff0c;查看商品信息与提交订单等。 二、测试方法 本次采用Apache的开元测试工具jmeter&#xff0c;采用本地动态拼装请求数据…

Jmeter5.4.1测试批量上传文件(参数化)

0、下载jmeter5.4.1 jmeter5.4.1-Java文档类资源-CSDN下载 注意需要java环境哦 jdk1.8-java_sdk_jre-Java文档类资源-CSDN下载 启动命令&#xff1a; java -jar ApacheJMeter.jar 用这个启动才是中文版本&#xff0c;另外启动后&#xff0c;界面字体太小&#xff0c…