回归损失函数2 : HUber loss,Log Cosh Loss,以及 Quantile Loss
均方误差(Mean Square Error,MSE)和平均绝对误差(Mean Absolute Error,MAE) 是回归中最常用的两个损失函数,但是其各有优缺点。为了避免MAE和MSE各自的优缺点,在Faster R-CNN和SSD中使用SmoothL1SmoothL1损失函数,当误差在[−1,1][−1,1] 之间时,SmoothL1SmoothL1损失函数近似于MSE,能够快速的收敛;在其他的区间则近似于MAE,其导数为±1±1,不会对离群值敏感。
本文再介绍几种回归常用的损失函数
- Huber Loss
- Log-Cosh Loss
- Quantile Loss
Huber Loss
Huber损失函数(SmoothL1SmoothL1损失函数是其的一个特例)整合了MAE和MSE各自的优点,并避免其缺点
Lδ(y,f(x))={12(y−f(x))2δ∣y−f(x)∣−12δ2∣y−f(x)∣≤δotherwiseLδ(y,f(x))={12(y−f(x))2∣y−f(x)∣≤δδ∣y−f(x)∣−12δ2otherwise
δδ 是Huber的一个超参数,当真实值和预测值的差值∣y−f(x)∣≤δ∣y−f(x)∣≤δ 时,Huber就是MSE;当差值在(−∞,δ)(−∞,δ)或者 (δ,+∞)(δ,+∞) 时,Huber就是MAE。这样,当误差较大时,使用MAE对离群点不那么敏感;在误差较小时使用MSE,能够快速的收敛;
这里超参数δδ的值的设定就较为重要,和真实值的差值超过该值的样本为异常值。误差的绝对值小于δδ 时,使用MSE;当误差大于δδ 时,使用MAE。
下图给出了不同的δδ 值,Huber的函数曲线。
横轴表示真实值和预测值的差值,纵轴为Huber的函数值。可以看出,δδ 越小其曲线越趋近于MSE;越大,越趋近于MAE。
另外,使用MAE训练神经网络最大的一个问题就是不变的大梯度,这可能导致在使用梯度下降快要结束时,错过了最小点。而对于MSE,梯度会随着损失的减小而减小,使结果更加精确。
在这种情况下,Huber损失就非常有用。它会由于梯度的减小而落在最小值附近。比起MSE,它对异常点更加鲁棒。因此,Huber损失结合了MSE和MAE的优点。但是,Huber损失的问题是我们可能需要不断调整超参数δδ 。
Smooth L1Smooth L1 损失函数可以看作超参数δ=1δ=1 的Huber函数。
Log-Cosh Loss
Log-Cosh是比L2L2 更光滑的损失函数,是误差值的双曲余弦的对数
L(y,f(x))=∑i=1nlogcosh(y−f(x))L(y,f(x))=∑i=1nlogcosh(y−f(x))
其中,yy为真实值,f(x)f(x) 为预测值。
对于较小的误差∣y−f(x)∣∣y−f(x)∣ ,其近似于MSE,收敛下降较快;对于较大的误差∣y−f(x)∣∣y−f(x)∣ 其近似等于∣y−f(x)∣−log(2)∣y−f(x)∣−log(2) ,类似于MAE,不会受到离群点的影响。 Log-Cosh具有Huber 损失的所有有点,且不需要设定超参数。
相比于Huber,Log-Cosh求导比较复杂,计算量较大,在深度学习中使用不多。不过,Log-Cosh处处二阶可微,这在一些机器学习模型中,还是很有用的。例如XGBoost,就是采用牛顿法来寻找最优点。而牛顿法就需要求解二阶导数(Hessian)。因此对于诸如XGBoost这类机器学习框架,损失函数的二阶可微是很有必要的。但Log-cosh损失也并非完美,其仍存在某些问题。比如误差很大的话,一阶梯度和Hessian会变成定值,这就导致XGBoost出现缺少分裂点的情况。
Quantile Loss 分位数损失
通常的回归算法是拟合训练数据的期望或者中位数,而使用分位数损失函数可以通过给定不同的分位点,拟合训练数据的不同分位数。 如下图
设置不同的分位数可以拟合出不同的直线。
分位数损失函数如下:
Lquantile=1N∑i=1N⨿y>f(x)(1−γ)∣y−f(x)∣+⨿y<f(x)γ∣y−f(x)∣Lquantile=1N∑i=1N⨿y>f(x)(1−γ)∣y−f(x)∣+⨿y<f(x)γ∣y−f(x)∣
该函数是一个分段函数,γγ 为分位数系数,yy为真实值,f(x)f(x)为预测值。根据预测值和真实值的大小,分两种情况来开考虑。y>f(x)y>f(x) 为高估,预测值比真实值大;y<f(x)y<f(x)为低估,预测值比真实值小,使用不同过得系数来控制高估和低估在整个损失值的权重 。
特别的,当γ=0.5γ=0.5 时,分位数损失退化为平均绝对误差MAE,也可以将MAE看成是分位数损失的一个特例 - 中位数损失。下图是取不同的中位点[0.25,0.5,0.7][0.25,0.5,0.7]得到不同的分位数损失函数的曲线,也可以看出0.5时就是MAE。
总结
均方误差(Mean Square Error,MSE)和平均绝对误差(Mean Absolute Error,MAE) 可以说是回归损失函数的基础。但是MSE对对离群点(异常值)较敏感,MAE在梯度下降的过程中收敛较慢,就出现各种样的分段损失函数,在loss值较小的区间使用MSE,loss值较大的区间使用MAE。
- Huber Loss ,需要一个超参数δδ ,来定义离群值。smooth L1smooth L1 是δ=1δ=1 的一种情况。
- Log-Cosh Loss, Log-Cosh是比L2L2 更光滑的损失函数,是误差值的双曲余弦的对数.
- Quantile Loss , 分位数损失,则可以设置不同的分位点,控制高估和低估在loss中占的比重。
回归损失函数2 : HUber loss,Log Cosh Loss,以及 Quantile Loss相关推荐
- 回归损失函数:Huber Loss
Huber损失函数,平滑平均绝对误差 相比平方误差损失,Huber损失对于数据中异常值的敏感性要差一些.在值为0时,它也是可微分的.它基本上是绝对值,在误差很小时会变为平方值.误差使其平方值的大小如何 ...
- 机器学习初学者都应该知道的5类回归损失函数
来源: https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine-learners-should-know-4fb140e9 ...
- Sklearn 损失函数如何应用到_机器学习大牛最常用的5个回归损失函数,你知道几个?...
"损失函数"是机器学习优化中至关重要的一部分.L1.L2损失函数相信大多数人都早已不陌生.那你了解Huber损失.Log-Cosh损失.以及常用于计算预测区间的分位数损失么?这些可 ...
- 分位数回归损失函数代码实现解析
目录 1. 绪论 2. 分位数回归 3. 分位数回归损失函数 4. (γ−1)(\gamma - 1)(γ−1)的放入 5. 程序代码表达 1. 绪论 对于分位数回归损失函数,最近看到了两种不同的实现 ...
- 回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss
回归损失函数:L1,L2,Huber,Log-Cosh,Quantile Loss 机器学习中所有的算法都需要最大化或最小化一个函数,这个函数被称为"目标函数".其中,我们一般把最 ...
- 回归损失函数:Log-Cosh Loss
Log-Cosh损失函数 Log-Cosh是应用于回归任务中的另一种损失函数,它比L2损失更平滑.Log-cosh是预测误差的双曲余弦的对数. 优点: 对于较小的X值,log(cosh(x))约等于( ...
- 目标检测回归损失函数简介:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:极市平台 目标检测任务的损失函数由Classificitio ...
- 【回归损失函数】L1(MAE)、L2(MSE)、Smooth L1 Loss详解
1. L1 Loss(Mean Absolute Error,MAE) 平均绝对误差(MAE)是一种用于回归模型的损失函数.MAE 是目标变量和预测变量之间绝对差值之和,因此它衡量的是一组预测值中的平 ...
- 目标检测回归损失函数:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
文章目录 1. Smooth L1 Loss 1.1 假设x为预测框和真实框之间的数值差异,常用的L1和L2 Loss定义为: 1.2 上述的3个损失函数对x的导数分别为: 1.3 实际目标检测框回归 ...
最新文章
- vm安装u盘linux,vmware 安装centos 插入u盘报错,大神请指导
- 为何要把你的SAP运行在Oracle数据库上?
- nginx 配置404错误页面
- linux make编译卡死,为linux内核编译make文件时出现问题?
- 【ARM】Tiny4412裸板编程之异常(软中断)
- enkey java_近期的Java项目(前端)
- .NET 4.0新增命名空间:System.Collections.Concurrent
- 原版英文书籍《Linux命令行》阅读记录3 | 解析文件的描述含义和阅读文件
- Linux下端口占用解决方法
- java实例摘要(四)
- ORACLE数据库异步IO介绍
- 2018,扬帆起航!
- 数据挖掘入门到精通—R语言视频教程
- oracle数据库的sql语句练习1
- XML/HTML/CSS/JS之间的区别和联系
- 聚类分析的基本概念和方法
- 《如何搭建小微企业风控模型》第三节 风控模型概览
- 教你如何优秀的选择付费代理ip的提供商
- Android第三方开发包值高德地图SDK使用介绍
- Halcon模版匹配