其他分享
首页 > 其他分享> > 数据挖掘与机器学习--损失函数

数据挖掘与机器学习--损失函数

作者:互联网

损失函数是用来估量模型的预测值f(x)与真实值不y一致的程度。我们的目的就是最小化损失函数,让f(x)与y尽量接近。

通常可以使用梯度下降寻找函数最小值

损失函数大致可以分成两类:回归和分类

回归类型损失函数

均方误差(Mean Square Error,MSE)

模型预测值与样本真实值之间距离平方的平均值
MSE是比较常用的一种损失函数它的曲线特点是光滑连续,可导,有利于使用梯度下降算法。而且MSE随着误差的减小,梯度也在减小,这有利于函数的收敛,不易产生震荡。

当y与f(x)的差值大于1时,MSE会增大其误差,当y与f(x)的差值小于1时,MSE会减少其误差,这是由平方的特性决定的,也就是说MSE会对误差较大的情况给予更大的惩罚,对误差较小的情况给予更小的惩罚。

平均绝对误差(MAE)

缺点:MAE的曲线呈V字型,连续但在y-f(x)=0处不可导,计算机求解导数比较困难。而且MAE大部分情况下梯度都是相等的,这意味着即使很小的损失值,其梯度也是太的,在损失较小时容易产生震荡 ,这不利于函数的收敛和模型的学习。
优点:MAE 相比MSE有个优点就是MAE对离群点不那么敏感,更有包容性,所以鲁棒性比较好。因为MAE计算的是误差y-f(x)的绝对值,无论是y-f(x)>1还是y-f(x)<1,没有平方项的作用,惩罚力度都是一样的,所占权重一样。

MSE与MAE

MSE与MAE
·从计算机求解梯度的复杂度来说,MSE要优于MAE,而且梯度也是动态变化的,能较快准确达到收敛。
·从离群点角度来看,如果离群点是重要数据,或者是应该被检测到的异常值,即我们需要关注的样本时,那么我们应该使用MSE。
·若离群点是数据损坏或者错误采样和标注错误等情况,无须给予过多关注,那么我们应该选择MAE作为损失。但这种情况下,也可以通过实际情况,对这些噪音点进行相应的过滤处理后,再结合MSE进行训练,从而达到较好的效果。

什么是震荡

MAE棱角过于分明,容易在左右两个界限见跳动(震荡),而MSE弧度缓和,差值越来越小,叫容易停在断点

Huber Loss

回归-Huber损失
·Huber Loss 是对MSE和MAE的综合
·Ω值决定了Huber Loss对MSE和MAE的侧重性,当ly-f(x)1≤Ω时,变为MSE,梯度逐渐减小,能够保证模型更精确地得到全局最优值;当ly-f(x)1>Ω时,则变成类似于MAE,梯度一直近似为Ω,能够保证模型以一个较快的速度更新参数。因此Huber Loss 同时具备了MSE和MAE的优点,减小了对离群点的敏感度问题,实现了处处可导的功能。
·通常来说,超参数Ω可以通过交叉验证选取最佳值。

·交叉熵Loss的优点是在整个实数域内,Loss近似线性变化。尤其是当ys<<0的时候,Loss更近似线性。这样,模型受异常点的干扰就较小。
而且,交叉熵Loss连续可导,便于求导计算,是使用最广泛的损失函数之一。

HighBox 发布了185 篇原创文章 · 获赞 48 · 访问量 10万+ 私信 关注

标签:Loss,机器,函数,梯度,损失,MAE,数据挖掘,MSE
来源: https://blog.csdn.net/weixin_43590389/article/details/104471885