EPOCH、INTERATION、BATCH_SIZE的区别
术语 | EPOCH | BATCH_SIZE | INTERATION |
---|
定义 | 一个完整的数据集通过了神经网络一次并且返回了一次的过程 | 一次喂入神经网络的训练样本数目 | 迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。 |
中文翻译 | 时期 | 批次大小 | 迭代 |
目的 | 在神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。并且我们使用一个迭代过程即梯度下降,优化学习过程和图示。因此仅仅更新权重一次或者说使用一个 epoch 是不够的。 | batchsize 的正确选择是为了在内存效率和内存容量之间寻找最佳平衡 | \ |
影响 | 随着 epoch 数量增加,神经网络中的权重的更新次数也增加,曲线会从欠拟合变得过拟合 | 影响模型的优化程度和速度,正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfitting。增大Batch_Size,相对处理速度加快。增大Batch_Size,所需内存容量增加(epoch的次数需要增加以达到最好结果) | 每一次迭代得到的结果都会被作为下一次迭代的初始值。 |
总结 | 一个时期 = 所有训练样本的一个正向传递和一个反向传递 = 使用训练集中的全部样本训练一次 | \ | 一个迭代 = 一个正向通过+一个反向通过 = 使用batchsize个样本训练一次) |
- 例如:训练集有1000个样本,batchsize=10
- 那么:训练完整个样本集需要:100次iteration,1次epoch。