我的批量大小为 128,总数据大小约为 1000 万,我在 4 个不同的标签值之间进行分类。
如果每个批次只包含一个标签的数据,会有多大的问题?
例如 - 批次 0 都有第三个标签。第 1 批都有第 1 批。第 2 批第 2 批。等等。
我的批量大小为 128,总数据大小约为 1000 万,我在 4 个不同的标签值之间进行分类。
如果每个批次只包含一个标签的数据,会有多大的问题?
例如 - 批次 0 都有第三个标签。第 1 批都有第 1 批。第 2 批第 2 批。等等。
如果您对收敛感兴趣,那么很可能它不应该收敛。我使用“应该”是因为虽然我们对收敛的工作原理有直觉,但没有人能 200% 确定一切。
让我们了解整个学习过程的几个方面。
-每个数据点都有一个不同的损失空间
- 整体损失空间将是所有单个损失表面的平均值
- 我们可以有把握地假设,一个类中数据点的整体损失空间将彼此更接近,但在以下情况下非常不同与其他班级相比。
- 最后,梯度在批次结束时计算
当我们有很好的洗牌批次时——
在这种情况下,每个批次之后的梯度将指向整体梯度,因为梯度将被平均。这意味着每批次都能平稳减少损失
当我们每批都有一个类时-
在这种情况下,每个备用批次将在两个不同的损失空间(每个类之一)上移动。
问题是我们将计算一个空间的损失,但是在批次结束时更新权重后,下一批将继续在自己的空间中,但使用前一批的权重。这将使学习变得非常不可预测。
此外,优化器中应用的许多逻辑也无济于事,因为梯度会随每个批次随机变化。
我在 MNIST 数字上尝试了这个(仅使用 0,1 数字)并得到了这个 Loss per Batch。我在 LR 优化、LR 衰减等方面没有付出足够的努力。所以,不能得出结论总是相似的。

如果每批只有一个标签,模型就不会学得很好。每次更新都会尽量减少仅针对单个标签的错误。最终,模型不会同时为所有标签找到一组权重。
如果单个批次恰好随机只有一个标签,它不会对训练产生太大影响,因为其他批次将表示所有标签。