(1)iteration:表示1次迭代(也叫training step),[batch size]个训练数据forward+backward后更新参数过程;
(2)batch-size:1次迭代所使用的样本量;
(3)epoch:1个epoch表示过了1遍训练集中的所有样本。
epoch > 1? 一句简单概括,就是为了把数据中的特征进行充分学习。 那么,为什么进行一次学习学不好?其实,主要原因不是一次学不好,而是学不到那么好,学习容易快速的陷入局部最优,这样的学习容易受到初始参数,喂入数据自身特点等因素影响。为了防止快速陷入局部最优,大家最常用的方法就是使用较小的学习速率,也就是降低learning rate。learning rate小了,为了将数据学充分,自然就要增加学习次数。也就是增加epoch。
值得注意的是,在深度学习领域中,常用带mini-batch的随机梯度下降算法(Stochastic Gradient Descent, SGD)训练深层结构,它有一个好处就是并不需要遍历全部的样本,当数据量非常大时十分有效。此时,可根据实际问题来定义epoch,例如定义10000次迭代为1个epoch,若每次迭代的batch-size设为256,那么1个epoch相当于过了2560000个训练样本。
参考链接:https://www.zhihu.com/question/43673341/answer/257382587