机器学习常用损失函数汇总

常用分类,回归损失函数汇总:

一、均方误差:

二、平均绝对误差(L1)

MSE与MAE误差比较:

若误差率E>1,由图可知,MSE会进一步增大误差,如果数据种存在异常点,会使得(E)^2变得非常大。

如果最小化MSE,对所有样本的样本点只给出一个预测值,那么最小化MSE一定是所有样本的均值,可由公式推理;

但是如果最小化MAE,则是所有样本点的中位数;中位数对异常值较为鲁棒,不敏感;

MAE存在一个严重问题,在神经网络中梯度更新始终相同,即使很小的损失值,梯度也是相同,不利于机器学习,解决此问题的方法可以使用变化的学习率,在损失较小的时候使用较小的学习率。

但MSE在这种情况下表现良好,固定学习率也可以有效收敛到最小损失,MSE的梯度随着损失变小,梯度也随之减小,损失越大梯度越大,如图所示,MAE就只能保持相同梯度:

L1损失在处理异常点时比较稳定,但是导数不连续,因此求解效率低;基于两种损失函数的缺点情况下,例如,数据中90%样本的目标值为150,剩下的10%为0-30之间,思考一下公式,使用MAE会导致忽略10%的异常点,因为MAE最小化为样本中位数为为预测值,所以会导致所有样本的预测值都为150,然而使用MSE则会给出更多的0-30之间的预测值,都会因为异常点偏移,这种情况下,出现了第三种损失函数Huber损失。

三、Huber损失(平滑的平均绝对误差)

Huber损失的本质为绝对误差,在误差很小的时候变为均方误差,误差降低到多小时转化为均方误差需要设置参数δ,

当Huber损失在[0-δ,0+δ]之间时,等价为MSE,而在[-∞,δ]和[δ,+∞]时为MAE。

Huber解决了L1和L2的缺点,但也有了超参数δ需要不断调整的问题。

四、log-Cosh损失函数

双曲余弦对数损失,在x较小的时候,近似于(X^2)/2,较大时近似于abs(x)-log(2),意味着基本类似于均方误差,但是不易受到异常值的影响,它有Huber的所有优点,不同的是log-cosh处处可微。

为什么处处可微有好处,因为许多机器学习模型如XGB使用牛顿法寻找最优点,而牛顿法就需要求解二阶导数(Hessian矩阵),因此对于此类机器学习框架损失函数二阶可微分非常有必要。

Log-cosh损失的缺点是,误差很大的时候,一阶梯度和Hessian矩阵会变为定值,同时XGB会出现缺少分裂点的情况。

五、分位数损失Quantile 

当我们关注的预测值区间性的时候,也就是预测值的区间会获得不同大小的损失,分位数损失就会很有用,如何选取合适的分位值取决于我们对正误差和反误差的重视程度。损失函数通过分位值(γ)对高估和低估给予不同的惩罚。例如,当分位数损失函数γ=0.25时,对高估的惩罚更大,使得预测值略低于中值。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值