epoch、iteration、batch_size、episode
epoch
所有的训练数据都要跑一遍就是一个epoch。假设有10000个样本,这10000个样本都跑完就算一个epoch。实验中一般需要跑很多个epoch,取均值作为最后的结果,一般实验需要训练很多个epoch,取平均值作为最后的结果,从而减少偶然性,避免取到局部极值。
batch_size
批大小,如果把全部数据放入内存后再加载到显存中,空间显然不够的;如果一个一个数据加载训练并更新模型参数,效率极低。所以考虑一批一批地加载数据,每次送进去的数量就是batch_size,这样可以加快速度。假设把10000个样本,分成500批次送进去,则每次送进20个样本,batch_size=20。
iteration
一个epoch的数据=batch_size * iteration 。同样的例子假设把10000个样本,分成500批次送进去,则每次送进20个样本,则iteration=500,每经过一个iteration,参数更新一次。
episode
agent根据状态和策略做出行为,从而获得奖励,到任务结束。往往在agent训练完成后或经过一段时间训练后,进行很多次episode,检验agent执行任务的能力,可以通过评价指标、奖励值进行评估,对模型进行验证,并保存模型。(划分valid集就是典型的例子)
强化学习中用得多,以游戏举例,例如模型训练中途或迭代结束后,玩一轮游戏(例如玩一局飞机大战)看看本局游戏能得多少奖励。无论通关还是失败,都是一个episode。
|