如何比较模型在不同数据输入上的训练性能?

人工智能 卷积神经网络 图像识别 训练
2021-11-12 13:52:03

所以我有一个深度学习模型和三个数据集(图像)。我的理论是,在训练深度学习模型时,其中一个数据集应该能更好地发挥作用(这意味着该模型将能够使用其中一个数据集实现更好的性能(更高的准确性)以服务于一个分类目的)

我只想在这里安全地检查我的方法。我了解训练深度学习模型的随机性以及与此类实验相关的困难。不过,我希望有人可以在这里指出一个危险信号。

我想知道这些事情:

  1. 您是否认为使用具有默认参数的优化器并重复训练过程,例如,对每个数据集进行 30 次并选择最佳性能是一种安全的方法?我在这里主要担心修改优化器的超参数可能会为假设其中一个数据集带来更好的结果。

  2. 播种权重初始化怎么样?你认为我应该播种它们然后修改超参数直到我获得最佳收敛或不播种并且仍然修改超参数吗?

我很抱歉我的问题很笼统。我希望有人能指出我正确的方向。

1个回答

好吧,这更像是一个主观问题,但我会尽力而为。

关于您的第一个问题,深度学习方法的性质表明您应该进行实验,否则您的直觉会很弱。那么你应该选择哪个数据集呢?我会说,选择你最关心的问题,因为你不能尝试一切。如果是时候,对超参数进行一些随机或网格搜索并观察数据集中的收敛速度,然后选择最好的。如果准确,最好对数据的分布等进行输入分析。如果分析得好,则有望从所选数据集中获得最佳结果。因此,每个数据集训练 30 个 epoch 并选择损失最低的一个不是一种安全的方法。也许你的模型会在第 30 个 epoch 的最差数据集的第 40 个 epoch 收敛,但它会更加健壮。我的最终建议是为您的评估指标设置一个阈值,一旦您在任何数据集中达到它们,请选择一个 - 假设数据集在实例数量上或多或少相等。通过这种方式,您至少知道您选择的数据集满足您的期望。

对于您的第二个问题,在比较期间播种是一种很好的方法,尽管从长远来看它并不重要。因此,除非你非常非常非常倒霉,否则播种是没有害处的。