我已经在一个大小为(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)...
我很难想象这种行为是否有意义。有没有人遇到过这样的情况?
发布于 2016-02-23 23:38:22
Q-learning依赖于探索。
如果您正在使用e-greedy,并且您已经显著降低了epsilon,则代理不太可能能够适应。
如果状态空间中的变化与学习策略所遵循的轨迹相去甚远,那么可能很难到达这些区域。
我建议你看看你的epsilon值,以及随着时间的推移,你减少它们的速度有多快。
发布于 2015-02-19 07:14:21
我想更多的信息会让我更有把握,但你所描述的正是我所期望的。智能体已经学习(并且学得很好)了一条通向目标的特定路径。现在你已经改变了这一点。我的直觉告诉我,这对智能体来说比简单地移动目标要困难得多,因为你已经改变了你想要它获得目标的方式。
一旦移动了“墙”,您就可以在多次迭代中增加操作选择策略的随机性。这可能会减少智能体找到通向目标的新路径所需的时间。
发布于 2016-02-14 04:37:22
对于标准的Q学习算法来说,这是非常典型的。正如在Concurrent Q-Learning: ReinforcementLearning for Dynamic Goalsand Environments中所述
强化学习技术,例如时间差分学习,已经被证明在涉及导航到固定目标的任务中表现出良好的性能。然而,如果目标位置被移动,则先前学习的信息会干扰寻找新目标位置的任务,并且性能会相应地受到影响。
然而,有不同的算法,例如上述论文中描述的算法,在这种情况下做得更好。
https://stackoverflow.com/questions/27710993
复制相似问题