Q学习:改变环境后重新学习

时间:2014-12-30 18:57:56

标签: algorithm machine-learning artificial-intelligence reinforcement-learning q-learning

我已经在大小(n x n)的网格上实现了Q学习,中间只有一个奖励100。代理人通过以下机构学习1000个历元以达到目标:他以概率0.8选择具有最高状态 - 动作 - 值的移动并选择随机移动0.2。移动后,状态操作值由Q学习规则更新。

现在我做了以下实验:除了底部的邻居之外,目标旁边的所有字段都获得-100的奖励。在学习了1000个时代之后,代理人明显避免走向最高位并从最底层到达目标。

在学习之后将底部邻居的奖励设置为-100并将顶部邻居设置为0并且在坚持状态动作值映射的同时再次开始学习1000个时期。 这真的太可怕了!代理需要很长时间才能找到目标(在9x9网格上最多3分钟)。检查路径后,我看到代理人花了很多时间在两个状态之间反弹,如(0,0) - >(1,0) - >(0,0) - >(1,0) ...

我很难想象这种行为是否有意义。有人经历过这样的情况吗?

4 个答案:

答案 0 :(得分:2)

Q-learning取决于探索。

如果您正在使用e-greedy且显着降低了epsilon,则代理程序不太可能适应。

如果状态空间的变化远离学习政策所遵循的轨迹,则可能难以到达这些区域。

我建议你看一下你的epsilon值以及你随着时间的推移减少它们的速度。

答案 1 :(得分:0)

我想更多的信息可以帮助我成为更多的证书,但你所描述的是我所期待的。代理人已经学习(并且很好地学习)了目标的特定路径。现在你已经改变了。我的直觉告诉我,对于代理人而言,这比仅仅移动目标更难,因为你已经改变了 你希望它如何实现目标。

移动“墙”后,您可以为多次迭代增加操作选择策略的随机性。这可能会减少代理找到目标的新路径所需的时间。

答案 2 :(得分:0)

这对于标准的Q学习算法来说非常典型。正如Concurrent Q-Learning: ReinforcementLearning for Dynamic Goalsand Environments中所述:

  

强化学习技巧,例如时间差异   学习,已被证明在任务中表现出良好的表现   涉及导航到固定目标。但是,如果目标位置   移动后,先前学习的信息会干扰任务   找到新的目标位置和性能会受到相应的影响。

然而,有不同的算法,例如在上述论文中描述的那种在这种情况下做得更好。

答案 3 :(得分:0)

你能提供代码吗?对我来说这种行为看起来令人惊讶。

Imho代理人应该能够忘掉以前学过的知识。在强化学习中不应该有“信心”之类的东西。网格看起来像

00000
00--0
0-+-0
0---0
00000

在最后的尝试中。 在最短路径上随机进入目标的概率为0.2*1/3 * (0.8+0.2*1/9)。基本上随机走向对角然后下降。因此,算法应该慢慢更新状态Q的{​​{1}}值。实际上,更新此值的值为(1,1)。如果您的学习率不是太低,它最终会更新。注意到达目标的所有其他路径将慢慢将其他路径拉向零。

你说它在前两个州之间跳跃。这向我表明你没有折扣因素。这可能会导致两个状态5%(0,0)具有相当不错的(1,0)值,但这些状态是“自我奖励”。或者,您可能忘记在更新函数中减去旧值