Replicating Deep RL papers by DeepMind for the Atari Breakout game. Uses the OpenAI gym environment and Keras for Deep Learning models.
Deep Q-Network (DQN)
Double Deep Q-Network (DDQN)
Dueling Deep Q-Network (Dueling DDQN)
Asynchronous Advantage Actor Critic (A3C)
To train a Q-Learning model,
python DQN.py
Specify within the code if double = True
for Double DQN or Dueling = True
Dueling DQN.
The exact hyperparameters are according to the paper but are all commented within the code.
To train the A3C model,
python A3C.py
Specify whether lstm = True
for a final lstm layer.
Training summary will be outputted to Tensorboard. To visualize,
tensorboard --logdir /summary
To evaluate a trained Q-Learning model,
python DQNEvaluator.py
Specify the number of games (default games = 1
) and whether to render (default True
).
To evaluate a trained A3C model,
python A3CEvaluator.py
Specify the number of games (default games = 1
) and whether to render (default True
).
Playing Atari with Deep Reinforcement Learning:
https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
Human-level control through deep reinforcement learning:
https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15NatureControlDeepRL.pd
Deep Reinforcement Learning with Double Q-learning:
https://arxiv.org/pdf/1509.06461.pdf
Dueling Network Architectures for Deep Reinforcement Learning:
https://arxiv.org/abs/1511.06581
Asynchronous Methods for Deep Reinforcement Learning:
https://arxiv.org/abs/1602.01783
https://becominghuman.ai/lets-build-an-atari-ai-part-1-dqn-df57e8ff3b26
https://medium.freecodecamp.org/an-introduction-to-deep-q-learning-lets-play-doom-54d02d8017d8