【问题标题】:Teach robot to collect items in grid world before reach terminal state by using reinforcement learning使用强化学习教机器人在到达终端状态之前收集网格世界中的物品
【发布时间】:2019-06-26 21:30:24
【问题描述】:
我的问题如下。我有一个简单的网格世界:
https://i.imgur.com/2QyetBg.png
代理从标有 START 的初始状态开始,目标是到达标有 END 的终端状态。但是,代理必须避开标有 X 的障碍,并且在到达 END 状态之前它必须收集所有标有 F 的项目。我也使用 Q-Learning 和 Sarsa 来实现它,并且代理达到 END 状态并避免障碍(X 个状态)。所以这部分效果很好。
我的问题是,如何让代理在达到 END 状态之前收集所有项目(F 状态)?通过使用 Q-Learning 或 Sarsa,它可以避开障碍,达到 END 状态,但不会收集所有项目。通常访问一个 F 状态并在代理前往 END 状态之后。
感谢您的帮助!
【问题讨论】:
标签:
machine-learning
reinforcement-learning
q-learning
gridworld
sarsa
【解决方案1】:
您应该始终确保实现目标是与环境互动的最“有吸引力”的方式。您希望您的代理达到给定的目标,并且您的代理尝试最大化奖励信号,因此您需要做的就是设计一个奖励函数,正确“引导”代理执行正确的操作。
在您描述的情况下,似乎收集了最多的奖励,代理应该访问一个 F 状态然后进入 END 状态 - 所以尝试将奖励函数更改为返回更多奖励的函数访问 F 州。
我可以想象的其他奖励函数是一个返回 -1 用于访问 END 状态而不收集项目,1 用于访问 END 状态并收集项目,0 用于访问所有其他状态(或者例如 -0.02,如果您希望尽快达到目标)。
您可以使用奖励函数设计 - 我的建议是进行试验并观察代理的行为。这通常是让代理和环境更好地了解和理解的一种非常好的方式。