keras-rl 的 EpisodeParameterMemory 是做什么的?

Mar*_*oma 1 reinforcement-learning keras-rl

我找到了keras-rl/examples/cem_cartpole.py示例,我想了解,但没有找到文档。

线有什么作用

memory = EpisodeParameterMemory(limit=1000, window_length=1)
Run Code Online (Sandbox Code Playgroud)

做?什么是limit和 什么是window_length?增加其中一个/两个参数会产生什么影响?

mpl*_*ert 5

EpisodeParameterMemory是用于 CEM 的特殊类。本质上,它存储了用于整个事件的策略网络的参数(因此得名)。

关于你的问题:该limit参数只是指定内存可以容纳多少个条目。超过此限制后,旧条目将被新条目替换。

第二个参数不用于这种特定类型的内存(CEM 在某种程度上是 Keras-RL 中的边缘情况,并且大多数情况下作为简单的基线)。然而,通常情况下,该window_length参数控制连接多少个观察值以形成“状态”。如果环境不完全可观察,这可能是必要的(将其视为将 POMDP 转换为 MDP,或至少近似)。Atari 上的 DQN 使用了这一点,因为单帧显然不足以推断具有 FF 网络的球的速度。

一般来说,我建议阅读相关论文(同样,CEM 是一个例外)。这样每个参数的含义就应该变得相对清楚了。我同意 Keras-RL 迫切需要文档,但不幸的是我现在没有时间处理它。当然,我们始终欢迎为改善情况做出贡献;)。