2

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

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

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

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

4

1 回答 1

2

您的问题涉及到一个非常常见的术语歧义:验证集和测试集之间的歧义(维基百科条目这个交叉验证的帖子可能有助于解决这个问题)。

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

  1. 你是对的,这一套只使用一次,就在整个建模过程结束时

  2. 一般来说,您假设我们不计算该集合中的成本 J(θ) 是不对的。

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

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

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

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

于 2017-12-17T01:09:30.917 回答