目标函数,成本函数,损失函数:它们是同一件事吗?


Answers:


130

这些不是非常严格的术语,并且具有高度相关性。然而:

  • 损失函数通常是在数据点,预测和标签上定义的函数,用于衡量损失。例如:
    • 平方损失,用于线性回归l(f(xi|θ),yi)=(f(xi|θ)yi)2
    • 铰链损耗,在SVM使用l(f(xi|θ),yi)=max(0,1f(xi|θ)yi)
    • 0/1损失,用于理论分析和精度定义l(f(xi|θ),yi)=1f(xi|θ)yi
  • 成本函数通常更一般。它可能是训练集上的损失函数加上一些模型复杂度损失(正则化)的总和。例如:
    • 均方误差MSE(θ)=1Ni=1N(f(xi|θ)yi)2
    • SVM成本函数(存在将与和训练集连接的其他约束)SVM(θ)=θ2+Ci=1NξiξiC
  • 目标功能是您在训练期间优化的任何功能的最通用术语。例如,以最大似然法生成训练集的概率是定义明确的目标函数,但它既不是损失函数也不是成本函数(但是您可以定义等效的成本函数)。例如:
    • MLE是一种目标函数(您可以将其最大化)
    • 类之间的差异可能是一个目标函数,但它几乎不是成本函数,除非您定义一些人工的东西(例如1-Divergence)并将其命名为成本

长话短说,我会说:

损失函数成本函数的一部分,成本函数一种目标函数。


9
+1。我没有看到它的出处,但我猜想使用了“目标”一词,因为优化功能是您的目的或目标,这可能意味着最大化或缩小劣势,尽管这种区别是微不足道的,因为可以取消任何功能。相比之下,“损失”和“成本”的贬义泛滥不胜枚举:我想说,除非要尽量减少某些东西,否则使用这两个术语都是不恰当的。这些要点在您的好答案中是默认的,但应多加强调。
尼克·考克斯

1
“ MLE”中的“ M”代表“最大值”,而不是“最小值”。我只提到这个令人讨厌的细节,因为这个问题是从stackoverflow迁移而来的,之前我一直被最小化错误功能的错误所
Taylor

实际上,目标函数是您在损失函数(例如L1,L2)的约束下寻求优化(通常是通过最小化或最大化)的函数(例如,线性函数)。示例包括岭回归或SVM。您也可以优化目标函数而没有任何损失函数,例如简单的OLS或logit。
g3o2

1
@尼克·考克斯(Nick Cox)写道:“损失”和“成本”的贬义泛滥:我想说,除非要尽量减少,否则使用这两个术语都是不正确的。我不同意,为了使损失或成本最大化,找到最坏的情况(受任何约束)。这对于最坏情况的分析很有用。
马克·L·斯通

除了死记硬背以外,我很难保持“损失”和“成本”之间的区别。问题在于单词的英语定义没有给出关于哪个应该是哪个的任何线索,也没有任何明显的助记符。任何建议欢迎。
斯蒂芬

8

根据吴安德教授(见第11页的幻灯片),

函数h(X)表示您的假设。对于固定的拟合参数theta,它是特征X的函数。我想说这也可以称为目标函数。

成本函数J是拟合参数theta的函数。J = J(θ)。

根据Hastie等人的教科书“统计学习的要素”,第37页:

“我们寻求函数f(X)来预测输入X的给定Y。” 损失函数L(Y,f(X))是“惩罚预测误差的函数”,

因此,“损失函数”似乎比“成本函数”更笼统。如果您在该PDF中寻找“损失”,我认为它们在某种程度上是“成本函数”和“损失函数”的同义词。

的确,p。502

“ [聚类中的情况在某种程度上类似于预测问题(监督学习)中损失或成本函数的规范”。

可能存在这些术语是因为它们在不同的学术社区中独立发展。“目标函数”是运筹学和工程数学中使用的旧术语。统计人员可能会更多地使用“损失功能”。但是我在这里推测。


5
损失函数远比成本函数“更普遍”。f(X)特别是您的参数的函数(因此为J(theta)),使其(损失函数)成为特定类型的成本函数。此外,Hastie对此进行了简化,他假设存在附加损失函数,从而创建了特定类别的成本函数
lejlot 2015年

我只是想用学术文献的参考文献来回答这个问题,这些文献很容易理解。您关于“附加损失函数”的观点可能是正确的,但远远超出了所提问题的范围,而且我在ESL书中找不到这个特定术语
knb 2015年

3
Esl是一本很棒的书,但不是Ml知识的唯一来源。
lejlot

是吴(Ng)或您的“我会说”吗?h是模型(假设h)。目的是使h表现良好。目标函数衡量h的表现,通常不同于h。
约阿希姆·瓦格纳

esl的

4

用吴德胜的话来说:

“最后,损失函数是针对单个训练示例定义的。它衡量您在单个训练示例上的表现。我现在将定义一个称为成本函数的函数,该函数衡量您的表现如何做一个完整的训练集。因此,应用于您的参数W和B的成本函数J将是平均值,其中损失函数之和的m之一将应用于每个训练示例和转弯。”


3

摘自“深度学习”中的第4.3节-Ian Goodfellow,Yoshua Bengio,Aaron Courville http://www.deeplearningbook.org/

“我们要最小化或最大化的函数称为目标函数或准则。当我们将其最小化时,我们也可以将其称为成本函数,损失函数或误差函数。在本书中,我们可以互换使用这些术语,尽管某些机器学习出版物为其中一些术语赋予了特殊含义。”

在这本书中,至少损失和成本是相同的。


0

为了给您一个简短的答案,在我看来,它们是同义词。然而,成本函数更多地用于优化问题,而损失函数则用于参数估计。


0

术语成本和损失函数是同义词,有些人也将其称为错误函数。更一般的情况是首先定义一个目标函数,我们要对其进行优化。这个目标功能可能是

  1. 最大化后验概率(例如,朴素贝叶斯)
  2. 最大化适应度函数(遗传编程)
  3. 最大化总奖励/价值功能(强化学习)
  4. 最大化信息增益/最小化子节点杂质(CART决策树分类)5.最小化均方误差成本(或损失)函数(CART,决策树回归,线性回归,自适应线性神经元,…
  5. 最大化对数似然率或最小化交叉熵损失(或成本)功能最小化铰链损失(支持向量机)

0

实际上很简单如果您有m个训练数据,例如(x(1),y(1)),(x(2),y(2)),。。。(x(m),y(m))我们使用损失函数L(ycap,y)查找单个训练集的ycap和y之间的损失如果我们想查找整个训练集的ycap和y之间的损失成本函数。

注意:-ycap表示模型输出,y表示预期输出

注意:-归功于Andrew ng资源:Coursera神经网络和深度学习


-1

损失函数计算单个训练示例的误差,而成本函数是整个训练集的损失函数的平均值。


查看Nick Cox的链接。
Michael Chernick
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.