在回归中使用带 MSE 的梯度下降,每个 Epoch 是否必须/应该使用完全相同的训练样本?

人工智能 统计人工智能 线性回归
2021-10-20 23:43:31

假设我有一个包含 100 万条记录的训练样本集,我从中抽取 100 个批次来训练使用梯度下降和 MSE 作为损失函数的基本回归模型。假设已经从训练集中保留了测试和交叉验证样本,所以我们有 100 万个条目要训练。

考虑以下情况:

  • 运行 2 个 epoch(我猜这个可能很糟糕,因为它基本上是 2 个单独的训练集)
    • 在第一个 Epoch 训练中超过记录 1-500K
    • 在超过 500K-1M 的第二个 epoch 训练中
  • 运行 4 个 epoch
    • 在第一个和第三个 Epoch 训练中超过记录 1-500K
    • 500K-1M以上的第二和第四个epoch火车
  • 运行 X 个 epochs,但每个 epoch 都有来自训练集中的随机 250K 样本可供选择

每个时代都应该有确切的样本吗?这样做有什么好处/坏处吗?我的直觉是样本中的任何偏差都会改变您正在下降的表面的“地形”,但我不确定样本是否来自同一个群体是否重要。

这与一个 SO 问题有关:https ://stackoverflow.com/questions/39001104/in-keras-if-samples-per-epoch-is-less-than-the-end-of-the-generator-when-it

1个回答

您在回归中的目标应该是获得导致最佳拟合模型而不会过度拟合的因素。训练集中的数据越多,回归效果就越好。因此,您希望在最多的数据上进行训练,但您还希望保留一些数据来验证您的模型是否过拟合。因此,您应该将数据拆分为 80/20 的训练和验证集。如果数据稀缺,或者您希望这 20% 对模型做出贡献,那么您可以进行 5 折交叉验证。

本着研究的精神,也许你应该尝试这两种方法,并报告你的发现。