训练后交叉验证数据的变化率

数据挖掘 交叉验证 训练
2022-03-10 23:59:59

假设我们有 N 个标记数据,我们需要参与其中的一部分cross validation(我们将跳过test这种情况下的一部分)。我们选择了 0.6 部分用于训练,0.4 部分用于验证。

在用 训练神经网络后early stop,我们发现了 8 个 epoch,作为最佳停止,并且收到了足够好的结果。

问:万一我们的 N 个训练样本非常有限。我们可以在新模型训练中使用所有样本,并在发现 epoch 后停止训练吗?根本没有将其分离为trainandcross validation并对其进行测试(甚至,分离的变化率,为 0.9 训练,0.1 交叉验证)。

也许有针对这种情况的已知技术?谢谢。

1个回答

由于 NN 训练的随机性,每次重新启动时,最佳时期可能会有所不同。换句话说,在 epoch 8,每个(最好的、欠拟合的、过拟合的)情况都可能发生。但是,如果您进行多次训练并且始终在第 8 个时期(或前后)找到最佳模型,则可以肯定地说第 8 个时期使最佳模型避免了欠拟合或过拟合,因此肯定可以将验证集添加到训练集以提高性能。

更可靠的方法是绘制训练规模(10% 到 90%)对最佳时期和验证错误的影响。这意味着生成两个图(训练大小,最佳时期)和(训练大小,验证错误),其中每个点是多次重启的平均值。通过这种方式,您可以更好地找到 (1) 最佳时期,以及 (2) 添加的验证集将在多大程度上提高未见测试数据的性能,即推断训练大小为 100% 的验证错误。

例如,在训练集的 70% 之后性能可能会变平,这意味着添加验证集没有任何收益。