使用开发集或火车集

时间:2017-08-27 20:24:55

标签: machine-learning deep-learning

有人可以澄清我的怀疑。

在评估模型时,我们应该尝试一个较小的集合。开发集是一个小集。所以我们在开发设备上尝试一些事情并得出结论,然后去火车站训练它并检查。

OR

我们训练训练集并在开发集上评估模型。将dev设为基准。

2 个答案:

答案 0 :(得分:1)

通常你会有三个集:

  • train - 用于进行实际训练,优化
  • 的训练
  • 验证 - 用于评估/验证培训,做出关于超参数,早期停止等的决策
  • test - 用作最终基准测试的

由于各种原因,设置中可能缺少上述某些内容,但这是标准方法,每次修改都需要有充分的理由。

数据集通常不指定“验证”,因为超参数等的拟合被认为是训练的一部分,因此用于此的每个数据点事实上都用于训练您的模型(因此“火车”数据集的一部分)。在实践中,这意味着您必须将火车组自行拆分为“正确的列车”和“验证”(如果使用的方法需要安装一些额外的超参数)。

答案 1 :(得分:0)

您的第一种情况是正确的。

由于训练深度神经网络可能要花费大量时间,因此并不是一个好方法,首先创建最终模型,然后(最后)进行努力,以评估它是否运行良好!!!但是有什么解决方案? dev set(也称为验证集)在此处显示。最好在训练模型的同时评估我们的模型。

为此,我们将数据集分为train datadev set。现在,我们可以根据每个时期的“准确性”和“损失”来计算关于模型辅助的两个额外特征:dev_accuracydev_loss,这有助于找出模型问题。例如,如果accuracy表示相对于我们的训练数据而言较高的百分比(例如0.92),但是dev_accuracy等于0.3,则显然意味着我们的模型问题过度拟合! (为什么?)因为它在我们的火车数据上运行得很好,但是无法对我们模型中的一些新数据(尚未传递到模型中)进行良好的预测。