简单来说,损失函数是啥?
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 表示分类问题(识别特定观察属于哪个类别的问题)中预测不准确所付出的代价。
仅举几例:对数损失、焦点损失、指数损失、铰链损失、相对熵损失等。
注意:虽然平方损失函数更常用于回归,但可以重写并用于分类。
【讨论】:
以上是关于简单来说,损失函数是啥?的主要内容,如果未能解决你的问题,请参考以下文章