batch_size,epoch,iteration是深度学习中的基本理论概念,其中
(1)batch_size表示批大小,深度学习中,一般采用随机梯度下降(stochastic gradient descent,SGD)训练,即每次训练在训练集中取batch_size个样本进行训练。
(2)iteration:1个iteration就等于使用batch_size个样本进行训练一次。
(3)epoch则表示训练集中的全部样本训练一次。
比如,1000个训练样本,batch_size=10,则1epoch中有100个iteration。
深度学习中,对于大型的数据集,全数据集(Full Batch learning)一次性载入所有的数据变得不可行,而另一个极端,batch_size=1,即Online learning,会存在每次修正以各自样本的梯度方向修正,难以达到收敛。
批梯度下降法(Mini-batches Learning),如果数据集足够充分,那么用一半或者更少的数据训练出来的梯度与用全部数据训练出来的梯度几乎一样。合理范围内,增大batch-size可以提高内存的利用率,且一次epoch所需迭代次数减少,还有一定范围内增大batch_size越大,其确定的下降方向越准,引起的训练震荡也会越小。
参考资料:
1.https://www.zhihu.com/question/32673260
2.http://blog.csdn.net/sinat_30071459/article/details/50721565