我看到这个问题主要是在连续动作空间的背景下提出的。
我的自定义环境有很大的动作空间(~2-4k 离散动作),我无法进一步减少:
我目前正在尝试 DQN 方法,但想知道鉴于大动作空间 - 策略梯度方法是否更合适,以及它们是否适合像我上面的场景中那样离散的大动作空间。我已经看到关于大型连续动作空间的这个问题的答案。
最后 - 我想这没有一个简单的答案,但是:这是否实际上意味着 DQN 将不起作用?
我看到这个问题主要是在连续动作空间的背景下提出的。
我的自定义环境有很大的动作空间(~2-4k 离散动作),我无法进一步减少:
我目前正在尝试 DQN 方法,但想知道鉴于大动作空间 - 策略梯度方法是否更合适,以及它们是否适合像我上面的场景中那样离散的大动作空间。我已经看到关于大型连续动作空间的这个问题的答案。
最后 - 我想这没有一个简单的答案,但是:这是否实际上意味着 DQN 将不起作用?
我不认为(至少从实际的角度来看),连续动作空间和具有> 2k离散动作的离散动作空间之间存在很大差异。引用“Continuous control with Deep RL”论文——我建议将其作为您调查的起点:
将深度强化学习方法(如 DQN)应用于连续域的一个明显方法是简单地离散化动作空间。... 如此大的动作空间很难有效地探索,因此在这种情况下成功地训练 DQN 类网络可能是棘手的。此外,动作空间的幼稚离散化不必要地丢弃了有关动作域结构的信息,这对于解决许多问题可能是必不可少的。
上面引用的最后一句话是处理您的问题的最重要的一点。根本问题是无法有效地探索如此大的动作空间——所以想法是使用它的结构。我确定您的 >2k 离散动作集具有一定的结构。就像某些动作可能与其他动作“更接近”一样。如果是这样,那么您 (1) 可以推断出一些关于“邻居”操作的信息,即使您从未采取过它们 (2) 通过向您的策略首选操作添加噪音来进行一些探索。
Actor-Critic 类算法与上述步骤 (1) 和 (2) 完美匹配。Critic Q-value 网络了解您的状态动作空间,Actor 策略网络返回您可能涂抹的动作。
策略梯度方法适用于大型离散动作空间吗?
RL 算法的 Actor-Critic 类是 Policy Gradient 算法的子类。所以,答案是肯定的——看起来那样做是你取得进步的最佳机会。
这是否实际上意味着 DQN 将不起作用?
我认为没有严格的“它不起作用”的说法。问题是“手动”使 DQN 训练稳定是极其困难的。原则上,您可能能够构建一个捕获状态-动作空间结构的神经架构。然后弄清楚如何进行有效的探索。然后确保没有任何东西在任何地方爆炸。但这正是 DDPG 和 TRPO/PPO 方法将为您做的事情。