我一直在阅读 Google 的 DeepMind Atari论文,并试图了解如何实现体验回放。
我们是否更新参数功能的对 minibatch 的所有样本执行一次,还是对 minibatch 的每个样本分别执行一次?
根据本文的以下代码,它对损失项执行梯度下降-th 样本。但是,我看到其他论文(参考这篇论文)说我们首先计算 minibatch 的所有样本的损失项总和,然后对这个损失总和执行梯度下降。
我一直在阅读 Google 的 DeepMind Atari论文,并试图了解如何实现体验回放。
我们是否更新参数功能的对 minibatch 的所有样本执行一次,还是对 minibatch 的每个样本分别执行一次?
根据本文的以下代码,它对损失项执行梯度下降-th 样本。但是,我看到其他论文(参考这篇论文)说我们首先计算 minibatch 的所有样本的损失项总和,然后对这个损失总和执行梯度下降。
梯度下降应该使用小批量中损失的总和(或平均值)来执行。
这实际上也是我在您的问题中阅读伪代码的方式,尽管我知道它可能会令人困惑。请注意,在伪代码中,没有详细说明。例如,他们没有范围从到小批量的大小。
当他们说:
随机小批量转换样本从
它们意味着小批量中的多个转换(小批量大小为是一个特例),他们使用索引统称为随机抽样小批量中的整个索引集。这不是一个特定的数字/索引,是一组索引。当更多的代码行对索引做一些事情时, 他们实际上对所有索引做了一些事情 .