大型网格世界环境中的DQN探索策略

时间:2018-12-06 00:04:21

标签: machine-learning deep-learning reinforcement-learning

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

我正在尝试通过5种动作来训练DQN模型以完成此任务:

1)上移

2)向右移动

3)下移

4)向左移动

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

我给模型的“状态”是当前网格(NxM张量)。我通过平展的单热点(1x(N * N))张量级联到卷积特征向量的输出(在FC层之前)提供了代理的当前位置。

但是,我发现epsilon-greedy探索政策并没有导致足够的探索。另外,在训练的早期(模型本质上仍在选择随机动作时),伪随机动作组合最终“消失”,并且我的特工没有从起始位置移开足够远的距离来发现有一个例如,在网格的不同象限中值为1的单元格。我正在采用非卷积MLP模型的5x5网格上获得融合策略,所以我认为我的实现是合理的。

1)我如何鼓励那些不一定总是“取消”的探索只探索到我的出发地的一个非常本地的区域?

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

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

1 个答案:

答案 0 :(得分:1)

探索是RL中的一大挑战。 但是,对于一个简单的e贪心来说,您的问题似乎并不难,尤其是在您具有初始随机状态的情况下。 首先,您可以使用一些技巧:

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

关于您的问题:

1)以上技巧应解决此问题。有一些方法可以增强探索以访问状态空间中未探索的区域的方式,例如“内在动机”和“好奇心”。 This是一篇不错的论文。

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

3)这取决于您的问题。离散化是否足够准确,可以使您表现最佳?如果是这样,那就去吧。 (但通常情况下,更棘手的问题并非如此。)