【问题标题】:My Double DQN algorithm for 2048 game never learns我的 2048 游戏的双 DQN 算法从不学习
【发布时间】:2017-07-06 07:24:42
【问题描述】:

我正在尝试制作双 DQN 算法来学习玩 2048 游戏。如果你想检查代码,我的实现可以在 GitHub 中找到。 (https://github.com/codetiger/MachineLearning-2048)

我的代码在基础级别之后没有学习。它无法实现超过 256 瓦。我的一些预测如下。

  1. 我正在使用随机播放器来训练代码。我猜 RL 算法就是这样学习的。他们尝试所有可能的举动并从失败中吸取教训。我猜测是,因为我使用随机动作训练它,所以代码学习非常有限。
  2. 我尝试的最大集数是 4000。如何计算最佳集数。
  3. 我的代码有问题。

我无法用我的方法找出问题所在。想对此有所了解。

我的伪代码在这里。

    for e in range(EPISODES):
        gameEnv.Reset()
        state = gameEnv.GetFlatGrid()
        state = np.reshape(state, [1, state_size])
        reward = 0.0
        prevMaxNumber = 0

        while True:
            action = agent.get_action(state)
            (moveScore, isValid) = gameEnv.Move(action + 1)

            next_state = gameEnv.GetFlatGrid()
            next_state = np.reshape(next_state, [1, state_size])

            if isValid:
                # Reward for step score
                reward += moveScore

                # Reward for New Max Number
                if gameEnv.GetMaxNumber() > prevMaxNumber:
                    reward += 10.0
                    prevMaxNumber = gameEnv.GetMaxNumber()

                gameEnv.AddNewNumber()
            else:
                reward = -50.0

            done = gameEnv.CheckGameOver()
            if done:
                reward = -100.0

            agent.append_sample(state, action, reward, next_state, done)
            agent.train_model()
            state = next_state

            if done:
                agent.update_target_model()

【问题讨论】:

    标签: machine-learning tensorflow artificial-intelligence keras reinforcement-learning


    【解决方案1】:

    我的两分钱,

    • RL 算法不会随机学习。我建议您查看“Sutton and Barto (Second Edition)”,以详细了解各种算法。话虽如此,我认为您链接的 git 代码并没有达到您的预期(为什么您有 ES 模块?您是否使用进化算法训练网络?)。您可能希望从像 https://yanpanlau.github.io/2016/07/10/FlappyBird-Keras.html 这样的更简单、更稳定的实现开始。

    • 2048 可能是一个简单的 Q 网络难以学习的游戏,因为它需要长期规划。 DQN 学习玩 Pong 或 Breakout 等控制/即时动作游戏要容易得多,但在需要一定计划的游戏(例如 Pacman)上表现不佳。

    【讨论】:

      猜你喜欢
      • 2019-10-28
      • 2023-01-09
      • 2015-03-17
      • 2017-10-03
      • 2015-02-10
      • 2017-10-16
      • 2019-12-17
      • 2011-03-30
      • 1970-01-01
      相关资源
      最近更新 更多