带规划的 Dyna-Q 与 n 步 Q 学习

Dyna-Q with planning vs. n-step Q-learning

我正在阅读 Sutton 和 Barto 的强化学习,对于 Dyna-Q 的示例,他们使用了迷宫问题。该示例表明,在规划 n=50 步的情况下,该算法仅用 3 集就达到了最优路径。

这是对 50 步 Q 学习的改进吗?看起来你真的只是 运行 一堆每集 50 步的 Q-learning 算法,所以说它在 3 集中找到最佳路径是误导。

此外,我想最大的问题是,当您没有环境模型时,我认为 Dyna-Q 很有用,但在这个例子中我们没有环境模型吗?如果我们已经有了一个模型,为什么还要使用所有的内存来保存我们之前的所有动作呢?我无法理解为什么这是 Dyna-Q 的一个很好的例子。

理论上,我们没有模型。我们在实践中只是为了模拟,但在现实生活中我们没有。

Dyna-Q 基本上使用示例来近似您的模型。您 "query" 您的数据不是学习转换和奖励函数:过去我在状态 s 中执行操作 a 时发生了什么?如果一切都是确定性的,这相当于知道确切的模型。

想想也是这样。在经典的 Q-learning 中,您只知道当前的 s,a,因此您仅在访问它时更新 Q(s,a)。在 Dyna-Q 中,您每次更新所有 Q(s,a) 从内存中查询它们。您不必重新访问它们。这极大地加快了速度。

此外,非常常见的 "replay memory" 基本上重新发明了 Dyna-Q,尽管没有人承认它。