了解损失函数

142 阅读3分钟

介绍

在机器学习领域,术语“损失函数”是指衡量模型预测输出与数据实际输出之间差异的数学函数。

损失函数在机器学习模型的训练过程中起着至关重要的作用,因为它提供了一种评估模型性能和调整其参数的方法。

ELI5 解释

嗯,这不是超级不言自明的。因此,让我们分解一下。

当我们训练机器学习模型时,我们给它一组数据并要求它从中学习。然后,我们测试该模型,看看它在以前从未见过的新数据上的表现如何。损失函数用于通过将模型的预测与正确答案进行比较来衡量模型的表现。

可以把它想象成机器学习模型试图预测结果的游戏,损失函数根据预测与实际结果的接近程度给出分数。分数越低,模型表现越好

为什么使用损失函数?

任何机器学习模型的目标都是最小化其预测输出与数据实际输出之间的差异。损失函数提供了一种衡量这种差异并向模型提供反馈的方法。

在训练过程中,更新模型的参数以最小化损失函数的值。这种更新参数的过程称为优化。优化过程一直持续到模型达到损失函数的最小值,这表明模型正在对数据进行准确的预测。

最常见的损失函数

根据问题领域和正在训练的模型类型,可以使用许多不同类型的损失函数。一些最常用的损失函数包括:

均方误差 (MSE) /L2 损失

image.png

**MSE 损失图**

这是用于回归问题的流行损失函数。它测量预测输出和实际输出之间的平均平方差。

image.png

MSE 损失公式 

平均绝对误差 (MAE) /L1 损失

image.png

MAE公式

我们将 MAE 损失函数定义为实际值和预测值之间绝对差值的平均值。它是第二个最常用的回归损失函数。它测量一组预测中的平均误差幅度,而不考虑它们的方向。

image.png

MAE 图

HUBER 损失/平滑平均绝对误差

image.png

Huber 损失公式

Huber 损失函数被定义为 MSE 和 MAE 损失函数的组合,因为它在 x ~ 0 时接近 MSE,在 x ~ ∞ 时接近 MAE(大数)

它对异常值的敏感度低于均方误差。它结合了线性和二次损失函数,具体取决于误差的大小。

image.png

Huber 损失图

分位数损失

image.png

分位数损失公式

分位数损失是回归问题中使用的一种损失函数,它使用分位数的概念来衡量预测输出和实际输出之间的差异。分位数损失函数在处理偏斜数据集或需要关注输出分布中特定范围的值时特别有用。

分位数损失函数以不同的方式惩罚对实际值的低估和高估,具体取决于所使用的分位数。

image.png

分位数损失图

了解损失函数和成本函数之间的区别

术语损失函数和成本函数可以互换使用。但是,两者之间存在细微差别。损失函数用于衡量训练过程中预测输出与实际输出的差异。

另一方面,成本函数用于衡量模型的总体成本,其中包括损失函数以及任何正则化项。

image.png

损失函数与成本函数

结论

总之,损失函数在机器学习中起着至关重要的作用,因为它们提供了一种方法来衡量数据的预测输出与实际输出之间的差异。

通过最小化损失函数的值,调整模型的参数以提高其准确性。了解不同类型的损失函数以及何时使用它们对于构建准确可靠的机器学习模型至关重要。