Q学习w / Galaga - 定义国家

时间:2018-04-20 06:56:41

标签: q-learning

我正致力于Q-Learning的实施,以建立一个玩Galaga的ai。 我理解Q-learning需要状态和操作,以及表来确定状态之间的移动。

Q-Learning在线的所有示例和教程似乎都适用于基于网格的游戏,具有易于定义的状态。但是Galaga涉及向左,向右和向上移动,敌人在整个游戏过程中随机移动。因此,我无法定义Q-Learning算法中的状态应该是什么。我已经考虑过让这艘船的每个潜在位置都成为一个州,或者可能让各州依赖于仍然活着的敌人数量。我甚至认为每个游戏框架都有状态,但这显然太昂贵了。

如果对q-learning有更好理解的人能够帮助我定义我的州应该是什么,我会很感激。我也理解奖励的必要性,但我并不完全确定奖励是逐帧的,因为只有当敌人被杀时游戏得分才会增加。也许是gamescore和framecount的一些功能。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Galaga在特定时间步骤的“状态”必须包括您的代理的位置以及敌人的位置。如果您所知道的唯一状态是其自己的位置,您的代理将无法有效学习。否则,它将如何学习何时开火?如果敌人在每场比赛中以相同的方式产生和移动,那么帧数可以用作跟踪敌人所在位置的方式。

虽然Q-learning可以保证解决有限状态空间的问题,但是这个游戏的状态空间(你的位置加上敌人位置的所有不同的可能排列)可能太大了,无法让vanilla Q-learning在合理的时间。

使用Q学习解决大状态空间问题的一种方法是使用函数逼近。我们的想法是,您不会将每个独特的状态视为一个孤岛,而是尝试识别状态之间的相似性,以便您可以使用从看到类似状态获得的经验,在您从未体验过的状态中采取明智的行动。使用函数逼近,结合卷积神经网络,在DeepMind's famous paper中的附近大纲中进一步解释,其中他们概述了一种称为深度Q学习或DQN的算法来解决类似的Atari游戏。