我正在使用 DQN 算法来训练我的代理玩回合制游戏。在比赛结束前就可以知道比赛的获胜者。中奖条件一经满足,不可撤销。例如,游戏可能持续 100 回合,但有可能知道其中一位玩家在第 80 步时获胜,因为满足了某些获胜条件。最后 20 步不会改变游戏的结果。如果人们在玩这个游戏,他们会玩到最后,但代理不必这样做。
代理将使用记忆回放从经验中学习。我想知道,在满足中奖条件后,对经纪人有没有帮助,以获得更完整的画面?还是立即终止游戏更好,为什么?这将如何影响代理的学习?
我正在使用 DQN 算法来训练我的代理玩回合制游戏。在比赛结束前就可以知道比赛的获胜者。中奖条件一经满足,不可撤销。例如,游戏可能持续 100 回合,但有可能知道其中一位玩家在第 80 步时获胜,因为满足了某些获胜条件。最后 20 步不会改变游戏的结果。如果人们在玩这个游戏,他们会玩到最后,但代理不必这样做。
代理将使用记忆回放从经验中学习。我想知道,在满足中奖条件后,对经纪人有没有帮助,以获得更完整的画面?还是立即终止游戏更好,为什么?这将如何影响代理的学习?
您可能应该在游戏在逻辑上获胜时给予奖励。这将通过减少需要备份返回值的时间步数来帮助代理更有效地学习。
在那一点停止剧集也应该没问题,并且还可以增加一些效率,因为在体验回放中会有更集中的相关数据。从表面上看,在游戏获胜后探索或发现任何策略似乎没有任何好处,而且从评论来看,作为代理开发者,您并没有期望代理有任何行为 - 随机动作就可以了。
在获胜状态之后,代理仍然有可能从游戏中学到更多。这将需要您作为开发人员的环境和额外工作的某些事情是真实的。
例如,如果游戏有一个结束阶段,其中某种动作更常见,并且它在游戏中获得了一些东西(“胜利点数”、“金币”或一些其他编号的标记,这些标记是游戏机制的一部分,并且可能是测量),然后在发生这种情况的地方进行额外的游戏可能会引起人们的兴趣。特别是如果获得这种衡量标准的动作也可能是早期游戏中获胜动作的一部分。但是,为了让代理了解这一点,除了输赢之外,它还必须是它预测的东西。
实现这一目标的一种方法是将辅助学习系统作为代理的一部分,该系统学习预测该资源的收益(或总量)。这样的预测既可以单独学习(但与动作值非常相似)并作为输入输入 q 函数,也可以是与 q 函数(或策略函数)共享早期层但具有不同的头。将这种次要函数添加到神经网络也可以对网络产生正则化效果,因为中间特征必须对两种类型的预测都有好处。
你definitley不需要考虑这样的添加。这可能是更多的工作。但是,对于某些游戏,它可能会有所帮助。了解游戏,并了解作为人类玩家是否有任何学习经验可以在输赢之外继续玩,可能会帮助您决定是否尝试为机器人复制这种额外的体验。即使它有效,效果也可能是微乎其微的,不值得它带来的改变。例如,为更多剧集运行更基本的学习代理可能仍然会为最终游戏带来非常好的代理。这只会使您花费更多的运行时间进行培训,而不是编码工作。