【问题标题】:Improving Q-Learning改善 Q 学习
【发布时间】:2009-11-13 17:43:52
【问题描述】:

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

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

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

  1. 使用 Q-Learning 时,有点像 神经网络,我必须做 学习阶段之间的区别 和使用阶段?我的意思是,看起来 他们第一次展示的 图片是学习的,在 第二张图片使用一张。
  2. 我在某处读到它需要一个 可以到达的无限步数 最佳 Q 值表。就是它 真的?我会说这不是真的,但我 这里一定漏掉了什么。
  3. 我也听说过 TD(Temporal 差异),这似乎是 由以下表示 表达式:

    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 得出这个结论可能需要很长时间?

【问题讨论】:

  • 您在这里使用 q-learning 有什么特别的原因吗?寻找穿过障碍物的路径是一个经典的规划/转向问题,相比之下,学习算法不太适合。
  • 是的,这必须通过 Q-Learning 完成,因为这是我大学的一个项目。我必须通过 Q-Learning 来做到这一点。

标签: language-agnostic artificial-intelligence genetic-algorithm reinforcement-learning


【解决方案1】:

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

1) Q-Learning 一个两阶段的东西?
是的,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 没有意见。
上面的一些数学上不太准确的陈述可能让我自欺欺人了。 ;-)

【讨论】:

    【解决方案2】:

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

    -尝试更多剧集。

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

    【讨论】: