选择具有交叉验证的模型后该怎么办?

数据挖掘 机器学习 神经网络 分类 交叉验证
2021-09-18 04:10:31

我一直在建立一个用于分类的神经网络。

选择我最好的模型。我一直在使用 10 折交叉验证。并选择给出最高平均准确度的网络。

现在我已经选择了最好的模型,我想使用我必须训练这个模型的所有数据,因为我拥有的数据量是有限的(我将合并训练、开发和测试数据)。

我的问题是,当使用所有数据进行训练时,我不知道何时停止训练。训练损失并不是一个确定的指标。通常,我有一个用于监控培训的开发集。当训练损失不再改善时,我停止训练。

关于如何监督只有训练数据的模型有什么建议吗?换句话说,如何判断网络何时需要停止?

1个回答

当“过度训练”不是问题时(因为如果你使用更多时间它不会发散),只需使用所有数据和根据经验找到的最佳超参数。在神经网络的情况下,情况并非如此(尽管根据我的经验,许多架构会收敛到特定的测试错误,并且需要很长时间才能再次发散)。我看到一些您可以尝试的选项:

  • 最明显的是保留一个(小)验证集作为提前停止的指标(不要认为这是丢弃数据,您仍然使用它来更好地训练您的网络)
  • 使用相同的权重初始化作为折叠之一并运行相同数量的时期,相同的初始化应该使收敛速度比新的随机初始化更相似
  • 保留所有交叉验证模型并在集成中使用它们,而不是重新训练完整模型