【发布时间】:2019-05-07 15:13:40
【问题描述】:
我的任务涉及大型网格世界类型的环境(网格大小可能是 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-learning deep-learning reinforcement-learning