大型状态空间中多个参与者的策略强化学习

机器算法验证 机器学习 强化学习
2022-03-30 14:32:50

我有一个实时域,我需要为 N 个参与者分配一个动作,涉及将 O 个对象之一移动到 L 个位置之一。在每个时间步,我都会得到一个奖励 R,表示所有参与者的整体成功。

我有 10 个演员、50 个独特的对象和 1000 个位置,所以对于每个演员,我必须从 500000 个可能的动作中进行选择。此外,我可能会考虑 50 个环境因素,例如每个物体与墙壁的距离,或者它与演员的距离。这导致每个参与者有 25000000 个潜在操作。

几乎所有强化学习算法似乎都不适合这个领域。

首先,它们几乎都涉及评估给定状态下每个动作的预期效用。我的状态空间很大,所以即使我使用函数逼近,使用像 Q-learning 这样原始的东西来收敛一个策略也需要很长时间。即使我可以,在每个时间步的一百万个动作中找到最佳动作也需要很长时间。

其次,大多数算法假设每个参与者只有一个奖励,而我得到的奖励可能会被一个或多个参与者的错误所污染。

我应该如何解决这个问题?我没有找到此类领域的代码,而且我发现的关于多角色强化学习算法的几篇学术论文没有提供几乎足够的细节来重现所提出的算法。

1个回答

我认为这里有两个问题:

  1. 巨大的状态空间,
  2. 涉及许多代理的事实。

我对(2)没有经验,但我想如果所有代理都可以分享他们的知识(例如他们的观察),那么这与将所有不同的代理视为一个代理并像“群体策略”一样学习没什么不同。如果不是这种情况,您可能需要搜索“分布式强化学习”或“多代理强化学习”。

对于 (1),您可能需要找到更紧凑的动作/状态空间的表示。一些想法随之而来。

你说有1000个位置。尝试为它们找到低维嵌入是否有意义?例如,您能否找到它们之间合适的距离度量?如果是这样,您可以使用多维缩放将它们嵌入到连续的 k 维空间中k<<1000.

另一种方法是使用策略梯度这个想法是您使用参数化策略,

π:Θ×SA

其中每个θΘ是定义策略的参数空间中的一个点。然后可以使用基于梯度的方法优化此策略。

一个例子是你有一个神经网络,它将当前状态作为输入,并直接输出“将对象 i 移动到位置 j”。您无需明确列举所有可能的操作。

尽管如此,我怀疑这种方法在没有认真工作的情况下是否可行。即使在使用 PG 时,您也需要减少您的操作/状态空间。