如何处理强化学习的时间延迟?

人工智能 强化学习 时间序列 延迟奖励
2021-11-13 17:31:32

我对强化学习 (RL) 的时间延迟有疑问。

在 RL 中,有状态、奖励和动作。通常假设(据我所知)在系统上执行操作时,状态会立即更改,然后可以分析新状态(影响奖励)以确定下一个操作。但是,如果在此过程中存在时间延迟怎么办。例如,当某个动作在某个时间执行时1, 我们只能得到它对系统的影响2(可以想象一个流程:执行器在上游区域,传感器在下游区域,所以动作和状态之间会有时间延迟)。我们如何处理 RL 中的这种时间延迟?

2个回答

此问题已正式称为延迟 MDP(Katsikopoulos 和 Engelbrecht,2003 年)[ 1 ] - 生成的动作不会立即应用于环境和/或代理不会立即看到捕获的观察结果,正如 MDP 中所预期的那样。延迟可以是:

a) 恒定延迟- 恒定延迟 MDP (CDMDP)(在具有延迟反馈的环境中学习和规划,2008 年)[ 2 ]

  • 环境引入的延迟是恒定且已知的。就像您在问题中提供的示例一样。

b) 随机延迟- Random Delayed MDP

  • 我们不知道会发生什么延迟,也不知道什么时候会发生延迟。这对于现实世界的案例来说更为现实。

尝试过的方法

1.忽略延迟

这假设 CDMDP 是一个 MDP。然后我们尝试寻找最能忽略延迟的策略

π(一世ķ)=π*(s)|一世ķ=(s,一个1,···,一个ķ)

ķ是作用于当前状态和接收反馈之间的时间步数。这很简单,如果延迟与状态转换幅度相比较小,则可以给出合理的结果 [ 2 ]。

2. 从 CDMDP 重构 MDP(增强方法)

重构后的 MDP 的相应最优策略将成为 CDMDP 的最优策略。然而,随着延迟长度的增长,动作缓冲区的大小变得难以处理。因此,它仅限于小的恒定延迟。[ 1 ] 定义了如何进行重建。

3. 预测延迟观察

这试图通过使用预测模型来“取消延迟”环境来近似延迟观察的情况,而不是让代理耐心等待延迟结束(学习和计划在具有延迟反馈的环境中,(2008) [ 5 ],以人类速度:具有动作延迟的深度强化学习,(2018) ) ][ 6 ])。

例如,对于延迟操作

s+一世=(s+一世-1,一个+一世-del一个是的)

如果延迟在观察上,则最近的 K 个动作可以与最近的观察一起使用来近似当前状态[ 2 ]。然而,这也意味着延迟是状态的一部分——有可能有更好的方法,如下面的随机延迟部分所述。

估计当前状态使代理能够以对执行动作的真实状态的估计为条件采取行动。限制是它假设一个恒定的延迟。


所有上述方法都假设一个恒定的延迟

处理随机延迟*

4. 部分轨迹重采样(PTR)

一种递归地对缓冲区中的操作进行重新采样的方法,将它们替换为符合策略的操作。它使用延迟动态来模拟它们对当前策略的影响。

如果 MDP 上存在随机延迟,则在一些时间步长内,off-policy 重放缓冲区中存在的某些操作不会影响稍后延迟的观察和奖励。这将允许通过从动作缓冲区递归地重新采样最近的动作来从非策略样本中生成策略子轨迹。它不会使子轨迹无效。

只要观察延迟,重新采样的动作就会有效ω和动作延迟α都大于当前时间步即,没有延迟观察取决于重采样动作。

ω+α>=

部分轨迹重采样 PTR 的插图,( 3 )

这种方法的好处:

  1. 允许丢弃过时的信息。例如,如果延迟使得没有观察到5时间步长,然后都到达一步5,我们可以安全地丢弃步骤的转换(1,2,3,4). 这是因为此信息将在最近的观察中被压缩。

  2. 提供有关观察的“年龄”和接下来应用的操作的信息

  3. 高效的信用分配

与连接过去相比,这些因素使部分轨迹重采样具有更好的性能ķ用最近的观察来估计当前延迟状态的动作。

具有随机延迟的 RL (2020) [ 3 ] 描述并在 RL 中应用部分轨迹重采样。这是我遇到的唯一一个同时处理随机和恒定延迟 MDP 的工作。

奖励延迟怎么办?

在这种情况下,奖励延迟​​是指归因于延迟观察和行动的奖励。

延迟 MDP 的解决方案将涉及解决信用分配问题在这种情况下,这是决定如何处理延迟的奖励以及如何将功劳归功于延迟的动作和状态。

这有不同的方法。例如:

“ ...我们选择累积对应于 [excessively delayed transitions we drop] 的奖励。当一个观察因为没有新的观察可用而重复时,对应的奖励为 0,而当一个新的观察到达时,对应的奖励包含丢失的 [dropped] 转换中的中间奖励的总和。” [ 3 ]

另一方面,机器人的实时样本效率强化学习 (2013) [ 9 ] 使用决策树将信用分配给从 CMDP 重建的 MDP。树会了解哪些延迟操作是相关的。


相关阅读:

  1. 实时强化学习 (2019)
  2. 边走边思考:并发控制的深度强化学习,(2020)

大多数 RL 算法假设时间离散化(尽管 RL 也可以应用于连续时间问题 [ 1]),也就是说,理论上,连续时间步长之间的实际时间是多少并不重要,但在实践中,您可能会延迟奖励或观察,因此您不能立即执行例如 TD 更新。您的问题的一个自然解决方案是跟踪(例如在缓冲区中)获得的奖励以及代理在某个状态下采取某种行动后最终进入的下一个状态,或者使用某种同步机制(请注意,我刚刚提出了这些解决方案,所以我不知道是否已经这样做了,或者没有解决问题)。在实践中,这可能不起作用(在所有情况下),例如,在实时推理期间,即使没有关于当前状态或奖励的完整信息,您也需要快速决定需要做什么。

请注意,在 RL 中,通常说奖励是延迟的,从某种意义上说

  1. 您可能在采取行动之后的许多时间步长才知道行动的后果(确定行动的后果被称为信用分配问题),或者
  2. 只有当代理达到目标/最终状态时,您才可能获得非零奖励(在最后一种情况下,这些奖励也称为稀疏)。

这两个问题在 RL 中很常见。但是,如果我正确理解您的担忧,这与您的问题有点不同,因为您的问题还涉及状态的潜在延迟,甚至本应在前一个时间步到达的奖励,这可能是由于例如不稳定或损坏的传感器/执行器。例如,如果您使用DQN,它通常通过连接相机捕获的最后一帧来构建当前状态的近似值,如果您的帧延迟导致帧的自然顺序发生变化,这可能会导致对当前状态的错误近似,这实际上可能导致灾难性事件。所以,是的,这是一个需要解决的重要问题。

鉴于我对实际现有的解决方案并不十分熟悉,我将向您推荐我几周前阅读的论文Challenges of Real-World Reinforcement Learning ,其中提到了这个问题,并为您指出了其他试图解决问题的研究工作。解决它。如果您对延迟/稀疏奖励更感兴趣,也请查看此答案。