RL:推车杆问题如何成为一项持续的任务?

人工智能 强化学习
2021-11-10 05:24:14

在 Sutton 和 Barto 的强化学习简介 (2ed) 中,有一个极点平衡问题的示例(示例 3.4)。

在这个例子中,它说,这个问题可以用“情节任务”和“持续任务”来处理。

我认为它只能被视为episodic task因为它有演奏的结束,即落杆。

我不知道如何将其视为continuing task.... 即使在OpenAI Gym cartpole env中,也有唯一的episodic模式。

3个回答

关键是,通过SARSA之类的强化学习,通过将状态空间拆分为离散点,然后尝试在每个点学习最佳动作来工作。

为此,它尝试选择最大化奖励信号的动作,可能受制于某种探索策略,如epsilon-greedy

在cart-pole 中,两个常见的奖励信号是:

  1. 当杆在最高位置的一小段距离内时获得 1 奖励,否则为 0。
  2. 获得随着杆子离地距离线性增加的奖励。

在这两种情况下,代理都可以在杆子倒下后继续学习:它只想将民意调查重新向上移动,并尝试采取行动这样做。

但是,离线算法不会在代理运行时更新其策略。这种算法不会从连续任务中受益。相比之下,在线算法会运行时更新其策略,并且没有理由在剧集之间停止,除非它可能会陷入糟糕的状态。

直接来自萨顿的书(http://incompleteideas.net/book/the-book-2nd.html):

示例 3.4:杆平衡 本任务的目标是对沿轨道移动的推车施加力,以防止铰接在推车上的杆倾倒:如果杆跌落超过给定角度,则称发生故障从垂直或如果推车跑出轨道。每次故障后,杆都会重置为垂直状态。这项任务可以被视为偶发性的,其中自然事件是反复尝试平衡极点。在这种情况下,对于没有发生故障的每个时间步,奖励可能是 +1,因此每次的回报将是直到失败的步数。在这种情况下,永远成功的平衡将意味着无限的回归。或者,我们可以将极点平衡视为持续的 任务,使用折扣。在这种情况下,每次失败的奖励都是 -1,其他时候奖励为零。然后,每次的回报将与 K 相关,其中 K 是失败前的时间步数。在任何一种情况下,通过尽可能长时间地保持磁极平衡来最大化回报。

这是一项持续的任务,因为在失败后,代理总是会获得以下奖励0在每个时间步长无穷大。

从书中:

我们可以使用贴现将极点平衡视为一项持续的任务。在这种情况下,每次失败的奖励都是-1,其他时候奖励为零。每次的回报将与γK, 在哪里K是失败前的时间步数。

(这里我用过γ作为折扣因子)。

换句话说,假设代理在第 (K + 1) 步中失败,则奖励为0直到那一步,1为此,然后0永恒。

所以返回:

Gt=Rt+1+γRt+2+γ2Rt+3+...+γKRt+K+1+...=γK