1

我目前正在使用 Q-Learning 来尝试教机器人如何在充满墙壁/障碍物的房间中移动。它必须从房间的任何地方开始并达到目标状态(例如,这可能是有门的瓷砖)。目前,当它想移动到另一个图块时,它会去那个图块,但我在想将来我可能会添加一个随机的机会去另一个图块,而不是那个。它只能上下左右移动。达到目标状态产生 +100,其余动作产生 0。

我正在使用此处找到的算法,如下图所示。

替代文字 替代文字

现在,关于这个,我有一些问题:

  1. 使用 Q-Learning 时,有点像神经网络,我必须区分学习阶段和使用阶段?我的意思是,似乎他们在第一张图片中显示的是学习的,而在第二张图片中显示的是使用的。
  2. 我在某处读到,要达到最佳 Q 值表需要无数个步骤。真的吗?我会说这不是真的,但我必须在这里遗漏一些东西。
  3. 我也听说过 TD(Temporal Differences),它似乎由以下表达式表示:

    Q(a, s) = Q(a, s) * alpha * [R(a, s) + gamma * Max { Q(a', s' } - Q(a, s)]
    

    对于 alpha = 1,这似乎是图片中第一个显示的那个。伽马值在这里有什么不同?

  4. 如果我尝试一个非常大的房间(例如 300x200 像素),我会遇到一些复杂情况。由于它本质上是随机运行的,如果房间很大,那么从第一个状态随机进入目标状态将需要很长时间。我可以使用哪些方法来加快速度?我想也许有一张桌子,里面装满了对与错,关于我在那一集中所拥有的任何东西是否已经处于那种状态。如果是,我会丢弃它,如果不是,我会去那里。如果我已经去过所有这些州,那么我会去一个随机的。这样一来,就像我现在正在做的事情一样,我知道我会比现在更频繁地重复状态。
  5. 除了 Q 值的查找表之外,我还想尝试其他的东西,所以我正在考虑使用带有反向传播的神经网络。我可能会尝试为每个动作(上、下、左、右)设置一个神经网络,因为这似乎是产生最佳结果的方法。是否有任何其他方法(除了 SVM,这似乎太难以实现自己)我可以使用和实现给我很好的 Q-Values 函数逼近?
  6. 你认为遗传算法在这种情况下会产生好的结果吗,使用 Q 值矩阵作为它的基础?如何测试我的健身功能?它给我的印象是 GA 通常用于更随机/更复杂的事情。如果我们仔细观察,我们会注意到 Q 值遵循一个明显的趋势 - 靠近目标的 Q 值越高,离目标越远,Q 值越低。试图通过 GA 得出这个结论可能需要太长时间吗?
4

2 回答 2

5

我不是该主题的专家,但我会尝试直接回答您的许多问题
[顺便说一句,我应该为每个问题获得多个 +reps!...开玩笑,如果我在“为SO reps”,我不会发帖,这将获得总共 20 次浏览,其中一半的访问者对手头的概念有一个粗略的了解]

1)Q-学习一个两阶段的东西?
是的,Q-Learning 意味着两个阶段,一个学习阶段和一个行动阶段。与许多自动学习算法一样,可以在行动阶段“继续学习”。

2) 最优 G 矩阵的步数无限? 不确定在哪里需要无限数量的学习周期来学习最佳 Q 矩阵的语句。可以肯定的是(除非 alpha 和 gamma 因子不正确),算法会收敛,即使速度可能非常慢。这促使我跳过并评论您对 300x200 游戏空间的想法,嗯……是的!对于这样的空间,给定奖励模型,似乎需要无穷大才能获得“最佳”Q 表. 现在,从数学上讲,算法可能永远不会达到最佳 nivarna,但对于实际解决方案,处理渐近线就足够了。

3) 伽马在 TD 模型中的作用
这表明了在一条路径上(这里是你的模型,字面意思)推迟奖励的重要性,以获得更高的奖励。这通常可以防止算法陷入解决方案空间的局部最大值,但代价是学习速度更慢......

4) 帮助学习大迷宫
的建议 冒着背叛 Q-Learning 本质的风险,您可以在离目标越来越远的地方启动机器人。这将有助于它首先改进围绕目标的状态区域中的 Q 矩阵,然后利用这个部分学习的 Q 矩阵作为初始状态,在距离目标越来越大的范围内随机采用。

另一种风险更大的方法(实际上可能进一步掩盖了 Q-Learning 的真实性质)是更改 R 矩阵以提供越来越高的奖励,随机放置在距离目标越来越近的位置。这种方法的缺点是它可能会在解决方案空间中引入许多局部最大值的机会,如果没有正确调整学习率和其他因素,算法可能会卡住。

这两种方法,尤其是后者,都可以解释为您(设计师)在解决方案中的“布线”。其他人会说这只是在混合中引入少量 DP 的方式......

5) 神经网络 (NN) 6) 遗传算法 (GA)
对于将 NN 或 GA 添加到组合中没有意见。
上面的一些数学上不太准确的陈述可能让我自欺欺人了。;-)

于 2009-11-13T19:00:28.727 回答
0

- 您应该尝试更改 alpha 和 gamma 值。它们是重要的参数。

- 尝试更多剧集。

-改变探索的价值。探索太多是不好的。没有足够的探索不是goog。

于 2020-05-22T08:14:37.383 回答