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