1、迭代
理解迭代,只需要知道乘法表或者一个计算器就可以了。迭代是 batch 需要完成一个 epoch 的次数。记住:在一个 epoch 中,batch 数和迭代数是相等的。
比如对于一个有 2000 个训练样本的数据集。将 2000 个样本分成大小为 500 的 batch,那么完成一个 epoch 需要 4 个 iteration。
2、批量
批量,即Batch,是深度学习中的一个重要概念。批量通常是指两个不同的概念——如果对应的是模型训练方法,那么批量指的是将所有数据处理完以后一次性更新权重或者参数的估计,如果对应的是模型训练中的数据,那么对应的是一次输入供模型计算用的数据量。这两个概念有着紧密的关系。
基于批量概念的模型训练通常按照如下步骤:
- (1) 初始化参数
- (2) 重复以下步骤:处理所有数据 ,更新参数
和批量算法相对应的是递增算法,其步骤如下:
- (1) 初始化参数
- (2) 重复以下步骤:处理一个或者一组数据点,更新参数
我们看到,这里的主要区别是批量算法一次处理所有的数据;而在递增算法中,每处理一个或者数个观测值就要更新一次参数。这里“处理”和“更新”二词根据算法的不同有不同的含义。在后向传播算法中,“处理”对应的具体操作就是在计算损失函数的梯度变化曲线。如果是批量算法,则计算平均或者总的损失函数的梯度变化曲线;而如果是递增算法,则计算损失函数仅在对应于该观测值或者数个观测值时的梯度变化曲线。“更新”则是从已有的参数值中减去梯度变化率和学习速