Building AI course project
Ce projet utilise l'algorithme NEAT (NeuroEvolution of Augmenting Topologies) pour entraîner une intelligence artificielle à maîtriser Flappy Bird. À travers des générations successives, le réseau de neurones évolue pour maximiser sa survie et son score en évitant les obstacles.
- Problème : Comment une IA peut-elle apprendre à naviguer dans un environnement dynamique avec des récompenses simples ?
- Motivation : Passionné par l'univers du jeu vidéo (comme l'illustre ce paysage de génération procédurale), je voulais comprendre comment l'évolution biologique peut être simulée par le code.
L'IA génère ses propres données via la simulation. Elle analyse l'environnement en temps réel pour prendre des décisions.
- Méthode : NeuroEvolution of Augmenting Topologies (NEAT).
- API de données : Pour des projets futurs, l'intégration d'API sociales comme Twitter pourrait permettre de partager les scores.
L'utilisateur lance l'entraînement et observe les oiseaux évoluer. L'IA doit calculer sa trajectoire en fonction de la position des tuyaux ci-dessous :
- Limites : Le modèle ne gère pas encore les changements de vitesse du jeu.
- Éthique : L'automatisation des jeux pose la question de l'intégrité dans les classements en ligne.
Ajouter une interface web pour permettre à d'autres utilisateurs de tester leurs propres configurations NEAT.
- Algorithme NEAT par Kenneth Stanley.
- Assets de jeu inspirés de l'original.
-
Cloner le projet :
git clone https://github.com/votre-username/Flappy_Bird_RL_Project.git cd Flappy_Bird_RL_Project -
Installer les dépendances :
pip install -r requirements.txt
-
Installer Graphviz (Optionnel - pour la visualisation) : Pour générer les graphiques du réseau de neurones, vous devez installer Graphviz sur votre système et l'ajouter à votre variable d'environnement PATH.
Pour entraîner l'IA, exécutez le script principal :
python main.pyCela lancera la simulation et sauvegardera le meilleur génome dans winner.pkl après 10 générations (modifiable dans main.py).
Si vous avez déjà un fichier winner.pkl, vous pouvez voir l'IA en action :
python replay.pyPour générer une image du réseau de neurones du gagnant :
python visualize.pymain.py: Point d'entrée pour l'entraînement (à la racine).src/: Code source de la logique du jeu.bird.py: Logique de l'oiseau.pipe.py: Logique des tuyaux.genealogy.py: Suivi de la généalogie.
scripts/: Outils utilitaires.replay.py: Rejouer le meilleur modèle.visualize.py: Visualisation du réseau de neurones.
config-feedforward.txt: Configuration NEAT.images/: Ressources graphiques.outputs/: Résultats de l'IA (génomes sauvegardés, graphiques).


