我想实现一个强化学习连接四个代理。 我不确定该怎么做以及它应该是什么样子。我熟悉强化学习的理论方面,但不知道应该如何实现。
应该怎么做? 我应该使用 TD(lambda) 还是 Q-learning,MinMax 树是如何参与其中的? 我的 Q 和 V 功能如何工作(行动质量和状态值(value))。我如何给这些东西打分?我改进的基本策略是什么,我的模型是什么? 另一件事是我应该如何保存状态或 statesXactions(取决于学习算法)。我应该使用神经网络吗?如果是,怎么做?
我正在使用 JAVA。
谢谢。
最佳答案
这可能是一个比您想象的更难的问题,原因如下:
游戏的 Action 空间是选择将棋子放入其中的列。游戏的状态空间是一个 MxN 网格。每列最多包含分配给 2 个玩家的 M 个棋子。这意味着有 (2M+1-1)N 个状态。对于标准的 6x7 板,这大约是 1015。因此,您不能直接将强化学习应用于问题。状态值函数不平滑,因此朴素的函数逼近是行不通的。
但并非所有都丢失了。一方面,您可以通过分离 Action 空间来简化问题。如果你单独考虑每一列的值,基于它旁边的两列,你将 N 减少到 3,状态空间大小减少到 106。现在,这是非常易于管理的。您可以创建一个数组来表示此值函数,并使用简单的 RL 算法(例如 SARSA)对其进行更新。
请注意,游戏的返回非常延迟,因此您可能希望使用资格跟踪来加速学习。
关于java - 想实现一个强化学习连接四个agent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801136/