batch是什么意思,与epoch、batch size、step的区别与联系

本文介绍在机器学习、深度学习的神经网络模型中, epoch batch batch size step iteration 等名词的具体含义。

epoch :表示将训练数据集中的所有样本 都过一遍 (且 仅过一遍 )的训练过程。在一个 epoch 中,训练算**按照设定的顺序将所有样本输入模型进行前向传播、计算损失、反向传播和参数更新。一个 epoch 通常包含多个 step

batch :一般翻译为“ 批次 ”,表示 一次性输入模型 一组样本 。在神经网络的训练过程中,训练数据往往是很多的,比如几万条甚至几十万条——如果我们一次性将这上万条的数据全部放入模型,对计算机性能、神经网络模型学习能力等的要求太高了;那么就可以将训练数据划分为多个 batch ,并随后分批将每个 batch 的样本一起输入到模型中进行前向传播、损失计算、反向传播和参数更新。但要注意,一般 batch 这个词用的不多,多数情况大家都是只关注 batch size 的。

batch size :一般翻译为“ 批次大小 ”,表示训练过程中 一次输入模型 的一组样本的 具体样本数量 。前面提到了,我们在神经网络训练过程中,往往需要将训练数据划分为多个 batch ;而具体每一个 batch 有多少个样本,那么就是 batch size 指定的了。

step :一般翻译为“ 步骤 ”,表示在一个 epoch 中模型进行一次 参数更新 的操作。通俗地说,在神经网络训练过程中,每次完成对一个 batch 数据的训练,就是完成了一个 step 。很多情况下, step iteration 表示的是同样的含义。

:一般翻译为“迭代”,多数情况下就表示在训练过程中经过一个 step 的操作。一个 包括了一个 step 中前向传播、损失计算、反向传播和参数更新的流程。当然,在某些情况下, step 可能会有细微的区别——有时候 是指完成一次前向传播和反向传播的过程,而 step 是指通过优化算法对模型参数进行一次更新的操作。但是绝大多数情况下,我们就认为二者是一样的即可。

以上是对这些名词的解释,我们将他们带入实际的例子就更好理解了。

batch是什么意思,与epoch、batch size、step的区别与联系

假设我们现在有一个 训练数据集 (这个数据集不包括测试集),其中数据的样本数量为 1500 。那么,我们将这 1500 条数据全部训练 1 次,就是一个 epoch 。其中,由于数据量较大(其实 1500 个样本在神经网络研究中肯定不算大,但是我们这里只是一个例子,大家理解即可),因此我们希望将其分为多个 batch ,分批加以训练;我们决定每 1 批训练 100 条数据,那么为了将这些数据全部训练完,就需要训练 15 批——在这里, batch size 就是 100 ,而 batch 就是 15 。而前面我们提到,每次完成对一个 batch 数据的训练,就是完成了一个 step ,那么 step 就也都是 15

以上是我们对这一数据集加以 1 次训练( 1 epoch )的情况,而一般情况下我们肯定是需要训练多次的,也就是多个 epoch 。我们假设我们需要训练 3 epoch ,相当于需要将这 1500 个样本训练 3 次。那么, step 都会随着 epoch 的改变而发生改变——二者都变为 45 ,因为 15 * 3 。但是, batch 依然是 15 ,因为其是在每一个 epoch 的视角内来看待的,和 epoch 的具体大小没有关系。

至此,大功告成。

欢迎关注:疯狂学习GIS

batch是什么意思,与epoch、batch size、step的区别与联系
声明:本站所有作品(图文、音视频)均由用户自行上传分享,本文由"最宝贝的李福乐"自行发布,本站仅供存储和学习交流。若您的权利被侵害,请联系我们删除。如若转载,请注明出处:https://www.flipbrief.com/zh-my/fresh/8gefn07v.html