首页 > 解决方案 > 大型网格世界环境的 DQN 探索策略

问题描述

我的任务涉及一个大型网格世界类型的环境(网格大小可能是 30x30、50x50、100x100,最大为 200x200)。此网格中的每个元素都包含一个 0 或一个 1,它们在每个情节中随机初始化。我的目标是训练一个代理,它从网格上的随机位置开始,导航到值为 1 的每个单元格,并将其设置为 0。(请注意,通常,网格大多为 0,稀疏的 1) .

我正在尝试用 5 个动作训练 DQN 模型来完成此任务:

1) 向上移动

2) 向右移动

3) 向下移动

4) 向左移动

5) 清除(将当前元素设置为 0)

我给模型的“状态”是当前网格(NxM 张量)。我通过将扁平的 one-hot (1x(N*N)) 张量连接到我的卷积特征向量的输出(在 FC 层之前)来提供代理的当前位置。

但是,我发现 epsilon-greedy 探索策略并没有导致足够的探索。此外,在训练的早期(当模型本质上是在选择随机动作时),伪随机动作组合最终会“取消”,并且我的代理没有远离起始位置足够远来发现存在例如,在网格的不同象限中值为 1 的单元格。我正在使用非卷积 MLP 模型的 5x5 网格上获得收敛策略,所以我认为我的实现是合理的。

1)我如何鼓励不会总是“取消”的探索,只探索一个非常本地的区域到我的起始位置?

2)这种方法是完成这项任务的好方法吗(假设我想使用 RL)?

3)我认为尝试使用“连续”动作空间(模型输出“1”元素的索引)将更难以实现收敛。总是尝试使用离散的动作空间是否明智?

标签: machine-learningdeep-learningreinforcement-learning

解决方案


探索是强化学习的一大挑战。但是,对于简单的 -greedy 而言,您的问题似乎并不难e,尤其是在您具有初始随机状态的情况下。首先,您可以使用一些技巧:

  • 不要立即开始学习。在执行任何更新之前“预热”您的数据集并收集足够的样本(这也在原始 DQN 论文中完成)。
  • 降低噪音。您可以减少e情节步骤并将其重置为下一情节,或者从一个大开始e并随着学习迭代而减少它。
  • 调整每集的步数。有时最好有更短的情节并更频繁地重置环境,以便更多地探索网格(感谢随机初始状态)。

关于你的问题:

1)上述技巧应该解决这个问题。有一些方法可以增强探索以访问状态空间的未探索区域,例如“内在动机”和“好奇心”。是一篇关于它的好论文。

2)您的问题是完全离散的并且不是那么大,因此价值(或策略)迭代(仅作为动态规划)会更好。

3)这取决于你的问题。离散化是否足够准确,可以让您发挥最佳性能?如果是这样,那就去吧。(但对于更难的问题,通常情况并非如此)。


推荐阅读