简单来说,损失函数是啥?

Posted

技术标签:

【中文标题】简单来说,损失函数是啥?【英文标题】:What is a loss function in simple words?简单来说,损失函数是什么? 【发布时间】:2017-08-10 05:15:52 【问题描述】:

谁能用简单的话解释一下机器学习/神经网络领域中的损失函数是什么?

这是在我学习 Tensorflow 教程时出现的: https://www.tensorflow.org/get_started/get_started

【问题讨论】:

我宁愿建议您开始阅读(基础)机器学习书籍,而不是“如何使用 tensorflow”。如果你不知道自己在做什么,Tensorflow 就无法发挥作用。 你有什么可以推荐的在线资料吗? 可能是最好的 machine learning course 关注。或者谷歌 Andrew Ng 的其他书籍,比如我们this one。 或者如果你想要更多面向深度学习的可能this one from Standford。 如果你想快速而不是太深入的介绍,看看这个 youtube 谈话(2:30 小时)youtube.com/watch?v=vq2nnJ4g6N0 【参考方案1】:

它描述了您的网络产生的结果与预期结果之间的差距——它表明了您的模型对其预测的误差幅度。

然后,您可以处理该错误并通过您的模型“反向传播”它,调整其权重并使其在下一次更接近真相。

【讨论】:

这是我一直在寻找的清晰、简单、简洁的定义!许多文章实际上忽略了这些要点,这些要点对于第一次接触 ML 的人来说很重要【参考方案2】:

损失函数是您惩罚输出的方式。

以下示例适用于受监督的设置,即当您知道正确的结果应该是时。尽管即使在无人监督的情况下也可以应用损失函数。

假设您有一个总是预测 1 的模型。只是标量值 1。

您可以将许多损失函数应用于此模型。 L2 是欧式距离。

如果我传入一些值,比如 2,并且我希望我的模型学习 x**2 函数,那么结果应该是 4(因为 2*2 = 4)。如果我们应用 L2 损失,则其计算为 ||4 - 1||^2 = 9。

我们也可以自己制作损失函数。我们可以说损失函数始终为 10。所以无论我们的模型输出什么,损失都是恒定的。

为什么我们关心损失函数?好吧,他们确定了模型在反向传播和神经网络的背景下的表现有多差。它们还确定要传播的最后一层的梯度,以便模型可以学习。

正如其他 cmets 所建议的那样,我认为您应该从基本材料开始。这是一个很好的链接,可以从http://neuralnetworksanddeeplearning.com/开始

【讨论】:

【参考方案3】:

值得注意的是,我们可以谈论不同类型的损失函数: 回归损失函数和分类损失函数。

回归损失函数描述模型预测的值与标签的实际值之间的差异。

因此,当我们在单个时间点将预测与标签进行比较时,损失函数对带标签的数据有意义。

这种损失函数通常称为误差函数或误差公式。

我们用于回归模型的典型误差函数是 L1 和 L2、Huber 损失、分位数损失、log cosh 损失。

注意:L1 损失也称为平均绝对误差。 L2 损失也称为均方误差或二次损失。

Loss functions for classification 表示分类问题(识别特定观察属于哪个类别的问题)中预测不准确所付出的代价。

仅举几例:对数损失、焦点损失、指数损失、铰链损失、相对熵损失等。

注意:虽然平方损失函数更常用于回归,但可以重写并用于分类。

【讨论】:

以上是关于简单来说,损失函数是啥?的主要内容,如果未能解决你的问题,请参考以下文章

XGBoost 中多类分类的损失函数是啥?

TensorFlow API 中的正则化损失是啥?它不与任何其他损失函数对齐

L1和L2:损失函数和正则化

深度学习的损失函数优化方法

概率矩阵分解的损失函数为多少比较正常

损失函数