Machine learning 我的2048游戏的双DQN算法永远不会学习
我正在尝试做双DQN算法来学习玩2048游戏。如果您想检查代码,可以在GitHub中使用我的实现。() 我的代码不是学习后的基本水平。它不能实现超过256瓦。下面是我的一些预测Machine learning 我的2048游戏的双DQN算法永远不会学习,machine-learning,tensorflow,artificial-intelligence,keras,reinforcement-learning,Machine Learning,Tensorflow,Artificial Intelligence,Keras,Reinforcement Learning,我正在尝试做双DQN算法来学习玩2048游戏。如果您想检查代码,可以在GitHub中使用我的实现。() 我的代码不是学习后的基本水平。它不能实现超过256瓦。下面是我的一些预测 我使用随机播放器来训练代码。我想RL算法就是这样学习的。他们尝试所有可能的行动,从失败中吸取教训。我的猜测是,因为我使用随机移动训练它,所以代码学习非常有限 我最多试了4000集。我如何计算最佳集数 我的代码有问题 我无法用我的方法确定问题所在。我想了解一下这方面的情况 我的伪代码在这里 for e in ran
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()
我的两分钱
- RL算法不会随机学习。我建议你看一下《萨顿和巴托(第二版)》,了解各种算法的详细描述。话虽如此,我认为你链接的git代码并没有达到你的预期(为什么你有一个ES模块?你在用进化算法训练网络?)。您可能希望从这样更简单、更稳定的实现开始
- 对于一个简单的Q网络来说,2048可能是一个很难学习的游戏,因为它需要长期的规划。DQN更容易学会玩控制/即时动作游戏,如Pong或Breakout,但在需要一定计划的游戏中表现不佳(例如Pacman)