我们会在* test *集上计算成本J(θ)吗?

问题描述 投票:2回答:1

我很确定答案是否定的,但我想确认......

当训练神经网络或其他学习算法时,我们将计算成本函数J(θ)作为我们的算法与训练数据的匹配程度的表达式(较高的值意味着它不太适合数据)。在训练我们的算法时,我们通常希望看到J(theta)随着梯度下降的每次迭代而下降。

但我只是好奇,对我们的测试数据计算J(θ)会不会有价值?

我认为答案是否定的,因为我们只评估一次测试数据,我们只得到一个J(θ)值,我认为除非与其他值比较,否则它没有意义。

machine-learning loss loss-function
1个回答
2
投票

你的问题触及了关于术语的一个非常常见的含糊之处:验证和测试集之间的问题(Wikipedia entrythis Cross Vaidated post可能有助于解决这个问题)。

因此,假设您确实引用了适当的测试集而不是验证集,那么:

  1. 你是对的,因为这个集只使用一次,就在整个建模过程的最后
  2. 一般而言,假设我们不计算此集合中的成本J(θ),您是不对的。

阐述(2):实际上,测试集的唯一用处正是用于评估我们的最终模型,在一个在拟合过程的各个阶段根本没有使用的集合中(注意验证集已经间接使用,即用于模型选择);为了评估它,我们显然必须计算成本。

我认为可能的混淆源是你可能只考虑分类设置(尽管你没有在你的问题中指明这一点);确实,在这种情况下,我们通常对关于商业度量(例如准确度)的模型性能感兴趣,而不关心优化成本J(θ)本身。但在回归设置中,很可能是优化成本和商业度量是同一件事(例如RMSE,MSE,MAE等)。并且,正如我希望的那样,在这样的设置中,计算测试集中的成本绝不是毫无意义的,尽管我们不将其与其他值进行比较(它为我们的最终模型提供了“绝对”性能指标)。

您可能会发现我的thisthis答案对于损失和准确性之间的区别很有用;引用这些答案:

损失和准确性是不同的东西;粗略地说,准确性是我们从业务角度实际感兴趣的,而损失是学习算法(优化器)试图从数学角度最小化的目标函数。更粗略地说,您可以将损失视为商业目标(准确性)与数学领域的“翻译”,这是分类问题中必不可少的翻译(在回归问题中,通常是损失和业务目标是相同,或者至少原则上可以是相同的,例如RMSE)......

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.