Par G.Bernard & J.Feat, 1999.
Dans ce cours, destiné avant tout à des programmeurs, on privilégiera les aspects cybernétique et informatique des RN : autrement dit, on considèrera qu’il s’agit là d’une technique de programmation particulière, distincte de la programmation classique (dite symbolique), où, au lieu de la trilogie structures de données, données et structures de contrôle, on trouvera la trilogie architecture, processeurs et dynamique.
Introduction
On appelle réseau neuromimétique (ci-après RN) une conceptualisation qui ressort de plusieurs disciplines : l neurobiologie, qui étudie le système nerveux des animaux et fournit des hypothèses sur leur fonctionnement et leur architecture ; la chimie, qui fournit des hypothèses sur le fonctionnement des systèmes physiques dont les systèmes nerveux sont un cas très particulier (thermodynamique, électromagnétisme) ; les mathématiques, auxquelles les uns et les autres font appel pour formaliser leurs hypothèses ; la cybernétique, qui applique ces hypothèses pour donner à des machines abstraites la capacité d’auto-adaptation et d’apprentissage ; l’informatique, qui implémente les algorithmes cybernétiques sous forme de programmes divers (séquentiels, acteurs, parallèles), et l’électronique, qui les implémente en hard. D’autres disciplines encore ont leur place dans ce panorama, comme la statistique qui, partie de problèmes différents, mais ayant à traiter de données de nature similaire à celles que traitent les programmes neuromimétiques, a élaboré des modèles parfois très proches. Dans la littérature, un réseau neuromimétique est présenté comme un modèle mathématique, rendant compte d phénomènes neurobiologiques et/ou physico-chimiques, et dont découle une implémentation.
Les informaticiens ont avant tout considéré les algorithmes implémentant des modèles neuromimétiques comme des outils permettant de traiter toutes sortes de données complexes, où la sortie n’est pas une fonction déterministe des entrées, et où l’ensemble des entrées n’est pas systématiquement connu. Les premières applications (au début des années 50) ont porté sur la reconnaissance de formes (sons et images) ; à partir des années 70, on a commencé à s’intéresser également au traitement de données symboliques complexes (essentiellement le langage naturel). Les programmeurs prennent donc des libertés importantes :
vis-à-vis des phénomènes modélisés, parce qu’ils ont en vue des applications spécifiques dont les contraintes pratiques les entraînent loin de l’origine du modèle ; par exemple, le fait que certains modèles (ex. rétropropagation) ne correspondent pas à l’état actuel de nos connaissances en neurobiologie, ne leur retire pas leur intérêt informatique.
vis-à-vis du modèle mathématique, parce qu’il laisse dans l’ombre plein de détails cruciaux pour l’implémentation, et qu’à l’inverse un certain nombre de paramètres du modèle sont inutiles.
La programmation neuromimétique s’oppose à la programmation symbolique en particulier en ce que cette dernière pose deux conditions préalables pour la résolution d’un problème :
(1) Les entrées et les sorties doivent être clairement définies.
(2) La correspondance entre entrées et sorties doit être clairement définie.
Or pour bon nombre de problèmes, qu’on appellera des problèmes complexes, la condition (2) n’est pas réalisable en pratique. Pour la programmation neuromimétique (comme pour les algorithmes génétiques) cette condition n’est pas nécessaire ; cette technique de programmation est donc particulièrement adaptée à la résolution de problèmes La cybernétique des réseaux neuromimétiques complexes. 1996/1997 G.Bernard & J.Feat.
Parmi les RN, la famille la plus connue (perceptron multicouche, rétropropagation) remplace la condition (2) par la condition (2′)
(2′) La correspondance entre entrées et sorties est stable dans le temps.
D’autres RN ne postulent aucune condition, soit parce qu’ils sont conçus pour supporter une instabilité temporelle (ex. typique ART), soit parce qu’ils sont couplés à des mécanismes symboliques qui servent de garde-fou. Grâce à l’absence de définition préalable de la correspondance entre entrées et sorties, les RN peuvent de plus être utilisés comme dispositifs d’expérimentation. En revanche, la programmation symbolique ne permet que de vérifier aposteriori la validité d’une hypothèse qui a été implémentée. En cela, les RN se rapprochent des outils statistiques, qui eux aussi permettent de faire des tests sans avoir précisé toutes ses hypothèses.
Le revers de la médaille est le fait que les RN aboutissent à une solution sans que le programmeur maîtrise l manière dont elle a été découverte. En effet, beaucoup de paramètres influent sur la résolution d’un problème donné : choix du modèle de RN (il y en a plusieurs centaines, dont certains fort différents), choix des paramètres (certains modèles font intervenir plusieurs dizaines de paramètres à fixer par le programmeur et l’utilisateur), choix pédagogiques (quelles données présenter lors de l’apprentissage, et dans quel ordre).
L’interprétation des résultats n’est pas simple, et suppose une certaine maîtrise (aposteriori) des paramètres qui sont intervenus. Actuellement, il n’y a pas ou peu de lignes directrices dans cette technique de programmation ; la plupart du temps, l’informaticien teste plusieurs méthodes différentes, et s’arrête quand les résultats lui semblent suffisamment bons ; mais, s’agissant de problèmes complexes, il ne peut pas toujours être assuré que la qualité des résultats restera la même dans une utilisation réelle. La programmation symbolique s’est entourée d’outils d traçage et continue à sophistiquer les environnements de programmation ; la programmation neuromimétique n dispose encore que d’outils rudimentaires en ce domaine. C’est pour cette raison qu’on abordera, dans ce cours, une variété de modèles et qu’on s’attachera à les décrire d point de vue cybernétique, pour en souligner les ressemblances et les différences.
Le principe fondamental d la programmation neuromimétique est que la correspondance entre une entrée et sa sortie est découverte au cours d’une procédure d’apprentissage effectuée par le RN. Les données qui nécessitent la mise en oeuvre d’un RN sont des données complexes, chaque fois différentes, qu’on appellera singularités ; elles sont complexes au sens où elles comprennent un grand nombre de caractéristiques (par exemple, pour l’image, la luminosité et la couleur de chaque pixel) dont on ne sait pas, au départ, lesquelles vont être pertinentes pour calculer la sortie ; elles sont singulières dans la mesure où il y a peu de chance qu’une entrée à reconnaître soit absolument identique à une des données apprises (ex. caractères manuscrits). Pour chaque singularité on doit donc fournir au RN la description la plus fournie possible, sous forme d’un ensemble de caractéristiques numériques. Les premières sorties seront déterminées plus ou moins aléatoirement. L’expérience acquise par le RN diminue le caractère aléatoire des sorties : l RN possède une mémoire à long terme (modifiable), qui lui indique quelles ont été les caractéristiques les plus souvent utilisées ; celles-ci sont examinées en priorité, sans que rien n’empêche un changement de priorité (local, pour traiter des exceptions, ou global, pour l’apprentissage).
1. On peut rapprocher cet apprentissage de celui des réflexes conditionnés à la Pavlov : la loi de Hebb qu’on invoque la plupart du temps comme modèle de l’apprentissage neuronal en est un lointain descendant. G.Bernard & J.Feat La cybernétique des réseaux neuromimétiques 1996/97
Le RN confronte chaque nouvelle entrée à sa mémoire à long terme, détermine sa sortie en fonction de l ressemblance entre cette entrée et le souvenir qu’il a des traitements précédents, et en fonction de l’importance attribuée à chaque caractéristique de l’entrée ; dans la procédure d’apprentissage, il modifie éventuellement sa mémoire. L’apprentissage est dit supervisé si l’utilisateur a contrôlé directement chaque association d’une sortie avec une entrée (ex. Adaline, Perceptron, Réseau à rétropropagation), non supervisé sinon (ART, Kohonen). Dans tous les cas se posent des problèmes de pédagogie ; en effet, la sélection des entrées, l’ordre de présentation, le nombre de présentations et le temps de présentation de chaque entrée influent sur le résultat de l’apprentissage (l’état final de la mémoire du RN).
Un RN, du point de vue architectural, c’est un ensemble d’unités de traitement (de processeurs) qui fonctionnent en parallèle synchrone (dans la plupart des modèles) ou asynchrone. Certaines unités reçoivent les caractéristiques de la singularité d’entrée, ce sont les capteurs. Le traitement du signal produit par les capteurs est assuré par un ensemble d’unités, dont chacune traite une partie du problème en fonction de sa mémoire des traitements précédents, ce sont les attracteurs. Chaque attracteur2 reçoit du signal provenant des entrées, par l’intermédiaire de connexions avec les capteurs ; sa mémoire lui indique quelles connexions ont été déterminantes par le passé, en associant à chaque connexion une pondération (nombre réel), et à partir de là il calcule son état de sortie, qui représente le degré de familiarité que l’attracteur présente avec l’entrée (ou force d’attraction). Par conséquent, en présence d’une entrée donnée, l’ensemble des attracteurs réagit en se mettant dans un certain état, dit état attracteur (comme pour les automates cellulaires) ; c’est cet état qui constitue la sortie du RN ; la mémoire à long terme de l’ensemble des attracteurs constitue la mémoire du RN. Si le RN se met dans le même état attracteur lors de la présentation de singularités appartenant au même type, o qualifie ce RN d classificateur (il fabrique des classes de singularités) ; si l’état attracteur est interprétable comme une singularité, on le qualifie d’associateur (il associe à une singularité une autre singularité) ; un même RN peut être à la fois classificateur et associateur.
Le traitement d’une singularité par un RN classificateur s’oppose à son traitement dans un environnement orienté objets : dans ce dernier cas, on crée un objet (une instance) pour représenter la singularité, et on lui attribue éventuellement des caractéristiques propres, en plus de celles qu’il hérite de sa classe. Dans le traitement neuromimétique, on ne connaît pas la classe de la singularité, on ne sait à quel type elle appartient : la singularité est représentée simplement par ses propriétés ou caractéristiques ; le programme reconstruit la classe à partir des caractéristiques communes à un certain nombre de singularités (celles qui seraient héritées dans un environnement objet).
2. Un neurone naturel reçoit un signal accumulé autour des dendrites (connexions d’entrée), et produit, autour des axones (connexions de sortie), une décharge seuillée. Un ensemble de neurones donné forme une couche qui se trouve dans une configuration donnée, et qui, à la réception d’un signal d’entrée, se met dans une configuration qui représente l’état attracteur correspondant à ce signal. Cette couche est donc attractrice, c’est pourquoi, par abus de langage, je parle ici de neurones attracteurs. La cybernétique des réseaux neuromimétiques 1996/1997 G.Bernard & J.Feat
Vocabulaire :
Singularité : forme d’entrée d’un réseau de neurone, représentée par un vecteur de caractéristiques.
Caractéristique : propriété numérisée d’une singularité
Type : regroupement de singularités similaires par certaines caractéristiques (pas toujours les mêmes).
Réseau neuromimétique (ou réseau de neurones formels, ou par abus de langage réseau de neurones) : technique de programmation qui comporte trois aspects fondamentaux, (a) des unités (processeurs) appelés neurones (formels), (b) une structure qui lie ces éléments par des connexions, appelée architecture, (c), une dynamique qui gère les interactions entre ces éléments selon l’architecture.
Neurone : au sens étroit, processeur calculant sa sortie en fonction d’une mémoire modifiable (par apprentissage) plus largement, processeur calculant sa sortie autrement qu’un simple tampon ; encore plus largement, n’importe quelle unité d’un réseau neuromimétique.
Connexion : le signal circule entre les unités à travers les connexions, qui définissent l’architecture ; chaque connexion possède une direction, qui définit dans quel sens le signal circule.
Pondération : nombre qui détermine si le signal qui provient ou qui part d’une connexion doit être amplifié o atténué, s’il doit être excitateur (signal positif) ou inhibiteur (signal négatif) pour le neurone.
Pondération mémorielle : la mémoire d’un attracteur est constituée de pondérations sur les connexions par lesquelles il reçoit des signaux, qui expriment l’importance que cet attracteur attribue à chacun de ces signaux. Ces pondérations sont mémorisées, et ajustées pendant l’apprentissage.
Pondération dynamique : pondération qui n’est pas mémorisée, mais calculée dynamiquement en fonction de l’état global d’un ensemble de connexions (comme dans le cas où un neurone qui reçoit du signal en provenance de 100 connexions à pondération dynamique divise le signal en provenance de chacune par 100).
Activation : nombre caractérisant l’état d’un neurone, calculé à partir de l’excitation et de l’inhibition reçues, et qui sert à calculer sa sortie.
Excitation : quantité de signal positif reçu par un neurone.
Inhibition : quantité de signal négatif reçu par un neurone.
Sortie : signal numérique qu’un neurone propage sur ses connexions de sortie, vers d’autres neurones (ou vers lui-même).
Capteur : neurone (au sens large ; souvent un tampon) chargé de saisir une caractéristique de la singularité.
Couche d’attraction : ensemble de neurones dont l’état représente, après application d’une singularité au réseau, son état attracteur, qui peut représenter le type auquel appartient cette singularité (RN classificateur), ou une autre singularité (RN associateur).
Attracteur : neurone faisant partie d’une couche d’attraction ; un capteur peut être aussi attracteur.
Architecture : structure du réseau en terme de types d’éléments utilisés, et de types de connexions les réunissant. Processeurs : éléments d’un réseau neuromimétique.
Dynamique : comportement du réseau (interaction entre neurones) ; se décompose en deux phases successives, (a) fonctionnement, (b) apprentissage.
Fonctionnement : se décompose en (a) saisie, (b) attraction.
Saisie : analyse par les capteurs des caractéristiques de la singularité en entrée.
Attraction : fonctionnement des couches d’attraction.
Apprentissage : se décompose en (a) initialisation, (b) évolution. Cette phase est parfois absente de certains réseaux.
Initialisation : détermination de l’état initial de la mémoire de chaque attracteur au moment de sa création.
Évolution : mise à jour de la mémoire de chaque attracteur.
G.Bernard & J.Feat « La cybernétique des réseaux neuromimétiques ». 1996/97
Conventions :
Une majuscule de type X désigne un vecteur, une minuscule de type x ou de type xi un élément du vecteur X.
Le vecteur de caractéristiques représentant la singularité est noté X. Le vecteur représentant l’état de sortie des capteurs est noté C, celui représentant l’état de sortie des attracteurs est noté A. On fait courir par convention l’indice i sur les caractéristiques et sur les capteurs (xi e ci), et l’indice j sur les attracteurs (aj). Dans la littérature, les capteurs sont simplement représentés par i et les attracteurs par j (donc i = ci e j = aj) – c’est quelquefois l’inverse. Dans le cas où il y a un attracteur gagnant, on le note aj* ou simplement j*. Le nombre de capteurs est noté n, celui des attracteurs m.
Le vecteur de pondérations représentant la mémoire de l’attracteur aj est noté Mj ; sauf dans le cas où il y plusieurs mémoires : on les notera selon leur fonction.
Les seuils sont notés £m, et, s’il y a un seuil par neurone, £mj.
Act(xj), ou par simplification Actj, note l’activation du neurone xj. Sortie(xj), ou par simplification Sortiej, note son signal de sortie. Sauf indication explicite du contraire, Sortie Actj.
Les connecteurs logiques sont préfixés, par ex. (ET x y). Ils peuvent être appliqués à des scalaires, ou à des vecteurs, par ex. (ET X Y) est le vecteur dont les composantes sont (ET xi yi) ; cette notation n’a de sens que si X e Y sont de même taille. On trouvera ici, par abus de notation, un connecteur non unaire appliqué à un vecteur ; par ex. (ET X) signifie (E x1 x2 … xn).
Dans les schémas, les connexions notées par – inversent le signal binaire (1 ?0 et 0 ?1).
« La cybernétique des réseaux neuromimétiques » 1996/1997 G.Bernard & J.Feat
Bibliographie générale :
Ne sont donnés ici que les ouvrages généraux, couvrant une partie représentative des différents modèles existants. On trouvera une bibliographie spécifique à la fin de chaque chapitre.
Beale (R.) & Jackson (T.) : Neural computing : an introduction, Adam Hilger, Bristol, Philadelphia & New York 199 Descriptions assez claires et précieuses indications sur le paramétrage.
Davalo (Éric) & Naïm (Patrick) : Des réseaux de neurones, Eyrolles, Paris 199 Intéressant pour sa description claire et complète du neurone formel, pp.36-42 ; un des ráres ouvrages généraux où l’on trouve la formule du « chapeau mexicain » de Self Organizing Maps.
Freeman (James A.) & Skapura (David M.) Neural Networks : Algorithms, Applications and Programming Techniques, Addison-Wesley, 199 L’ouvrage de référence pour les programmeurs ; il décrit les structures de données et les algorithmes en pseudo-code (pseudo-Pascal) pour un ensemble représentatif de modèles différents. Il lui manque cependant un modèle important, Cascade, de Fahlman, et la description du Cognitron est un peu faible.
Johnson (R.Colin) & Brown (Chappel) Cognizers : Neural Networks and Machines that think, John Wiley & sons, New York -Chichester – Brisbane – Toronto – Singapore 1988 Intéressant pour son trombinoscope : il contient les photos et les curriculum vitae des chercheurs les plus marquants du domaine.
Lippman (R. P.) : An introduction to computing with neural nets », in IEEE transactions on acoustic, speech and signal processing [pp 4-22, 04/1987] Bonne introduction claire au domaine, constitue une excellente première lecture ; indications sur le paramétrage.
Maren (Alianna), Harston (Craig), Pap (Robert) : Handbook of Neural Computing Applications, Academic Press, San Diego Cal, 1990 Liste représentative de plusieurs centaines d’applications des différents modèles implémentés ; utile pour savoir quels modèles ont déjà été utilisés pour une application donnée. Un peu ancien : il manque des applications de Self Organizing Maps, qui se sont multipliées ces dernières années.
Wasserman (Philip D.) : Neural Computing : Theory and Practice, Van Nostrand Reinhold, New York, 198 Contient à la fin une description brève et bien faite des mathématiques des réseaux de neurones ; indications précieuses sur le paramétrage.
Weisbuch (Gérard) Dynamique des systèmes complexes, Interéditions et Éds du CNRS, Paris 1989 Le point de vue du mathématicien sur les RN : intéressant par l’éclairage complètement différent du nôtre qu’il apporte sur ce domaine.