Dans Neural Bird, regardez des réseaux de neurones artificiels évoluer grâce à un algorithme génétique pour apprendre à jouer à flappy bird.
Le réseau de neurones est composé de trois entrées (la distance horizontale jusqu'au prochain tuyau, la distance verticale entre l'oiseau et le trou, et la vitesse verticale de l'oiseau), deux neurones dans la couche cachée, et un neurone dans la couche de sortie. La fonction d'activaton utilisée pour chaque neurone est la fonction sigmoide.
A chaque génération, les scores des 10 membres de la population sont évalués, puis les deux moins bons sont éliminés et remplacés par un "mélange" du meilleur et d'un autre au hasard(par "mélange", je veux dire que je prend certains poids d'un réseau de neurones et d'autres d'un autre réseau pour en former un nouveau). Et enfin, je fais "muter" certains réseaux en modifiant aléatoirement les valeurs de certains poids.
Le graphique en bas à droite montre les moyennes des scores de chaque génération.
Le programme utilise toutes les variables de A à Z, la liste 1(que vous pouvez modifier/supprimer), et les listes 10 à 13(celles-ci sauvegardent les données du programme : 10: Le meilleur réseau de neurones,11: les scores de la génération actuelle et le meilleur score,12: tous les poids des 10 réseaux de neurones de la population, 13: le nombre de générations et les moyennes des scores à chaque générations).
Le programme à lancer est NRLBIRD, et si vous voulez voir jouer le meilleur réseau de neurones que votre calculatrice a fait évoluer, ajoutez "List 10->List 1" au début du programme NRLBIRD1(et n'oubliez pas de retirer ce bout de code si vous voulez continuer l'évolution).
J'ai mis le meilleur que j'ai fait évoluer dans le programme NRLBEST, il suffit de le lancer, puis de lancer le programme NRLBIRD1 pour le voir jouer.
Ça peux prendre assez longtemps pour arriver à un bon résultat, ainsi, je conseille d'overclocker la calculatrice pour aller plus rapidement.
Waw ! L'IA a l'air d'être devenue parfaite . J'aimerais bien avoir ses valeurs pour la tester sur ma calculatrice. Normalement, si tu as interrompu le programme avant la mort du membre 1, ses valeurs n'ont pas été enregistrées dans la liste 10 mais sont restées dans la liste 1, et si tu n'as pas conservé la liste 1, elles devraient être les 11 premières valeurs de la liste 12.
Nous en parlions IRL avec Totoyo mais c'est impressionnant d'avoir ce genre de contenu sur CASIO, et en même temps c'est carrément dans l'ère du temps !
@Alexot, tu aurais le temps et la motivation pour expliquer dans les grandes lignes ou le détail ce que tu as fait avec ce programme ?
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd