【问题标题】:Q Learning w/ Galaga - Defining StatesQ Learning w/ Galaga - 定义状态
【发布时间】:2018-04-20 06:56:40
【问题描述】:

我正在努力实现Q-Learning 来构建一个人工智能来玩Galaga。 我了解Q-learning 需要状态和操作,以及用于确定状态之间移动的表格。

Q-Learning 在线的所有示例和教程似乎都是基于网格的游戏,具有易于定义的状态。但 Galaga 涉及向左、向右和向上射击,敌人在整个游戏过程中随机移动。所以,我很难定义我在Q-Learning 算法中的状态应该是什么。我考虑过将船的每个潜在位置都视为一个状态,或者可能使状态取决于存活的敌人数量。我什至考虑过为每一帧游戏设置状态,但这显然成本太高了。

如果有人对q-learning 有更好的理解,我将不胜感激,可以帮助我定义我的状态应该是什么。我也理解奖励的必要性,但我不完全确定逐帧的奖励是什么,因为游戏分数只有在敌人被杀死时才会增加。也许是游戏分数和帧数的一些功能。

感谢您的帮助!

【问题讨论】:

    标签: q-learning


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-23
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多