我有一个非常基本的问题。
1( 建议何时保存部分数据进行验证,何时不需要?例如,我们什么时候可以说最好进行80%的培训、10%的验证和10%的测试,什么时候可以认为简单的80%的培训和20%的测试就足够了?
2( 此外,使用K-Cross验证是否与简单的拆分(训练测试(配合使用?
如果我有一个有限大小的数据集,我发现拥有一个训练和验证集更有价值。无论如何,验证集本质上是一个测试集。这样做的原因是,你希望你的模型能够从对它所训练的数据的高精度进行推断,对它以前从未见过的数据也有高精度。验证集允许您确定情况是否如此。我通常至少会提取10%的数据集,并将其作为验证集。重要的是,要随机选择验证数据,使其概率分布与训练集的概率分布相匹配。接下来,我监视验证损失,并以最低的验证损失保存模型。我也使用可调整的学习率。Keras有两个有用的回调,ModelCheckpoint和ReduceLROnPlateau。文档在这里。使用验证集,您可以监控训练过程中的验证损失,并确定您的模型是否训练有问题(训练准确性(以及是否正确推断(验证损失(。验证损失平均应随着模型精度的提高而减少。如果验证损失开始随着高训练精度而增加,则您的模型过于拟合,您可以采取补救措施,例如包括丢弃层、正则化子或降低模型复杂性。相关文档就在这里。要了解我为什么使用可调整的学习率,请参阅此处堆栈溢出问题的答案。