Vie artificielle
Des poissons qui apprennent à se nourrir, des espèces qui se mangent entre elles, des voitures qui apprennent un circuit. Les premiers réseaux de neurones, écrits à la main en Python pendant la prépa.
Aucune bibliothèque d’apprentissage dans ces programmes : les réseaux sont des listes de poids, les mutations des additions de bruit, la sélection une boucle. C’est la forme la plus naïve de l’évolution artificielle, et c’est pour cela qu’on y voit tout.
Le TIPE. Le travail d’initiative personnelle encadré de la prépa portait sur une population marine. Chaque poisson voit son environnement par une série de radars disposés en éventail, qui détectent les murs et la nourriture ; un petit réseau de neurones transforme ces détections en deux commandes, avancer et tourner. Les poissons dépensent de l’énergie en nageant et meurent de faim. Quand l’un d’eux mange, il se reproduit : un nouveau poisson naît avec une copie mutée de son réseau. Personne n’enseigne rien, et pourtant, au fil des générations, les poissons qui restent sont ceux qui vont vers la nourriture.
Sélection naturelle. Une version plus large : plusieurs espèces aux noms tirés au hasard, chacune avec sa taille et sa vitesse, de la nourriture qui apparaît en continu, et des prédateurs qui ne peuvent manger que des proies assez petites. Entrée fait apparaître une nouvelle espèce. L’hybridation et la fuite devant les prédateurs sont restées à faire.
Apprentissage par récompense. Des sujets entre des « biens » à toucher et des « maux » à éviter, un score, et le meilleur réseau gardé d’une génération à l’autre. Les notes de travail posent déjà les bonnes questions : donner la vitesse et la direction en entrée, sauvegarder le meilleur réseau, mesurer la proximité de surface à surface plutôt que de centre à centre.
Voitures. On dessine à la souris les bords d’un circuit et ses points de passage, puis une population de voitures, chacune pilotée par son réseau, apprend à le parcourir par mutations successives. La liste des améliorations prévues ressemble à un sommaire du sujet : croisement entre parents choisis selon leur score, taux de mutation qui s’adapte quand la progression stagne, circuits générés au hasard, courbes de score par génération.
La plupart de ces idées ont fini par être écrites, des années plus tard et sur GPU, dans les algorithmes génétiques ; le renforcement, lui, entraîne les bots de BlitzVolley.
Projet privé, pas de lien public
