3

我在一个大小为 (nxn) 的网格上实现了 Q 学习,中间的单个奖励​​为 100。代理通过以下代理学习 1000 个 epoch 以达到目标:他以 0.8 的概率选择具有最高 state-action-value 的移动,并选择 0.2 的随机移动。在移动之后,状态-动作值由 Q 学习规则更新。

现在我做了以下实验:除了底部的邻居之外,目标旁边的所有字段都获得了 -100 的奖励。在学习了 1000 个 epoch 之后,智能体显然避免了走上坡路,并且最频繁地从下坡到达目标。

学习后,将底部邻居的奖励设置为 -100,将顶部邻居的奖励设置回 0,并在坚持状态动作值图的同时再次开始学习 1000 个 epoch。这真的很可怕!代理需要很长时间才能找到目标(在 9x9 网格上最多 3 分钟)。检查路径后,我发现代理花费大量时间在 (0,0)->(1,0)->(0,0)->(1,0) 等两个状态之间来回切换......

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

4

4 回答 4

2

Q-learning 依赖于探索。

如果您正在使用 e-greedy 并且您已显着降低了 epsilon,那么代理不太可能能够适应。

如果您在状态空间中的变化与学习策略所遵循的轨迹相去甚远,那么可能很难到达这些区域。

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

于 2016-02-23T15:38:22.230 回答
0

我想更多的信息可以帮助我更加确定,但你所描述的是我所期望的。智能体已经学习(并且很好地学习)了通往目标的特定路径。现在你已经改变了。我的直觉告诉我,这对代理来说比简单地移动目标更难,因为你已经改变你希望它达到目标的方式。

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

于 2015-02-18T23:14:20.810 回答
0

这对于标准的 Q 学习算法来说是非常典型的。正如并发 Q-Learning:动态目标和环境的强化学习中所述

强化学习技术,例如时间差异学习,已被证明在涉及导航到固定目标的任务中表现出良好的性能。然而,如果目标位置被移动,先前学习的信息会干扰寻找新目标位置的任务,并且性能会因此受到影响。

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

于 2016-02-13T20:37:22.310 回答
0

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

恕我直言,代理应该能够忘记以前学过的知识。在强化学习中不应该有“自信”之类的东西。网格看起来像

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

在最后的尝试中。在最短路径上随机撞到目标的概率是0.2*1/3 * (0.8+0.2*1/9)。基本上随机走对角线然后向下走。因此,算法应该慢慢更新Qstate 的值(1,1)。实际上更新这个值的值是在5%。如果你的学习率不是太低,它最终会更新。请注意,所有其他到达目标的路径都会慢慢地将其他路径拉向零。

你说它在前两个状态之间跳跃。这向我表明您没有折扣系数。这可能会产生两种状态(0,0)(1,0)具有相当好的Q价值但这些是“自我奖励”的情况。或者,您可能忘记在更新函数中减去旧值

于 2016-02-13T21:10:25.727 回答