每个时期的训练数据是否应该相同?

人工智能 神经网络 机器学习
2021-11-07 02:48:44

每个时期的训练数据是否应该相同?

例如,如果训练数据是动态生成的,那么用 1 个 epoch 训练 1000 个样本或用 1 个样本训练 1000 个 epoch 之间有区别吗?

更详细地说,如果样本不再使用,则不需要保存或留在内存中。但是,如果通过重复训练相同的样本来获得最好的训练,那么必须存储数据以便在每个 epoch 中重复使用。

更多的样本通常被认为是有利的。在训练中从未见过两次相同的样本有什么缺点吗?

2个回答

让我们快速拿出Goodfellow 等人深度学习副本。(2016 年)。更具体地说,我指的是第 276 页

在这个页面上,作者主张相对较小的 minibatch 大小,因为在增加 minibatch 大小时估计梯度的线性回报小于线性回报这里的返回是指在小批量上计算的平均值(每个重量的梯度)的标准误差的减少。

所以,是的。理论上,拥有无限资源,在对数据集中所有样本的损失进行平均时,您将获得最佳性能。然而,在实践中,小批量的大小越大,训练过程越慢,因此可以提供的权重更新总数就越少。相反,在实践中,权重更新越便宜,训练过程越快收敛到(主观上)令人满意的结果。

最终,Goodfellow 等人也是如此。声明对于大多数优化算法而言,快速计算梯度会导致更快的收敛(就总计算而言),而不是在精确梯度上更慢地训练它们。

因此,总结一下:如果主要关注的是完全达到特定的准确度水平,请选择相当低的小批量,而您可以达到数百个(正如 Goodfellow 等人所说的合理上限第 148 页)如果您对更准确的权重更新梯度感兴趣。

这将更适合作为评论,但我没有足够的积分;但这是我的意见。

像梯度下降这样的优化算法是迭代算法。所以他们很少有可能在 1 个 epoch 内达到最小值。单个 epoch 意味着所有数据点都被访问过一次,或者已经从分布中获取了一定数量的数据样本。然而,可能需要更多的通行证。

即时生成

我假设数据是作为固定分布的一部分生成的。因此,多个样本的多个时期仍然是理想的场景。

1000 个样本 1 个 epoch:训练不足。
1 个样本 1000 个 epoch:过度拟合或可能没有足够的训练。