Nostalgie : mémoire de Maîtrise de 1994 sur l’IA et les réseaux de neurones artificiels

Mémoire de 1994 sur le thème: Intelligence Artificielle "Une approche massivement connexioniste de l'intelligence artificielle : les réseaux neuromimétiques" J’ai récemment remis la main sur le mémoire de Maîtrise (corédigé en 1994 avec mon binôme de l’époque, coucou Xav’), dont le titre était « Une approche massivement connexionniste de l’Intelligence Artificielle : les Réseaux Neuromimétiques ». Amusant de relire tout ça 30 ans après.

Certes, il y a un côté nostalgique à le relire. On voit tout d’abord que les correcteurs d’orthographe n’étaient pas si bons que ça, et que le style était un peu potache. Mais sur le fond… ça permet de voir comment cette science a évolué. Je n’ai pas la version électronique de ce document (ça viendra peut-être un jour), aussi je ne mettrai pas le lien vers lui aujourd’hui. Mais voici tout de même quelques remarques qui m’ont frappées à sa relecture :

  • Tout d’abord, c’était sympa de relire comment était fait un neurone, comment les chercheurs en IA se sont inspirés (sans mimer à 100%) de notre système nerveux central pour créer les réseaux de neurones artificiels…
  • Il y a 30 ans, j’ai cité plusieurs modèles de réseaux prometteurs dans le monde de l’IA : les réseaux de Hopfield-Boltzmann, les réseaux de Kohonen, le recuit simulé… autant d’idées prometteuses mais dont les défauts – déjà connus à l’époque – ne semblent pas avoir trouvé de solution : ces réseaux semblent être pour l’heure tombés dans l’oubli.
  • Le prétendant de l’époque était déjà le réseau multicouche à rétropropagation d’erreur par descente de gradient. A ceci près que quelques « détails » ont changé depuis :
    • Ce qui m’a le plus frappé, c’est qu’à l’époque, on utilisait beaucoup la fonction « sigmoide » (ou parfois la fonction tangente hyperbolique) comme fonction d’activation. Pratique parce que simple : σ(x)=1/(1+exp(-x)). Elle a aussi l’avantage d’être bornée (entre 0 et 1). Et surtout, sa dérivée se calcule aisément avec elle même : σ'(x)=σ(x).(1-σ(x)).
      Or, j’ai appris qu’aujourd’hui, on utilise majoritairement la fonction ReLU (Rectified Linear Unit) qui vaut 0 si x est négatif, et qui vaut x sinon. De quoi me faire tomber de ma chaise : la fonctione ReLU(x) n’est pas bornée, sa dérivée vaut 0 pour x négatif (ça ne corrige pas beaucoup les poids dans ce cas là), … Je vois plein de défauts et pas trop d’avantages. Et pourtant, c’est elle la star des fonctions d’activation de nos jours. J’ai plein de questions, ça me donne envie de me remettre à mes études 😉
    • Beaucoup de questions de l’époque sur les meilleures méthodes d’apprentissage ont trouvé leurs réponses depuis : vaut-il mieux donner tous les exemples d’un coup, ou les répartir par lots (spoiler : mieux vaut faire des lots ; mieux encore, c’est contre intuitif, mais il faut garder les exemples les plus qualitatifs pour la fin de l’entrainement), les exemples doivent ils être donnés au hadsard (réponse connue aujourd’hui : oui, pour éviter que le réseau ne tombe dans des minimas locaux), … Certes, il reste encore plein de questions sur ce domaine, mais on voit qu’en 30 ans, il y a eu du chemin de parcouru.
    • Enfin à l’époque, s’il était admis que les réseaux multicouches étaient prometteurs et permettaient de « dresser » automatiquement des IA ayant réponse à tout, on ne savait pas encore trop les utiliser : combien fallait-il mettre de couches dans le réseau (pas sûr qu’on ait vraiment la réponse aujourd’hui) ? Mais surtout, on n’avait pas encore pensé à les utiliser pour faire des LLM (Large Language Models, la base des chats d’IA que nous utilisons de nos jours), ni les Réseaux de Neurones Récurrents (utilisés pour apprendre/prédire des séquences d’informations), ni les modèles de diffusion (utilisés pour générer ou améliorer des images)… et la liste est longue.
  • Enfin, les domaines où l’IA pouvait nous être utile était déjà bien préssentie. J’écrivais à l’époque que les applications à court terme pouvaient être « la reconnaissance de formes […], le traitement du langage naturel (ex : traduction automatique), la génération de texte, l’analyse de sentiments[…], la vision par ordinateur (détection d’objets, segmentation d’images, reconnaissance de scènes), les jeux et simulations« . Et à plus longs termes : « la robotique avancée : permettre aux robots de comprendre et d’interagir avec leur environnement de manière plus naturelle. La médecine personnalisée : […] analyser des données médicales et proposer des traitements personnalisés. L’intelligence artificielle générale : développer des systèmes capables de comprendre et de raisonner de manière générale, comme le ferait un être humain« . Tout y était déjà 🙂

J’aimerais avoir du temps pour me remplonger à nouveau dans tout ça aujourd’hui. D’autant que les questions philosophiques sous-jacentes restent les mêmes : ne jouons-nous pas à dieu à vouloir créer quelque chose à notre image, qui pourrait un jour nous dépasser ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *