Select Language

AI社区

AI技术百科

平均绝对误差——L1损失函数

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

平均绝对误差和均方误差(L1&L2)比较

通常来说,利用均方差更容易求解,但平方绝对误差则对于局外点更鲁棒,下面让我们对这两种损失函数进行具体的分析。

无论哪一种机器学习模型,目标都是找到能使目标函数最小的点。在最小值处每一种损失函数都会得到最小值。但哪种是更好的指标呢?让我们用具体例子看一下,下图是均方根误差和平均绝对误差的比较(其中均方根误差的目的是与平均绝对误差在量级上统一):

左边的图中预测值与目标值很接近,误差与方差都很小,而右边的图中由于局外点的存在使得误差变得很大。

由于均方误差(MSE)在误差较大点时的损失远大于平均绝对误差(MAE),它会给局外点赋予更大的权重,模型会致力减小局外点造成的误差,从而使得模型的整体表现下降。

所以当训练数据中含有较多的局外点时,平均绝对误差(MAE)更为有效。当我们对所有观测值进行处理时,如果利用MSE进行优化则我们会得到所有观测的均值,而使用MAE则能得到所有观测的中值。与均值相比,中值对于局外点的鲁棒性更好,这就意味着平均绝对误差对于局外点有着比均方误差更好的鲁棒性。

但MAE也存在一个问题,特别是对于神经网络来说,它的梯度在极值点处会有很大的跃变,及时很小的损失值也会长生很大的误差,这不利于学习过程。为了解决这个问题,需要在解决极值点的过程中动态减小学习率。MSE在极值点却有着良好的特性,及时在固定学习率下也能收敛。MSE的梯度随着损失函数的减小而减小,这一特性使得它在最后的训练过程中能得到更精确的结果。

 

在实际训练过程中,如果局外点对于实际业务十分重要需要进行检测,MSE是更好的选择,而如果在局外点极有可能是坏点的情况下MAE则会带来更好的结果。(注:L1和L2一般情况下与MAE和MSE性质相同)

总结:L1损失对于局外点更鲁棒,但它的导数不连续使得寻找最优解的过程低效;L2损失对于局外点敏感,但在优化过程中更为稳定和准确。

但现实中还存在两种损失都很难处理的问题。例如某个任务中90%的数据都符合目标值——150,而其余的10%数据取值则在0-30之间。那么利用MAE优化的模型将会得到150的预测值而忽略的剩下的10%(倾向于中值);而对于MSE来说由于局外点会带来很大的损失,将使得模型倾向于在0-30的方向取值。这两种结果在实际的业务场景中都是我们不希望看到的。

我要发帖
回归损失函数
2021-05-14 15:53:10加入圈子
  • 5

    条内容
机器学习中的所有算法都依靠最小化或最大化函数,我们将其称为“目标函数”。被最小化的函数就被称为“损失函数”。损失函数也能衡量预测模型在预测期望结果方面的性能。找到函数的最小值点的最常用方法是“梯度下降”。如果把损失函数比作连绵起伏的山峦,那么梯度下降就好比愚公一样尽力削低山脉,让山达到最低点。
损失函数,并非只有一种。根据不同的因素,包括是否存在异常值,所选机器学习算法,梯度下降的的时效,找到预测的置信度和导数的难易度,我们可以选择不同的损失函数。本文就带领大家学习不同的损失函数,以及它们如何在数据科学和机器学习中帮助我们。