我已经开始学习强化学习,并且对基于模型和无模型的方法几乎没有疑问。
是否可以对本质上是随机的环境进行建模?
是因为我们使用无模型方法很难对这样的环境进行建模吗?
我已经开始学习强化学习,并且对基于模型和无模型的方法几乎没有疑问。
是否可以对本质上是随机的环境进行建模?
是因为我们使用无模型方法很难对这样的环境进行建模吗?
是否可以对本质上是随机的环境进行建模?
是的,随机环境的模型可以是以下之一:
一个分布模型,在给定当前状态和动作的情况下,输出下一个状态和奖励的概率分布。如果您正在阅读 Sutton & Barto,或使用该功能的类似作品,那么如果你可以为整个环境实现这个功能,就意味着你可以访问一个分布式模型。
一个采样模型,在给定当前状态和动作的情况下,输出单个奖励和下一个状态,任何结果的概率与真实环境相同。如果您可以实现对环境的准确模拟,那么您就有了一个采样模型。
如果您想使用动态规划等方法,它适用于预期值,那么使用分布模型会容易得多,在这种情况下,您需要从一开始就使用准确的模型(否则动态规划可能会收敛到非最优政策)。
是因为我们使用无模型方法很难对这样的环境进行建模吗?
并非如此,对随机环境进行建模没有特别困难。例如,如果您的环境是骰子游戏,那么只需执行规则和骰子的随机数生成器即可创建采样模型。对于基本骰子规则,分配模型通常很简单,例如掷骰子以查看您可以采取多少步。
然而,与环境的随机性无关,复杂的环境可能变得难以建模。分布模型可能需要大量数学来计算所有可能性,因此采样模型(模拟)更容易。例如,当您跟踪牌组内容时,纸牌游戏在模拟中相对容易实现。但是它的分布模型更复杂,因为您必须跟踪已经播放的内容或可以从其他观察中找出。
许多环境过于复杂而无法建模。例如,它们可能涉及现实世界的物理学,但没有包括足够的测量值来建立完整的状态。例如,当代理驾驶无人机时,它会受到空气湍流的影响,但无法直接观察到它。湍流等混沌效应很难建模,无论您多么努力地编写代码,获得真实世界的经验都可能比任何基于物理引擎的模型更准确。同样,可视化现实世界或在人类社会环境中导航也很难准确建模。
在决定是否使用无模型方法时,需要进行成本分析。即使在复杂的环境中,您也可能更喜欢使用基于模型的方法:
模型的优点是它允许您在不采取实际行动的情况下安全地探索,而且在某些情况下,查询模型可能比在现实世界中采取行动并等待结果要快得多。在解决实际动作所需的时间内,计算机可能能够从其模型中检查 10、100、1000 或更多个模拟动作。
模型的缺点是:
在某些情况下,真实环境足够快速、安全和可靠,使用模型并没有太多好处。这些案例包括许多用于研究学习的玩具问题,其中环境实际上是模拟的(这是模型的一种形式),但与代理分开(因此尽管如此,代理在技术上仍然是无模型的)。