如何实现上下文强化学习模型?

人工智能 强化学习 多臂强盗 上下文强盗
2021-11-16 03:37:30

在强化学习模型中,状态取决于先前选择的动作。在某些状态(但不是全部)完全独立于动作但仍明显确定最佳动作的情况下,我们如何考虑这些状态变量?

如果问题是多臂老虎机问题(其中没有任何动作影响状态),则解决方案将是上下文多臂老虎机问题。但是,如果我们需要一个“上下文强化学习问题”,我们该如何解决呢?

我可以考虑将连续的上下文分成多个步骤,并为每个步骤创建一个强化学习模型。那么,是否有任何解决方案将这些多个 RL 模型一起使用,其中每个模型用于预测和反馈,与实际上下文和分配给 RL 模型的上下文之间的接近程度成比例?这甚至是一个好方法吗?

1个回答

在某些状态(但不是全部)完全独立于动作但仍明显确定最佳动作的情况下,我们如何考虑这些状态变量?

我认为这里的关键是警告但不是全部你所拥有的是一个功能齐全的 MDP(状态、动作、奖励、下一个奖励和下一个状态取决于当前状态和动作的时间步长)。下一个状态仅受当前操作的轻微影响这一事实并不能阻止它成为 MDP。

如果当前状态没有充分描述这种限制,例如,如果在可观察状态之外的一些其他数据决定动作是否有任何影响,这将是一个问题。假设情况并非如此,那么您仍然有一个完整的强化学习问题,但有一些不寻常的品质。

您可以通过使用“双重学习”来缓解由高估可能奖励的算法引起的问题(由将幸运状态轨迹与动作选择相关联的算法引起) - 一个回报估计用于选择最大化动作,另一个用于估计下一个状态的实际回报。您可能还更喜欢单步学习而不是基于轨迹的学习,因为大多数时候您的状态轨迹不会包含可学习的数据。所以双深度 Q 网络可能是一个很好的尝试算法。

如果您通过检查当前状态绝对知道下一个状态独立于当前操作,并且理论上下一个状态几乎可以是任何东西(来自整个状态空间或某个大子集),那么您可能能够适应允许该知识的算法。您可以通过更改 TD 目标并将下一个状态的引导估计项替换为所有可到达的下一个状态的滚动平均值来做到这一点在概念上,这类似于预期的 SARSA- 在实践中,如果可能的话,这将大大减少学习过程中的差异,并可能显着加快学习速度。如果您知道下一个状态的分布,您可能会使用它,但仅基于看到的样本也应该没问题,前提是您可以分配方法来纠正状态组(您的问题意味着您对状态如何将分组)。请注意,从对下一个状态没有动作影响的状态到对动作有影响的状态的转换需要小心处理——它们不应该被分配到同一个“平均组”,而是应该在它们正常影响 TD 目标时发生。

如果代理不可能知道它是否处于其动作影响下一个状态的状态,除非通过经验,那么你真的必须使用标准的 RL 求解器。

最后,如果您遇到当前操作不会影响下一个状态,但当前状态在所有情况下都肯定会影响的情况 - 状态“进化”,可能是随机的,独立于大多数情况下采取的操作,并且只能更改为来自任何给定当前状态的下一个状态的相对较小的子集 - 然后最好用普通的 RL 求解器解决这个问题 - 在这种情况下,双 Q 学习可能是一个合理的起始算法。