体验重放,必须将小批量返回记忆库吗?

数据挖掘 q学习
2022-03-02 03:15:30

在体验回放期间,我们从记忆库中随机收集一个小批量。然后我们使用小批量来校正我们的神经网络 q 值函数逼近器。

完成后,我们应该将小批量返回到内存库,还是应该将其丢弃?

执行前者似乎会无限期地增加内存,并且可能会导致将来对某些状态进行多次采样,如果该状态很幸运并最终出现在未来的小批量中。

1个回答

如果你把它扔掉,训练可能会在一开始就受到影响,因为那时你的数据会更少。

如果您确实将其丢弃,那么您必须了解您的拟合间隔、预期的剧集长度和批量大小,这样您丢弃数据的速度不会比生成数据的速度快。

至于内存无限增长,我使用了一个双端队列来限制它的大小。

from collections import deque
memory = deque(maxlen=10000000)