Epoch、Batch、Iteration
Epoch、Batch、Iteration 是常用的概念,它们分别表示模型训练的三个层次。
-
Epoch(批次):
指将整个数据集迭代一遍的过程。在一个 Epoch 中,模型会对整个数据集进行一次前向传播和反向传播,更新所有的参数。
例如:epoch = 10 指的是把整个数据集丢进神经网络训练10次.(epoch指的是次数,) -
Batch(批量):
指为了加速训练而将大规模数据划分成小批次数据的过程。每个 Batch 中包含多个样本,模型会对这些样本进行前向传播和反向传播,计算出参数的梯度并进行更新。Batch 的大小决定了每次迭代更新参数的样本数量,也对模型收敛速度和效果有一定影响。
例如:batch size = 10 指的是每次扔进神经网络训练的数据是10个.(batch size 指的是数据的个数) -
Iteration(迭代):
指模型在一个 Batch 中更新一次参数的过程。模型会将所有样本输入到神经网络中,并计算损失函数的值。然后根据损失函数的值计算参数的梯度,并使用梯度下降算法等优化算法来更新参数。在一个 Batch 中通常会进行多次迭代更新参数,直到达到一定的迭代次数或者满足停止条件为止。
例如:iteration = 10 指的是把整个数据集分成10次扔进神经网络.(iteration同样指的是次数)
故,Epoch 表示完成一次对整个数据集的训练,Batch 表示把大规模数据分成小批次进行训练,Iteration 表示每次迭代更新参数的过程。它们之间的关系是:一个 Epoch 包含多个 Batch,每个 Batch 包含多次 Iteration 更新参数。