Mon réseau de neurones ART (1993-2024)
En 1993, en deuxième année d’école d’ingénieurs, nous faisions une recherche bibliographique sur l’intelligence artificielle. Nous avons aussi programmé un réseau de neurones : pas le perceptron des manuels, mais un réseau ART, pour Adaptive Resonance Theory.
La première version, je l’ai écrite en C, avec THINK C, sur mon Macintosh SE/30. Trente ans plus tard, en avril 2024, je l’ai retrouvée, dépoussiérée en C++ et confrontée à un vrai jeu de données. Le code est sur GitHub : yleblond/ARTNetwork.
La résonance adaptative
La théorie de la résonance adaptative, proposée par Stephen Grossberg à partir de 1976, puis développée avec Gail Carpenter, répond à un dilemme que les réseaux de neurones connaissent encore : comment apprendre des choses nouvelles sans effacer ce que l’on sait déjà ? C’est le dilemme stabilité-plasticité.
Le principe : le réseau compare chaque forme qu’il reçoit au prototype qu’il a déjà mémorisé et qui lui ressemble le plus. Si la ressemblance dépasse un seuil, la « vigilance », il y a résonance : le prototype s’affine. Sinon, le réseau se réinitialise et cherche ailleurs, jusqu’à créer une nouvelle catégorie. Il apprend sans professeur, et sans oublier.
Le code de 1993
Le programme garde la trace de son époque : des classes ARTNeuron, ARTLayer et ARTNetwork, mais des noms de variables en français (sortie, activité, poids, inhibition, excitation), des paramètres réglés à la main (une vigilance de 0,97, une plasticité de 0,035), et de petits exemples d’apprentissage : des lettres dessinées sur une grille de trois cases sur trois.
2024 : l’épreuve de MNIST
En le remettant en route, je l’ai testé sur MNIST, la base de référence de 70 000 chiffres manuscrits sur laquelle on entraîne aujourd’hui les réseaux de neurones des cours d’initiation. Le verdict tient dans le fichier README : « A naïve and rustic ART Neural Network Implementation… Not so successful 😉 ».
Peu importe : c’était le plaisir de comprendre en construisant. Et la boucle est bouclée, de cette curiosité d’étudiant aux outils d’intelligence artificielle avec lesquels je travaille aujourd’hui.
Voir aussi : des réseaux de neurones de 1993 au prix Nobel 2024, la recherche bibliographique de 1993, programmer en C sur un Mac classique : THINK C, le Macintosh SE/30.
Code : github.com/yleblond/ARTNetwork (C++, 1993, revu en 2024).