在机器学习中,epoch 和 batch 是两个重要的概念,它们用于组织数据并控制模型的训练过程。
-
Epoch:
- 一个epoch是指在训练模型时,遍历整个训练数据集一次。
- 当模型见过数据集中所有样本一次之后,就算完成了一个epoch。
- 多个epoch可以帮助模型逐渐优化权重和偏差,直到达到预设的停止条件(如验证集性能不再提升)。
-
Batch:
- 批量(batch)是将数据集划分为较小的部分,每个部分包含一定数量的样本。
- 在深度学习中,我们通常不是一次性处理整个数据集,而是将它分成一批批的数据进行计算。
- 批量大小是训练时设置的一个超参数,可以是任意正整数,比如常见的16、32、64等。
- 模型在一个batch上的前向传播和反向传播完成后,会基于梯度更新权重,然后进入下一个batch。
下面以一个简单的例子来说明epoch和batch的关系:
假设我们有一个包含1000个样本的数据集,并且批量大小设为100。那么,在第一个epoch中,模型会执行如下操作:
- 第1次迭代:处理第1到第100个样本
- 第2次迭代:处理第101到第200个样本
- ...
- 第10次迭代:处理第901到第1000个样本
一旦处理完所有样本,就完成了第一个epoch。接下来,模型可能会继续处理第二个、第三个epoch,依此类推,直到满足停止条件。