Awesome Open Source
Awesome Open Source

Deep Q Network

An implementation of q algorithm of Reinforcement Learning.

Installation Dependencies:

  1. Python 3
  2. TensorFlow 1.0.1
  3. pygame
  4. gym

How to Run?

git clone
cd dqn

Tricks for flappybird

Remove background image: remove-bg

clip useless part: clip

resize and using binary image: bin

decayed ε-greedy exploration, and when exploration, 0.95 probability to do nothing(because in flappy bird, most time wo do nothing). This is very important. It makes model converge in less than 2 hours.

def egreedy_action(self, state):
    if random.random() <= self.epsilon:
        if random.random() < 0.95:
            action_index = 0
            action_index = 1
        # action_index = random.randint(0, self.num_actions - 1)
        action_index = self.action(state)
    if self.epsilon > self.final_epsilon:
        self.epsilon *= self.decay_factor
    return action_index


  1. DeepLearningFlappyBird
  2. Guest Post (Part I): Demystifying Deep Reinforcement Learning
  3. UCL Course on RL
  4. A Painless Q-Learning Tutorial
  5. DQN 从入门到放弃1 DQN与增强学习

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python (1,123,251
Machine Learning (29,964
Reinforcement Learning (3,769
Q Learning (472
Related Projects