数据挖掘与机器学习--损失函数
作者:互联网
损失函数是用来估量模型的预测值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连续可导,便于求导计算,是使用最广泛的损失函数之一。
标签:Loss,机器,函数,梯度,损失,MAE,数据挖掘,MSE 来源: https://blog.csdn.net/weixin_43590389/article/details/104471885