以下是谷歌的DeepMind Atari 纸中使用的算法
重放内存D存储转换(old_state,动作执行,奖励,new_state)
在这种状态下,需要old_state和执行的动作a来计算这个动作的Q值。但是既然我们已经计算了动作a的Q值,为了选择a作为最佳动作,我们为什么不直接存储Q值呢?

发布于 2020-01-03 08:58:40
但是既然我们已经计算了动作a的Q值,为了选择a作为最佳动作,我们为什么不直接存储Q值呢?
这是因为计算相关的TD目标(例如,R + \gamma \text{max}_{a'}Q(S', a') )需要当前目标策略对操作值Q的估计。在执行该步骤时的操作值可能因以下两个原因而过时:
在创建体验时存储Q值在某种程度上仍然有效,前提是您不会将体验保存得太久,使其值完全不同。但是,它通常效率要低得多,因为更新会偏向较旧的、不太准确的值。
即使使用Q重新计算,经验重放表也有类似的但破坏性较小的影响。这是因为经验的分布可能与当前的政策不匹配--大多数函数逼近器(例如DQN中使用的神经网络)都对此很敏感。然而,这里也有其他因素在发挥作用,就故意不同的经验分配进行培训也是有益的--例如,以更大的更新步骤对经验进行优先排序可以加快学习速度,而保持较老的经验可以减少灾难性遗忘的情况。
请注意,如果您使用的是非策略蒙特卡罗方法,则可以将蒙特卡罗返回存储在经验回放表中,因为它不使用当前值估计来引导。然而,如果目标政策在学习过程中发生了重大变化,则旧的、不太相关的轨迹的早期部分将不再对更新作出贡献。
https://datascience.stackexchange.com/questions/65751
复制相似问题