DQN - Q-Loss没有收敛

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

我正在使用DQN算法在我的环境中训练代理,如下所示:

  • 代理通过选择离散动作(左,右,上,下)来控制汽车
  • 目标是以所需的速度行驶而不会撞到其他车辆
  • 状态包含代理商的汽车和周围汽车的速度和位置
  • 奖励:-100用于撞击其他车辆,根据所需速度的绝对差值给予正奖励(如果以所需速度行驶,则为+50)

我已经调整了一些超参数(网络架构,探索,学习率),这给了我一些下降的结果,但仍然没有它应该/可能的那么好。每个epiode的奖励在训练期间增加。 Q值也在收敛(见图1)。然而,对于超参数的所有不同设置,Q-损失不会收敛(参见图2)。我认为,Q缺失的缺乏收敛可能是获得更好结果的限制因素。

Q-value of one discrete action durnig training

Q-loss during training

我正在使用目标网络,每20k步更新一次。 Q损失计算为MSE。

你有没有为什么Q-loss没有收敛的想法? Q-Loss是否必须收敛DQN算法?我想知道为什么在大多数论文中都没有讨论过Q-loss。

tensorflow deep-learning reinforcement-learning q-learning
1个回答
2
投票

我认为,当您的政策更新时,随着您的数据不断变化,Q-loss不会收敛是正常的。它与监督学习不同,您的数据永远不会发生变化,您可以对数据进行多次传递,以确保您的权重与数据完美匹配。

另一件事是我发现在每个时间步(软更新)稍微更新目标网络对我来说比在每个X时间步更新它(硬更新)更好。

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