当动作空间在不同时间步长不同时如何使用 DQN?

人工智能 强化学习 dqn 行动空间 约束优化
2021-10-29 19:07:06

我想使用 DQN 来解决受约束的 MDP 问题。这个问题对行动空间有限制。在不同的时间步直到结束,可用的动作是不同的。它有如下不同的可能性。

  • 0、1、2、3、4
  • 0、2、3、4
  • 0, 3, 4
  • 0, 4

这是否意味着我需要为这些可能性学习 4 个不同的 Q 网络?另外,如果我错了,请纠正我,看起来如果我指定动作大小为 3,那么它会自动假定动作是0, 1, 2,但在我的情况下,它应该是0, 3, 4我该如何实施呢?

1个回答

DQN 有两种相关的神经网络设计:

  • 直接对q函数建模Q(s,a):S×AR,因此神经网络将状态和动作的输入连接起来,并输出单个实数值。这可以说是更自然地适合 Q 学习,但可能效率低下。

  • 对给定状态的所有 q 值建模Q(s,):SR|A|,因此神经网络接受当前状态的输入,并将与该状态相关的所有动作值作为向量输出。

对于第一个架构,您可以通过构建小批量的方式来决定评估哪些操作。您预先过滤到每个状态的允许操作。

对于第二种架构,您必须将操作值后过滤到状态允许的值。

为神经网络构建可变长度输入和输出还有其他可能性 - 例如使用 RNN。但是,这些通常不值得付出额外的努力。您通常只需要对可以处理整个动作空间(包括不可能的动作)的 NN 的动作进行前置或后置过滤。不要担心神经网络可能会计算一些不需要或无意义的值。