改善Q-Learning

时间:2009-11-13 17:43:52

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

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

我使用的是here找到的算法,可以在下面的图片中看到。

alt text alt text

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

  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值函数近似值?
  6. 您认为遗传算法吗? 会产生良好的效果 情况,使用Q值矩阵 作为它的基础?我怎么能 测试我的健身功能?它给我的印象是GA通常用于更随机/复杂的事物。如果我们仔细观察,我们会注意到Q值遵循一个明确的趋势 - 在目标附近有较高的Q值,而在距离它们较远的地方有较低的Q值。试图通过GA得出这个结论可能会花费太长时间?

2 个答案:

答案 0 :(得分:5)

我不是这方面的专家,但我会在你的许多问题上直接回复 。 [顺便说一句,我应该为每个问题得到多个+代表!......开个玩笑,如果我在“为SO代表”,我会保持清楚发布,这将获得总共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添加到混合中的意见 我可能已经用上面一些不太合理的语句做了我自己的傻瓜。 ; - )

答案 1 :(得分:0)

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

-尝试更多剧集。

-更改勘探值。太多的探索探索是不好的。没有足够的探索也不是傻子。