是否有经验回放大小的通用指南,以及如何存储?

数据挖掘 强化学习
2022-02-14 02:05:13

我正在尝试对尺寸(224 x 224 x 3)的彩色图像使用深度 Q 学习。我读过 DQN 的实现使用大约 50,000 的体验重播大小。如果我的计算正确,我的数据超过 56 GB(每个元组两个图像,一个图像用于 state 和 next_state,总共 100,000 个图像)。它是否正确?

如果是的话,如果没有那么多内存,我怎么能做到这一点?

1个回答

如果是的话,如果没有那么多内存,我怎么能做到这一点?

假设您在 DQN/Atari 论文中使用的“每个状态表示 4 帧”的乘数为 4,那么您的 56GB 值对我来说似乎是正确的。但是您应该注意,在原始论文中,图像在用于状态表示之前被转换为灰度并下采样到 110×84。这使它们比您的问题中的帧小 16 倍,因此整个数据集将适合 4GB。

如果您必须使用更大的图像,您可以将它们存储在磁盘上 - 可能在数据库中 - 并按需加载。不幸的是,这可能会造成 I/O 瓶颈,从而减慢学习速度,尽管您仍然应该能够使用它。您可以在学习过程中并行从数据库中获取小批量,这类似于用于 ImageNet 训练之类的小批量生成器。您还可以使用并行磁盘阵列或 SSD 等优化来提高磁盘性能。

您还可以使用来自在 ImageNet 上训练的通用计算机视觉网络的隐藏层嵌入来预处理帧,并存储该表示,而不是原始像素值。这可能会限制学习代理对重要低级特征的自我发现,但同样值得一试,因为低级图像特征在不同问题中通常非常相似,并且图像分类中的迁移学习已经使用这种方法非常成功。

RL 研究人员至少在一定范围内使用的更可能的实际答案是以下之一:

  • 在回放内存中存储更少的状态。重放的大小取决于您可用的内存。是的,这可能会影响学习,但是数字 50,000 并没有什么特别的魔力,如果您正在优化资源使用,您可能必须在 10,000 快速重放内存大小或 50,000 慢基于 I/O 的重放的系统学习效率之间做出决定内存大小。

  • 购买更多内存。从事深度强化学习的知名研究实验室资金充足,他们有能力在这个问题上投入资金。对 AlphaGo Zero 硬件成本的估计为 2500 万美元,因此您可以想象,如果他们认为在任何其他旗舰项目上出于任何原因需要加载几台具有 128GB+ RAM 的机器,这不会是主要障碍。

如果你看看 OpenAI 在视频游戏的前沿所做的事情,你会发现他们的硬件设置同样可怕。目前尚不清楚他们是否在使用不同的算法时存储经验存在问题,或者一般需要 RAM,但如果他们这样做了,很明显他们可以很高兴地为他们的训练设备上的最大 RAM 提供资金。

请注意,我自己不是 RL 研究员(只是一个爱好者),也没有问过其他人在遇到这个问题时他们会怎么做。