gpt4 book ai didi

machine-learning - 我的 2048 游戏的 Double DQN 算法永远不会学习

转载 作者:行者123 更新时间:2023-11-30 08:59:50 26 4
gpt4 key购买 nike

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

我的代码不是在基础级别之后学习的。它无法达到超过 256 格。我的一些预测如下。

  1. 我正在使用随机播放器来训练代码。我猜强化学习算法就是这样学习的。他们尝试所有可能的行动并从失败中吸取教训。我疯狂猜测,因为我使用随机移动来训练它,所以代码学到的东西非常有限。
  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()

最佳答案

我的两分钱,

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

  • 对于简单的 Q 网络来说,2048 可能是一个很难学习的游戏,因为它需要长期规划。 DQN 更容易学习玩 Pong 或 Breakout 等控制/即时 Action 游戏,但在需要一定程度规划的游戏(例如 Pacman)上表现不佳。

关于machine-learning - 我的 2048 游戏的 Double DQN 算法永远不会学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44942285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com