batch_size

即批大小,如果把全部数据放入内存后再加载到显存中,空间显然不够的;如果一个一个数据加载训练并更新模型参数,效率极低。所以考虑一批一批地加载数据,每次送进去的数量就是batch_size,这样可以加快速度。

用minibatch方法时会定义batch_size,即把整个数据集分几份后,每份的大小就是batch-size。假设把10000个样本,分成500批次送进去,则每次送进20个样本,batch_size=20。

iteration

即迭代,表示每个循环的一遍,一次参数更新。用minibatch时就意味着训练完一个batch。

一个epoch的数据=batch_size * iteration 。假设把10000个样本,分成500批次送进去,则每次送进20个样本,则iteration=500,每经过一个iteration,参数更新一次。

epoch

one forward pass and one backward pass of all the training examples,
in the neural network terminology.(在神经网络术语中,所有训练示例的一次前向传递和一次反向传递)

一个epoch就是跑一遍完整的训练数据。假设有10000个训练样本,这10000个样本都跑完就算一个epoch。实验中一般需要训练很多个epoch,取均值作为最后的结果,从而减少偶然性,避免取到局部极值。

即所有训练数据过一遍,如果数据有300条,把数据分成了3个batch,batch_size是300 / 3 = 100,3个batch都跑完,即跑了三个iteration,就是一个epoch。

episode

episode常用于强化学习,以游戏举例,例如模型训练中途或迭代结束后,玩一轮游戏(例如玩一局飞机大战)看看本局游戏能得多少奖励。无论通关还是失败,都是一个episode。如果玩围棋,从头下到尾的一局棋就是一个episode。

agent根据状态和策略做出行为,从而获得奖励,到任务结束。往往在agent训练完成后或经过一段时间训练后,进行很多次episode,检验agent执行任务的能力,可以通过评价指标、奖励值进行评估,对模型进行验证,并保存模型。(划分valid集就是典型的例子)