All Projects → ikergarcia1996 → NeuroEvolution-Flappy-Bird

ikergarcia1996 / NeuroEvolution-Flappy-Bird

Licence: MIT license
A comparison between humans, neuroevolution and multilayer perceptrons playing Flapy Bird implemented in Python

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to NeuroEvolution-Flappy-Bird

Machine Learning Flappy Bird
Machine Learning for Flappy Bird using Neural Network and Genetic Algorithm
Stars: ✭ 1,683 (+9800%)
Mutual labels:  genetic-algorithm, flappy-bird, neuroevolution, game-programming, machine-intelligence, ai-tutorial, artificial-evolution
NEATEST
NEATEST: Evolving Neural Networks Through Augmenting Topologies with Evolution Strategy Training
Stars: ✭ 13 (-23.53%)
Mutual labels:  neat, genetic-algorithm, neuroevolution
pacman-ai
A.I. plays the original 1980 Pacman using Neuroevolution of Augmenting Topologies and Deep Q Learning
Stars: ✭ 26 (+52.94%)
Mutual labels:  neat, neuroevolution, neat-python
neuro-evolution
A project on improving Neural Networks performance by using Genetic Algorithms.
Stars: ✭ 25 (+47.06%)
Mutual labels:  neat, genetic-algorithm, neuroevolution
neat-python
Python implementation of the NEAT neuroevolution algorithm
Stars: ✭ 32 (+88.24%)
Mutual labels:  neuroevolution, artificial-neural-networks, neat-python
Hyperparameter Optimization Of Machine Learning Algorithms
Implementation of hyperparameter optimization/tuning methods for machine learning & deep learning models (easy&clear)
Stars: ✭ 516 (+2935.29%)
Mutual labels:  genetic-algorithm, machine-learning-algorithms, artificial-neural-networks
evo-NEAT
A java implementation of NEAT(NeuroEvolution of Augmenting Topologies ) from scratch for the generation of evolving artificial neural networks. Only for educational purposes.
Stars: ✭ 34 (+100%)
Mutual labels:  neat, neuroevolution, artificial-neural-networks
DeepHyperNEAT
A public python implementation of the DeepHyperNEAT system for evolving neural networks. Developed by Felix Sosa and Kenneth Stanley. See paper here: https://eplex.cs.ucf.edu/papers/sosa_ugrad_report18.pdf
Stars: ✭ 42 (+147.06%)
Mutual labels:  neat, genetic-algorithm, neuroevolution
neat-openai-gym
NEAT for Reinforcement Learning on the OpenAI Gym
Stars: ✭ 19 (+11.76%)
Mutual labels:  neat, neuroevolution, neat-python
Hippocrates
No longer maintained, actually usable implementation of NEAT
Stars: ✭ 59 (+247.06%)
Mutual labels:  neat, genetic-algorithm
Mlkit
A simple machine learning framework written in Swift 🤖
Stars: ✭ 144 (+747.06%)
Mutual labels:  genetic-algorithm, machine-learning-algorithms
Dino-AI
An AI to teach Google Chrome's dinosaur to jump obstacles.
Stars: ✭ 15 (-11.76%)
Mutual labels:  genetic-algorithm, artificial-neural-networks
Neural Network P5
Deprecated! See:
Stars: ✭ 218 (+1182.35%)
Mutual labels:  genetic-algorithm, neuroevolution
Aimandshoot
A neuroevolution game experiment.
Stars: ✭ 201 (+1082.35%)
Mutual labels:  genetic-algorithm, neuroevolution
Evolutionsimulator
Evolution Simulator with Box2D
Stars: ✭ 143 (+741.18%)
Mutual labels:  genetic-algorithm, neuroevolution
Super-Meta-MarIO
Mario AI Ensemble
Stars: ✭ 15 (-11.76%)
Mutual labels:  neat, genetic-algorithm
Tensorflow-Neuroevolution
Neuroevolution Framework for Tensorflow 2.x focusing on modularity and high-performance. Preimplements NEAT, DeepNEAT, CoDeepNEAT, etc.
Stars: ✭ 109 (+541.18%)
Mutual labels:  neat, neuroevolution
Cephalopods
Evolving squids through neuroevolution
Stars: ✭ 122 (+617.65%)
Mutual labels:  genetic-algorithm, neuroevolution
wargames
two soldiers shooting at each other, controlled by a neural network with a genetic algorithm.
Stars: ✭ 22 (+29.41%)
Mutual labels:  genetic-algorithm, artificial-neural-networks
artificial neural networks
A collection of Methods and Models for various architectures of Artificial Neural Networks
Stars: ✭ 40 (+135.29%)
Mutual labels:  machine-learning-algorithms, artificial-neural-networks

Flappy Bird: Human vs NEAT vs MLP

The goal of the project is to apply NEAT to evolve the network architecture of Deep Neural Networks for improving their performance on a given classification task, in this case the game Flappy Bird, the goal is to determine if for a given input the bird must jump or no to avoid hitting the pipes. This repository contains a Jupyter Notebook where is possible to compare a Human, a Neat implementation and a multilayer perceptron playing Flappy Bird.

INPUT

Input

For both, neuroevolution algorithm and multilayer perceptron the input is the same:

1) Distance in the X axis from the bird to the next pipe.
2) Distance in the Y axis form the bird to the lowest point of the pipe in the top.
3) Distance in the Y axis from the bird to the highest point of the pipe in the top
4) Distance in the Y axis from the bird to the top of the map.
5) Distance in the Y axis from the bird to the bottom of the map.

INPUT

Results

In this project we probe that NEAT can improve the performance of a DNN. We found that NEAT can be useful to reduce the complexity of our models. NEAT is able to produce networks that produce similar results to the MLP but much less complex. We have been able to use NEAT to reduce the complexity of our model. We went from 20 neurons and 98 weights in the MLP to 7-8 neurons and 6-10 weights, with is a huge complexity reduction.

More information available in the documentation.

INPUT

Authors

Iker García Ferrero - ikergarcia1996
Gonzalo Pierola - Guamedo

How to run

To run this project you need Python and Jupyter Notebook. Also you will need to install all the python libraries specified in the "README.md" inside the "Jupyter Notebook" folder.

Documentation

Documentation is available in the releases section with the corresponding release.

Flappy Bird Game

The implementation of the Flappy Bird Game that we used for this project is based on this code: Gamedevlapse: Create Flappy Bird in Python [Time Lapse] (youtube)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].