参考文章为 神经网络中Batch和Epoch之间的区别是什么?

Sample

Sample是单个数据。即有意义的数据的最小单位。

训练数据集由许多Sample组成。

batch

batch是一个人为设定的超参数。

batch的意思是“批”,即把一定数目的Sample组合到一起,组成一个batch。
batch_size表示一个batch中Sample的个数

简单来说,一个batch就是一定数目的Sample的集合

另外,batch的大小与梯度下降的种类有关:

  • 批量梯度下降 —> batch_size=训练集的大小(整个训练集作为一个batch)
  • 随机梯度下降 —> batch_size= 1(每个batch中只有一个Sample)
  • 小批量梯度下降 —> 1 <batch_size<训练集的大小(每个batch中Sample的个数大于1且小于训练集Sample的总数)

epoch

epoch是一个人为设定的超参数。

epoch定义了学习算法在整个训练数据集中的工作次数。
一个epoch表示,训练集中的每个Sample都有机会更新内部模型参数。
epoch由一个或多个batch组成(由batch中包含的Sample的量决定)。例如,只有一个batch的epoch,称为批量梯度下降学习算法。

epoch 数量一般很大,通常是数百或数千,允许学习算法运行到模型的误差被充分地最小化。
文献和教程可能会设置为10,100,500,1000和更大数。

小结

Sample和batch和epoch的关系大致如图。
在这里插入图片描述

示例

假设有一个包含 200 个样本(Sample)的训练数据集,并且选择的batch量大小为 5 和 1000 个epoch。

这意味着训练数据集将分为 40 个batch,每个batch有 5 个样本。
每批 5 个样品后,模型权重将更新。

这也意味着一个epoch将涉及 40 个batch或 40 个模型更新。

有 1000 个epoch,模型将暴露(或传递)整个训练数据集 1000 次。在整个培训过程中,总共有 40000 batch。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐