如何在多代理环境中表示玩家,以便每个模型都能区分自己的玩家

人工智能 dqn 多代理系统 环境
2021-11-15 14:53:50

所以我有 2 个使用 DQN 算法训练的模型,我想在多智能体环境中训练它们,看看它们如何相互反应。这些模型是在由 0 和 1(另一个模型为 -1)组成的环境中训练的,其中 1 表示正方形已填充,0 表示空。这是一个地图填充环境,在每个步骤中,代理都可以向上、向下、向左或向右移动,并且对于每一步,它都保持活动状态,而不会变成自己(另一个是 1 或 -1)或它的环境边界获得 0.005 奖励,“死亡”获得 -1。您可以将玩家想象为游戏 Tron 中的玩家,它只是留下了痕迹。我将最后 4 帧堆叠在一起,这样它就知道哪一端是“头部”。一个特工,经过培训,我没有

现在,我将这两个模型放在一个环境中,其中有两个玩家,一个用 1 表示,另一个用 -1 表示。由于一个模型用 -1 训练,另一个用 1 训练,我认为他们可以找到自己的玩家,但是即使在训练之前,如果我只是在环境中运行模型而不进行任何探索,它们似乎会影响彼此的动作。一个直接直走就死了,另一个只转一次然后死在墙上(而在单代理环境中,这两个模型可以填充大约 30%)。如果我进行培训,他们只是随机地偏离到这种确切的行为,而似乎没有学到任何东西。所以,

1个回答

当您单独训练您的代理时,他们从未看到具有相反值 (1/-1) 的正方形。所以特工真的不知道参观那个广场会发生什么。我会尝试将 (1/-1) 添加到您基于正方形可用性的条件中。也尝试增加奖励。不看代码就很难给出建议。