在 Sutton 和 Barto 的《强化学习:简介》的第 8 章中,指出 Dyna 需要一个模型来模拟环境。
但是为什么我们需要一个模型?为什么我们不能只使用真实环境本身?使用真实环境而不是假环境不是更有帮助吗?
在 Sutton 和 Barto 的《强化学习:简介》的第 8 章中,指出 Dyna 需要一个模型来模拟环境。
但是为什么我们需要一个模型?为什么我们不能只使用真实环境本身?使用真实环境而不是假环境不是更有帮助吗?
与 Sutton 和 Barto 其他章节中介绍的算法不同,Dyna 是一种规划算法。这意味着它会在真实环境中在线做出决策,在考虑到当前知识和时间步之间可用于计算的时间等限制条件下尝试尽可能优化。这与仅学习在线算法不同,后者通常会在每条新体验发生时朝着最优方向迈出一小步。
只有允许规划算法在在线学习时“展望”其行为的后果,它才能做好它的工作。事实上,这就是计划的定义——根据对行动后果的推理来选择行动。
为了让算法在采取行动之前向前看,它需要一个环境如何响应该行动的模型。该模型不需要直接编码 - 例如,您不一定需要编写物理引擎来预测现实世界(尽管基本的引擎可能是一个很好的事先或预训练步骤)。相反,它可以是一个学习模型,通常在例如 Dyna-Q 中,这就是您使用的。
Dyna-Q 与带有经验回放的常规 Q-learning 之间有很强的关系。在最基本的形式中,它们本质上是具有不同框架的相同算法。但是,您可以将规划理念进一步推进,例如围绕当前经历的状态和通往 Dyna-Q 中目标状态的路径进行重点改进,也许在概念上使其更接近 MCTS。
使用真实环境而不是假环境不是更有帮助吗?
大多数真实环境不允许您采取行动,看到后果然后倒带以重试。本质上,这就是计划算法所弥补的——它们试图预测后果。当训练过程中犯的错误产生实际后果时,这一点很重要,例如对于物理机器人在可能会摔倒或碰撞损坏某些东西的环境中导航。虽然像 SARSA 这样的在线学习算法也会以不同的方式帮助解决这个问题(在 SARSA 中,通过改变策略以允许探索性移动),但在从错误中快速学习方面,通常 Q-learning 会比 Dyna-Q 弱。通常需要注意的是:很大程度上仍然取决于特定问题和超参数的选择。
对于许多问题空间,Sutton 的 Dyna 已被证明比没有模型工作的学习系统更有效,但它比确定性等价方法需要更少的处理周期。它的先进之处在于它并行地构建模型并根据传入的信息和模型调整行为策略。目标是整合人类大脑的两种已识别能力。
为什么我们需要 Dyna 中的模型?
建模能力是 Dyna 架构的重要组成部分,并且随着时间的推移,可能会被证明是实现更高效率的重要组成部分。很多人都这么认为,包括我自己。换句话说,可能没有比为许多问题集建立和维护模型等效的有效机制了。
为什么我们不能只利用一个真实的环境本身呢?使用真实环境而不是假环境不是更有帮助吗?
由于多种原因,无法将真实环境放在内存中。首先,它不适合。此外,它不能获得太多。只能获取环境图像并将其放置在内存中。图像最重要的特征,无论是股票价格、温度读数还是流媒体视频,都是我们试图操作的环境的非常稀疏和无差别的表示。