训练深度 q 神经网络来驱动物理机器人穿过迷宫。计算所有可能动作的 q 值计算成本太高

问题描述 投票:0回答:1

我正在尝试训练神经网络来引导物理机器人穿过迷宫。我没有训练数据,必须使用强化学习来训练它。我正在使用深度 q 网络。然而,在尝试生成体验重放的训练数据时,我遇到了问题。据我了解,在深度 q 学习开始时,q 网络必须预测所有可能动作的 q 值。在我用于训练的模拟中,机器人可以旋转 360 度,并且每次采取动作时都可以尽可能向前移动。它可以采取的可能操作数量太大,无法合理计算所有操作。另外,因为 q 网络必须预测每一步每个可能动作的 q 值,所以我不能只进行一次计算来填充经验重播并完成。我听说神经网络有时可以使这个问题变得更容易,但是每个可能的动作都需要一个输出神经元。考虑到可能采取的行动数量,这似乎也不可行。有没有什么方法可以训练深度 q 网络,而无需计算每个可能动作的 q 值。预先感谢您,抱歉发帖太长。

reinforcement-learning q-learning
1个回答
0
投票

嗯,您需要计算每个可能操作的 q 值,否则您不知道哪个操作会产生最高的预期奖励。因此,您需要限制操作次数。您可以通过声明不允许涉及所有 360 度旋转,而是将运动作为输出来做到这一点,这样 2 个动作:左转 1 度和右转 1 度,将构成机器人的所有 360 度旋转,从而限制动作此部分中的空间从 360 度变为 2 度。当然,您也可以对此进行更智能的编程,指出您想要旋转 45 度或 90 度,具体取决于您的任务。

当观察空间很大时,你肯定想使用DQN。根据您的任务,您可能还想了解其他模型,例如 PPO。检查 https://stable-baselines3.readthedocs.io/en/master/ 以轻松应用和训练强化学习模型。

© www.soinside.com 2019 - 2024. All rights reserved.