Machine learning 我们会计算*test*集合上的成本J(θ;)吗?

Machine learning 我们会计算*test*集合上的成本J(θ;)吗?,machine-learning,loss,loss-function,Machine Learning,Loss,Loss Function,我很确定答案是否定的,但我想确认一下 当训练神经网络或其他学习算法时,我们将计算代价函数J(θ),作为我们的算法与训练数据拟合程度的表达式(值越高,表示它与数据的拟合程度越低)。在训练我们的算法时,我们通常希望看到J(θ)随着梯度下降的每次迭代而下降 但我只是好奇,根据我们的测试数据计算J(θ)会有值吗 我认为答案是否定的,因为我们只对测试数据进行一次评估,我们只会得到一个J(θ)值,我认为除了与其他值比较外,它没有任何意义。你的问题涉及到一个关于术语的非常常见的歧义:验证和测试集之间的歧义(和

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

当训练神经网络或其他学习算法时,我们将计算代价函数J(θ),作为我们的算法与训练数据拟合程度的表达式(值越高,表示它与数据的拟合程度越低)。在训练我们的算法时,我们通常希望看到J(θ)随着梯度下降的每次迭代而下降

但我只是好奇,根据我们的测试数据计算J(θ)会有值吗


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

你的问题涉及到一个关于术语的非常常见的歧义:验证和测试集之间的歧义(和可能有助于解决此问题)

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

  • 您是对的,这个集合只使用一次,就在整个建模过程的末尾

  • 一般来说,假设我们不计算这个集合中的成本J(θ),是不对的

  • 详细说明(2):事实上,测试集的唯一用途就是评估我们的最终模型,在拟合过程的各个阶段根本没有使用过测试集(请注意,验证集已被间接使用,即用于模型选择);为了评估它,我们显然必须计算成本

    我认为一个可能的混淆源是,您可能只考虑分类设置(尽管您在问题中没有具体说明);没错,在这种情况下,我们通常关心的是关于业务指标(例如精度)的模型性能,而不是关于优化成本J(θ)但在回归设置中,优化成本和业务指标很可能是一回事(例如RMSE、MSE、MAE等)。而且,我希望很清楚,在这种设置中,计算测试集中的成本绝不是毫无意义的,尽管我们没有将其与其他值进行比较(它为我们的最终型号提供了“绝对”性能指标)

    您可能会发现,我的答案在区分损失和准确度方面很有用,从这些答案中引用:

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


    你说得对,我脑子里有分类设置。除了好奇,我仍然不确定在分类设置中计算测试集的成本值是多少。但你说得对,在回归设置中,成本可能与业务目标相等。我很好奇你认为在t上会做什么验证集。你可以使用成本作为选择模型的衡量标准,但如果业务目标不同(例如准确性),你也可以使用它们。@Stephen在分类1中)通常你不会关心测试成本,正如我在回答2中已经暗示的那样2)对于使用验证集的模型选择,通常您会使用业务指标,而不是成本。一般来说,如果您将讨论限制在仅分类设置中,那么您在帖子中表达的直觉是正确的。进一步思考:我猜在验证集上计算成本的一个重要原因是:t(甚至是测试集)的意思是,有一个通用的度量标准来比较这些数据集上的性能可能会很有帮助,因为这可以让你感觉到你可能过度拟合了多少。@Stephen不适合测试集,因为这需要对它进行重复评估(您可以通过损失曲线的偏差来诊断过度拟合,而不是通过比较值)。对于验证集,您可以,但也可以出于相同目的使用业务度量