GithubHelp home page GithubHelp logo

flappybirdddqn's Introduction

Playing Flappy Bird Using Deep Reinforcement Learning (Based on Double Q Learning and DDQN)

We rewrite the code from Flood Sun's Framework based on Double Q Learning(but we use a Q-network to replace Q-function) and DDQN with these changes:

  • 1,every t episodes draw a terminal-reward figure

DDQN

  • 2,try another epsilon-greedy algorithm to fit this game.

We still have these problems:

  • 1,The agent's behavior is not good enough after training(try
    policy-based algorithm in the future).

  • 2,How can we achieve to use the less episodes to train the agent.

  • 3,It could easily fall into local optimum(we try to change the
    epsilon-greedy algorithm but it improves a little).

  • 4,If the training results satisfy a kind of distribution. The training result is so discrete, we are not able to ensure train a promising robot in a certain episodes.

  • 5,It seems to have over-fitting problem.

Result

DDQN-1600episodes

About the code

As a reinforcement learning problem, we knows we need to obtain observations and output actions, and the 'brain' do the processing work.

Therefore, you can easily understand the BrainDDQN.py code. There are three interfaces:

  1. getInitState() for initialization
  2. getAction()
  3. setPerception(nextObservation,action,reward,terminal)

the game interface just need to be able to feed the action to the game and output observation,reward,terminal

Disclaimer

This work is based on the repo: floodsung /DRL-FlappyBird

flappybirdddqn's People

Contributors

garrentdstrc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.