作者:SAGAR SHARMA编译:ronghuaiyang
导读
今天给大家介绍几个非常基础的概念:Epoch vs Batch Size vs Iterations,这三个东西几乎在所有的机器学习程式码中都会出现。你一定有过这样的经历,当你看着屏幕,挠头思考“为什么我要在我的程式码中输入这三个术语,以及它们之间的区别是什么”,因为它们看起来如此相似。

要找出这些术语之间的区别,你需要了解一些机器学习术语,比如梯度下降,以帮助你更好地理解。
下面是关于梯度下降的一个简短总结。
梯度下降
它是一个迭代优化算法,用于机器学习中寻找最佳结果(曲线的最小值)。梯度是指向上或向下的倾斜度。
下降表示向下走。
算法是迭代的,即我们需要多次得到结果才能得到最优的结果。梯度下降的迭代性质有助于不完全拟合的图,使得这个图最好的拟合数据。

梯度下降有一个称为学习率的引数。如上图(左图)所示,最初的步数越大,表示学习速度越快,随着时间的推移,学习速度随着步数的减少而变得越小。另外,代价函式是递减的,或者说代价是递减的。有时你可能会看到人们说损失函式是递减的,或者损失是递减的,代价和损失表示相同的东西(顺便说一下,我们的损失/代价在递减是件好事)。
我们需要的术语,如epochs, batch size,iterations 只有当资料太大,基本上所有的机器学习都是这种情况,我们不能把所有的资料一次传递到计算机。因此,为了克服这个问题,我们需要把资料分成更小的尺寸,并把它一个一个地交给我们的计算机,并在每一步结束时更新神经网络的权重,使其可以拟合给定的资料。
Epochs
一个Epoch是整个资料集通过神经网络前后传递一次。由于一个Epoch太大,无法立即输入计算机,所以我们将它分成几个较小的批。
我们为什么要使用不止一个Epoch?
我知道开始的时候是没什么意义的—通过一个神经网络传递整个资料集是不够的。我们需要将整个资料集多次传递给同一个神经网络。但请记住,我们使用的是有限的资料集,并使用梯度下降优化学习和图,这是一个迭代的过程。因此,遍历一次或一个epoch来更新权重是不够的。
一个epoch导致下图中的曲线拟合不足。

随着epochs数量的增加,神经网络中权重变化次数越多,曲线由欠拟合变为最优,再变为过拟合。
那么,正确的epochs的数量是什么呢?
不幸的是,这个问题没有正确的答案。对于不同的资料集,答案是不同的,但是你可以说,epochs的数量与你的资料的多样性有关……只是一个例子—你的资料集中只有黑猫还是更多样化的资料集?
Batch Size
单个批次中出现的训练样本总数。注:Batch size和Batch size的数量是两个不同的东西。
什么是Batch?
就像我说的,你不能把整个资料集同时传递到神经网络。因此,你将dataset划分为许多的批次或者子集或者不同的部分。
就像你把一篇大文章分成多个子集/批次/子部分,如引言、梯度下降、Epoch、Batch size和Iterations ,这使得读者很容易阅读整篇文章并理解它。
Iterations
为了得到迭代数,你只需要知道乘法表或者有个计算器。
迭代是完成一个epoch所需的batches的数量。
注:batches的数量等于一个epoch中的迭代次数。
假设我们要用2000个训练样本。
我们可以将2000个样本的资料集分成500的batches,然后需要4次迭代才能完成一个epoch。
这里,Batch size是500,完成一个epoch的迭代数是4。
英文原文:https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9
更多文章,请关注微信公众号:AI公园





























