batch_size epoch iteration 三者的理解
batch_size:批数据 指的是在整体的样本中选取了一批数据作为训练集。
epoch:时期 意思是将所有整体的样本进行一次训练
lteration:迭代 意思是整体的样本中有多少个batch_size,literation就为多少次
简单的一个说法就是:数据集中有1000样本,选batch_size为100,epoch=1就收将1000样本进行一次训练。而lteration就是10(1000个样本迭代10次batch_size)
在整体的模型训练中,epoch需要取的值要大于1
- epoch取值大于1的原因?
在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。但请记住,我们使用的是有限的数据集,并且我们使用一个
迭代过程即梯度下降来优化学习过程。如下图所示。因此仅仅更新一次或者说使用一个epoch是不够的。
随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线从欠拟合变得过拟合。
那么,问题来了,几个epoch才是合适的呢?
不幸的是,这个问题并没有正确的答案。对于不同的数据集,答案是不一样的。但是数据的多样性会影响合适的epoch的数量。比如,只有黑色的猫的数据集,以及有各种颜色的猫的数据集。
图片转载,尊重版权!