keras 为什么我们使用损失来更新模型,但使用度量来选择我们需要的模型?[关闭]

piwo6bdm  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(133)

已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。

3年前关闭。
Improve this question
首先,我很困惑为什么我们使用损失来更新模型,但使用指标来选择我们需要的模型。
也许不是所有的代码,但我看到的大多数代码都是这样,它们使用EarlyStopping来监视验证数据上的度量,以找到最佳的epoch(损失和度量是不同的)。
既然您已经选择使用损失来更新模型,为什么不使用损失来选择模型呢?毕竟,损失和指标并不完全相同。它给我的印象是,你带着这个目的去做某件事,然后你用另一个指标来评估它,这让我觉得很奇怪。以回归问题为例,当有人使用“mse”作为他们的损失时,为什么他们定义metrics=['mae']并监视它以提前停止或降低学习率,我只是不明白,我想知道这样做的好处是什么?
其次,当你的训练数据是不平衡数据,而问题是分类问题时,有些教程会告诉你使用F1或AUC作为你的指标,他们说这会改善不平衡数据带来的问题。我不知道为什么这些指标可以改善不平衡数据带来的问题。
第三,当有人向函数compile中的参数metrics发送多个度量时,我感到困惑。我不明白为什么是多个,为什么不是一个。定义多个度量标准比定义一个度量标准有什么优势?
我似乎有太多的问题,他们已经困扰了我很长一段时间。
谢谢你的亲切回答。
上面的内容是我之前编辑的。有些人认为我的问题太宽泛了,所以我想重新组织一下我的语言。
现在假设存在一个二元分类问题,并且数据不平衡。正类和负类的比例为 500:1
我选择DNN作为我的分类模型。我选择了cross entropy作为我的loss。现在的问题是我应该选择cross entropy作为我的metric,还是应该选择其他东西,为什么?
我想谈谈我从别人的答案中得到的信息,就是当问题是回归问题时,一般的度量和损失是可微的,所以其实选择相同的度量和损失,还是不同的,完全取决于你自己对问题的理解。但是如果问题是分类,我们想要的度量是不可微的,所以我们会选择不同的损失和度量,比如F1AUC,它们是不可微的。为什么我们不直接选择cross entropy作为测度呢?

g6ll5ycj

g6ll5ycj1#

对于SO来说,问题可能过于宽泛;然而,这里有几件事,希望对你有所帮助。..
既然您已经选择使用损失来更新模型,为什么不使用损失来选择模型呢?
因为,虽然损失是我们必须从 * 数学 * Angular 优化的数量,但从 * 业务 * Angular 关注的数量才是度量标准;换句话说,在一天结束时,作为模型的 * 用户 *,我们对度量感兴趣,而不是损失(至少对于这两个量默认不同的设置,例如在分类问题中)。
也就是说,选择基于 * 损失 * 的模型也是一个完全有效的策略;和往常一样,有一些subjectivity,这取决于具体的问题。
以回归问题为例,当有人用“mse”作为他们的损失时,为什么他们定义metrics=['mae']
这不是规范,也远远不是标准;通常,对于回归问题,使用损失作为度量也是非常自然的。我同意你的看法,像你提到的选择似乎不自然,而且总的来说似乎没有多大意义。请记住,因为有人在博客或其他东西中使用它并不一定使它“正确”(或一个好主意),但很难在一般情况下不考虑到可能的论点为具体情况。
我不知道为什么这些指标[F1或AUC]可以改善不平衡数据引起的问题。
它们不会“改善”任何东西-它们只是更“合适”而不是准确性,在严重不平衡的数据集中,一种天真的方法(想想99%的多数类)将简单地将所有东西分类为多数类,这将在模型没有学习任何东西的情况下给予99%的准确性。
我很困惑,当有人发送一个以上的指标到函数compile中的参数metrics。我不明白为什么是多个,为什么不是一个。定义多个度量标准比定义一个度量标准有什么优势?
再次,一般来说,没有优势,这也不是常态;但一切都取决于可能的细节。

更新(评论后):将讨论限制在分类设置上(因为在回归中,损失和度量可能是同一件事),类似的问题经常出现,我猜是因为损失和各种可用度量(准确度,精度,召回率,F1分数等)之间的细微差异没有得到很好的理解;例如,考虑一下你的问题的反面:

Optimizing for accuracy instead of loss in Keras model
以及其中的链接。引用我自己的一个链接的答案:
损失和准确是两回事;粗略地说,准确性是我们从商业Angular 实际感兴趣的,而损失是学习算法(优化器)试图从数学Angular 最小化的目标函数。甚至更粗略地说,你可以把损失看作是业务目标(准确性)到数学领域的“翻译”,这是分类问题中所必需的翻译(在回归问题中,损失和业务目标通常是相同的,或者至少在原则上是相同的,例如,损失和业务目标是相同的。例如,RMSE)。..
您可能也会发现Cost function training target versus accuracy desired goal中的讨论很有帮助。

相关问题