Cours de programmation neurones et python
L | E | S | R | E | S | E | A | U | X | ||||||
D | E | N | E | U | R | O | N | E | S | ||||||
A | R | T | I | F | I | C | I | E | L | S |
Introduction au connexionnisme
- Seconde édition -
~
Claude Touzet
Du même auteur
disponible sur :
C. Touzet, Hypnose, sommeil, placebo? Les réponses de la Théorie neuronale de la Cognition – tome 2, 168 pages, éd. la Machotte, 2014, ISBN 978-2-919411-02-3.
C. Touzet, Conscience, intelligence, libre-arbitre ? Les réponses de la Théorie neuronale de la Cognition, 156 pages, éd. la Machotte, 2010, ISBN 978-2-919411-00-9.
Les réseaux de neurones artificiels ~
Introduction au connexionnisme - Seconde édition
Claude Touzet
« Le Code de la propriété intellectuelle interdit les copies ou reproductions destinées à une utilisation collective. Toute représentation ou reproduction intégrale ou partielle faite par quelque procédé que se soit, sans le consentement de l’auteur ou de ses ayant droits est illicite et constitue une contrefaçon, aux termes des articles L.335-2 et suivants du Code de la propriété intellectuelle. »
« Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire :
… La représentation ou la reproduction d'extraits d'œuvres, sous réserve des œuvres conçues à des fins pédagogiques, des partitions de musique et des œuvres réalisées pour une édition numérique de l'écrit, à des fins exclusives d'illustration dans le cadre de l'enseignement et de la recherche, à l'exclusion de toute activité ludique ou récréative, dès lors que le public auquel cette représentation ou cette reproduction est destinée est composé majoritairement d'élèves, d'étudiants, d'enseignants ou de chercheurs directement concernés, que l'utilisation de cette représentation ou cette reproduction ne donne lieu à aucune exploitation commerciale » (Art. L 122-5).
© (Claude Touzet, 2016)
Editions la Machotte
155 impasse d'Oû Pèbre, F–13390 AURIOL, France ()
Remerciements
Il y a 25 ans, je terminais la rédaction du second ouvrage en langue française sur les réseaux de neurones artificiels. L'éditeur fit faillite peu après sa parution, ce qui me permis d'en diffuser gratuitement la version électronique (pdf). De ce fait, ce livre connu un certain succès auprès des étudiants.
Aujourd'hui, avec le recul que confèrent 30 années d'expérience dans la compréhension du cerveau et la mise en œuvre de réseaux de neurones artificiels, je pense qu'il est temps de proposer une version complètement mise à jour de cette « introduction au connexionnisme ». Je me dois d'ailleurs de remercier mes nombreux étudiants et élèves-ingénieurs qui – tant par leurs questions que par leurs copies d'examen – m'ont aidé à cerner les points délicats de cette discipline.
Table des matières
4. Les réseaux de neurones multicouches (RMC) .58
ANNEXE 1 : Les 190 chiffres manuscrits 67
ANNEXE 2 : ..73
Avertissement
Avant de plonger dans le vif du sujet, je voudrai assurer le lecteur de ma conviction qu'à court terme (10 ans) une nouvelle industrie va émerger – de la taille de l'industrie automobile.
La Théorie neuronale de la Cognition (TnC) fait de la colonne corticale l'unité de traitement de l'information par le cerveau. Une colonne corticale agrège environ 100 000 neurones. On compte seulement 160 000 colonnes corticales dans le cortex, réparties au sein d'environ 160 cartes corticales – dont la moitié déjà sont connues.
La TnC explique suffisamment précisément le fonctionnement du cerveau pour que l'on puisse le simuler complètement – et donc construire un robot intelligent et conscient. Nous aurons donc bientôt, en plus d'une voiture au garage, un robot à la maison
Dix pour cent de notre économie sera liée à cette nouvelle robotique, et les ingénieurs qui construiront les cerveaux artificiels devront comprendre et manipuler les réseaux de neurones artificiels. Il paraît que la moitié des jobs de 2030 ne sont pas encore inventés – en voici quelques uns !
Bonne lecture
S'agissant d'un ouvrage de vulgarisation à l'usage des étudiants de tous les âges, nous avons tenu, en nous basant sur notre expérience d'enseignant, à proposer les outils pédagogiques que sont les exercices et les travaux pratiques. Il s'agit bien entendu d'aider le lecteur à vérifier sa compréhension des concepts, des modèles et de le familiariser à la manipulation des algorithmes. Nous espérons que vous vous impliquerez dans ce "surplus" de travail proposé. Toutes les réponses se trouvent évidemment dans ce livre. |
« Les réseaux de neurones artificiels (RNA) sont
des réseaux fortement connectés de processeurs élémentaires fonctionnant en parallèle.
Chaque processeur élémentaire calcule une sortie unique sur la base des informations qu'il reçoit.
Toute structure hiérarchique de réseaux est évidemment un réseau. »
Définition
Introduction
L’informatique est la science du traitement automatique de l’information. Son développement est souvent confondu avec celui des machines de traitement : les ordinateurs. Depuis les débuts (ENIAC 1946) jusqu’à aujourd’hui, les ordinateurs sont de plus en plus puissants.
Cependant, cette augmentation de puissance ne permet pas de toujours résoudre les problèmes d’une application informatique dans un domaine particulier. L’idée s’est donc installée que ce n’était peut être pas tant le matériel que le logiciel qui pêchait par manque de puissance. Le développement logiciel s'appuie sur plusieurs approches. Deux parmi les plus utilisées sont l'approche algorithmique et l'approche basée sur la connaissance.
1. Une approche algorithmique nécessite l’écriture (avant la transcription dans un quelconque langage de programmation) du processus à suivre pour résoudre le problème. Lorsque le problème est complexe, ce peut être une étape coûteuse ou impossible. D’autre part, les ordinateurs sont des machines complètement logiques (et même binaires) qui suivent à la lettre chacune des instructions du programme. C’est un avantage lorsque tous les cas ont été prévus à l’avance par l’algorithmicien. Ce n’est hélas pas toujours possible. Dans ce cas, dixit l'informaticien : "c'est une faute de la machine". Rien de plus faux ! Ainsi les systèmes informatiques embarqués (à bord des avions, de la navette spatiale, etc.) tentent de pallier à ce manque (prévisible) de clairvoyance de l’algorithmicien en triplant les logiciels, chacun étant développés indépendamment par une équipe différente, dans des langages différents. Les risques de laisser l’ordinateur aux prises avec une situation imprévue, où son comportement ne serait pas adapté, sont ainsi considérablement réduits. Rappelons nous le haro lancé sur les programmes boursiers lors de la chute de la bourse en 1987.
2. La seconde approche possible est celle de l’intelligence artificielle (appelée IA par commodité), avec pour applications les plus connues les systèmes experts. Ici, la résolution du problème est confiée à un ensemble de règles données par l’expert humain du domaine. Ici encore toutes les règles doivent avoir été exprimées préalablement au traitement, et le programme demeure binaire dans son exécution. Les cas qui n’ont pas été prévus par l’expert ne seront pas correctement traités. L’introduction de la logique floue ne change pas la nature des limitations d’emploi du programme : l'exécution reste totalement déterministe. En fait, l’approche basée sur la connaissance se limite à des domaines d’application où la modélisation de la connaissance, par exemple sous forme de règles, est possible. Ces domaines sont souvent ceux des sciences dites "dures" comme l'électronique, la mécanique, la physique, etc. – par opposition aux sciences dites "molles" comme la médecine, la psychologie, la philosophie, etc., où la connaissance est plus empirique. L’IA se révèle donc être principalement un moyen commode de stocker de la connaissance sous forme explicite.
Ces deux approches ne suffisent pas à répondre à tous les problèmes existants comme par exemple dans le domaine de la reconnaissance de formes (images ou signaux), celui du diagnostic, du contrôle moteur, de la traduction automatique, de la compréhension du langage Tous sont depuis longtemps explorés à l’aide des approches algorithmiques (et à base de connaissances) et n'ont pas rencontré le succès escompté. Pourtant, des êtres vivants relativement simples sont capables de réaliser certaines de ces opérations apparemment sans difficulté. Il suffit pour s’en rendre compte de lever les yeux, suivre le vol de la mouche et essayer de la capturer. Que dire alors du déplacement au sonar de la chauve souris, etc. ?
Une troisième approche au traitement automatique de l’information s’offre à nous, où l’on cherche à s’inspirer du traitement de l'information effectué par le cerveau.
3. L’hypothèse principale, à la base de l’essor des RNA, est que les réseaux de neurones biologiques sont à la base des fonctions cognitives, et que nous pensons qu'en utilisant les mêmes composants (le neurone), dans la même configuration (en réseaux), alors nous sommes plus proches d'obtenir une « intelligence artificielle ». Ce qui nous intéresse réellement, c'est l'intelligence, la capacité à répondre correctement alors même que la question est nouvelle, qu'elle n'a jamais été posée auparavant. Les réseaux
de neurones artificiels s'inspirent donc de la biologie, non par obligation comme pour la neuromimétique, mais par intérêt.
1890 : W. James, célèbre psychologue américain (et frère du tout aussi célèbre écrivain Henry James) introduit le concept de mémoire associative, et propose ce qui deviendra une loi de fonctionnement pour l’apprentissage sur les réseaux de neurones connue plus tard sous le nom de loi de Hebb.
1943 : J. Mc Culloch et W. Pitts laissent leurs noms à une modélisation du neurone biologique (un neurone au comportement binaire). Ceux sont les premiers à montrer que des réseaux de neurones formels simples peuvent réaliser des fonctions logiques, arithmétiques et symboliques complexes (tout au moins au niveau théorique).
1949 : D. Hebb, physiologiste américain explique le conditionnement chez l’animal par les propriétés des neurones eux-mêmes. Ainsi, un conditionnement de type pavlovien tel que, nourrir tous les jours à la même heure un chien, entraîne chez cet animal la sécrétion de salive à cette heure précise même en l’absence de nourriture. La loi de modification des propriétés des connexions entre neurones qu’il propose explique en partie ce type de résultats expérimentaux. Sa « loi » a depuis été validée par les neurosciences : LTP et LTD (Long Term Potentiation, Long Term Depression)
1957 : F. Rosenblatt développe le modèle du Perceptron. Il construit le premier neuro-ordinateur basé sur ce modèle et l’applique au domaine de la reconnaissance de formes. Notons qu’à cet époque les moyens à sa disposition sont limités et c’est une prouesse technologique que de réussir à faire fonctionner correctement cette machine pendant plus de quelques minutes.
1960 : B. Widrow, un automaticien, développe le modèle Adaline
(Adaptative Linear Element). Dans sa structure, le modèle ressemble au Perceptron, cependant la loi d’apprentissage est différente. Celle-ci est à l’origine de l’algorithme de rétro-propagation de gradient très utilisé aujourd’hui avec les Perceptrons multicouches. Les réseaux de type Adaline restent utilisés de nos jours pour certaines applications particulières.
1969 : M. Minsky et S. Papert publient un ouvrage qui met en exergue les limitations théoriques du Perceptron. Limitations alors connues, notamment concernant l’impossibilité de traiter par ce modèle des problèmes non linéaires. Ils étendent implicitement ces limitations à tous modèles de réseaux de neurones artificiels. Leur objectif est atteint, il y a abandon financier des recherches dans le domaine (surtout aux U.S.A.), les chercheurs se tournent principalement vers l’IA et les systèmes à bases de règles.
1967-1982 : Toutes les recherches ne sont, bien sûr, pas interrompues. Elles se poursuivent, mais déguisées, sous le couvert de divers domaines comme : le traitement adaptatif du signal, la reconnaissance de formes, la modélisation en neurobiologie, etc. De grands noms travaillent durant cette période tels : J. Hérault, B. Ans, etc.
1977 : T. Kohonen (professeur en ingénierie finlandais) propose une modélisation de la carte corticale. Son modèle baptisé « carte auto-organisatrice » ou « carte de Kohonen » est à la base de milliers d'applications. La carte auto-organisatrice est aussi la brique élémentaire pour la Théorie neuronale de la Cognition (2010). Enfin, la carte de Kohonen apparaîtra aussi au sein des réseaux de neurones profonds (2013).
1982 : J. J. Hopfield est un physicien reconnu à qui l’on doit le renouveau d’intérêt pour les réseaux de neurones artificiels. A cela plusieurs raisons : Au travers d’un article court, clair et bien écrit, il présente une théorie du fonctionnement et des possibilités des réseaux de neurones. Il faut remarquer la présentation anticonformiste de son article. Alors que les auteurs s’acharnent jusqu’alors à proposer une structure et une loi d’apprentissage, puis à étudier les propriétés émergentes ; J. J. Hopfield fixe préalablement le comportement à atteindre pour son modèle et construit à partir de là, la structure et la loi d’apprentissage correspondant au résultat escompté. Ce modèle est aujourd’hui encore très utilisé pour des problèmes d'optimisation. D'autre part, entre les mains de ce physicien distingué, la théorie des réseaux de neurones devient respectable. Elle n’est plus l’apanage d’un certain nombre de psychologues et neurobiologistes hors du coup. Enfin, une petite phrase, placée en commentaire dans son article initial, met en avant l’isomorphisme de son modèle avec le modèle d’Ising (modèle des verres de spins). Cette idée va drainer un flot de physiciens vers les réseaux de neurones artificiels. Notons qu’à cette date, l’IA est l’objet d’une certaine désillusion, elle n’a pas répondue à toutes les attentes et s’est même heurtée à de sérieuses limitations. Aussi, bien que les limitations du Perceptron mise en avant par M. Minsky ne soient pas levées par le modèle d’Hopfield, les recherches sont relancées.
1983 : La Machine de Boltzmann est le premier modèle connu apte àtraiter de manière satisfaisante les limitations recensées dans le cas du Perceptron. Mais l’utilisation pratique s’avère difficile, la convergence de l’algorithme étant extrêmement longue (les temps de calcul sont considérables).
1985 : La rétro-propagation de gradient apparaît. C’est un algorithme d‘apprentissage adapté aux réseaux de neurones multicouches (aussi appelés Perceptrons multicouches). Sa découverte réalisée par trois groupes de chercheurs indépendants indique que "la chose était dans l’air". Dès cette découverte, nous avons la possibilité de réaliser une fonction non linéaire d’entrée/sortie sur un réseau en décomposant cette fonction en une suite d’étapes linéairement séparables.
1990 : L'apprentissage par renforcement devient incontournable dans le domaine de l'apprentissage en robotique. Le coût du développement d'une application « RNA » est fortement réduit puisqu'il n'y a plus besoin de construire de bases d'apprentissages. Une simple fonction de renforcement – capable de qualifier (et non quantifier) la réponse du RNA – suffit.
1996 : Diverses implantations (sur cartes auto-organisatrices notamment – Q-Kohon) du renforcement voient le jour, et des propositions sont faites pour faciliter l'écriture de la fonction de renforcement.
2006 : Pour la première fois deux cartes auto-organisatrices travaillent en synergie, et permettent la synthèse instantanée de comportements en robotique.
2010 : La Théorie neuronale de la Cognition (TnC) explique comment une hiérarchie de cartes auto-organisatrices est capable de réaliser toutes les fonctions cognitives : attention, mémoire, planification, intelligence, conscience, etc.
2013 : Les réseaux de neurones « profonds » sont les successeurs des réseaux multicouches (ils vont jusqu'à 10 couches quand leur prédécesseurs devaient s'arrêter à 2 ou 3 maxi). Les réseaux profonds obtiennent d'excellentes performances pour la classification d'images et de sons. Pour les images, ces performances sont supérieures à celles d'un humain. Pour le son, on estime aujourd'hui que la reconnaissance de la parole est un problème résolu – c'est pourquoi l'on trouve (enfin) des applications capable de comprendre ce que nous disons (exemple Siri d'Apple).
2014 : Le palimpseste learning est proposé. C'est l'aboutissement de l'évolution entamée par l'apprentissage par renforcement : il n'y a plus de fonction de renforcement ! Cet apprentissage est basé sur la loi de Hebb, mais ajoute la prise en compte du temps nécessaire à la modification d'efficacité synaptique. Le palimpseste learning trouve « tout seul » les états d 'équilibre (homéostasie). Il est particulièrement bien adapté à la commande automatique (boucle de régulation).
2015 : Les géants du logiciel (Google, FaceBook, IBM, etc.) ont recrutés pratiquement tous les experts (universitaires) en réseaux de neurones profonds pour développer de nouvelles applications. Nous pouvons donc estimer que les RNA ont répondu à nos attentes et sont en passe de résoudre certains des challenges de l'IA.
La chronologie n'est pas le seul fil conducteur que nous pouvons suivre pour comprendre et classer les divers modèles de RNA. Pour ma part, je trouve le « temps ingénieur nécessaire pour développer une application » plus instructif. Cette approche permet de séparer trois groupes selon la complexité associée à la construction de la base d'apprentissage (depuis le plus dispendieux en temps ingénieur) :
- apprentissage supervisé (Perceptron, réseaux multicouches, etc.), - apprentissage par renforcement (Q-Kohon, TD-l), - auto-organisation (carte de Kohonen).
L'histoire montre que l'approche supervisée a réussi certains challenges. C'est à mon avis la moins élégante – mais la plus aisée à comprendre pour l'ingénieur. Les applications que ne peuvent pas résoudre l'approche supervisée seront de facto du domaine du renforcement ou de l'auto-organisation. Bien que moins gourmande en « temps ingénieur », ces approches nécessitent un investissement en terme de compétence par l'ingénieur.
Ce qu'il faut retenir :
L'histoire des RNA débute il y a 120 ans. Certaines des applications envisagées par les informaticiens des années 1960 sont devenues réalités 50 ans plus tard. Pour les autres « rêves » comme l'intelligence ou la conscience artificielle, un peu de travail est encore nécessaire.
Le neurone est une cellule. Le corps humain compte dix mille milliards de cellules, dont 82 milliards de cellules nerveuses ou neurones (on dit « un » neurone). Le neurone est une cellule très particulière qui consomme environ 10 fois plus d'énergie qu'une cellule normale.
D'autre part, le neurone n'est pas remplacé : c'est la même cellule de la naissance à notre décès pour cause d'âge très avancé (une cellule de la peau est remplacée chaque 3-4 semaines, un globule blanc a une durée de vie de quelques jours, etc.).
Enfin, le neurone est une abstraction car il existe plusieurs dizaines de types de neurones (neurones pyramidaux, en corbeille, en étoile, etc.) dont les tailles et les formes sont très différentes. Cependant, tous les neurones partagent le même comportement : ils transmettent des potentiels d'action à distance dont l'effet sur le neurone suivant sera excitateur ou inhibiteur vis à vis de la création d'un potentiel d'action (pour ce neurone). L'efficacité de l'effet excitateur, ou inhibiteur, est modulée par l'usage (loi de Hebb) et les conditions locales (homéostasie).
Le neurone reçoit une information via ses dendrites, et si l'activation locale est à cet instant suffisante, alors il l'a transmet via son axone à d'autres neurones. Les jonctions entre les neurones « amont » (précédents) qui alimentent ses dendrites ou « aval » (suivants) alimentées par son axone, sont appelées des synapses. Il y en a des centaines, voir des milliers pour un seul neurone. De ce fait, la simulation précise de chaque neurone d'un cerveau de taille humaine avec toutes ses synapses se heurte à des chiffres colossaux : 100 milliards de neurones x 1000 synapses = 100 billards de synapses (1014, c'est à dire pour les « informaticien » : 100 Tera).
Nos simulations actuelles de RNA ne peuvent pas s'approcher de tels chiffres. Heureusement, ceci n'est pas nécessaire pour obtenir des comportements « intelligents » de la part de nos programmes informatiques.
Notons que ce grand nombre de neurones et de synapses est un puissant indicateur que la redondance du système nerveux est importante. Faire disparaître « un » neurone n'entraîne aucun effet visible. En fait, les malades Alzheimer montrent parfois une dégénérescence allant jusqu'à 70% de perte neuronale dans certaines régions du cerveau avant que leur maladie ne soit diagnostiquée. Ceci témoigne à la fois de la forte redondance, et aussi de la plasticité du système, capable de se reconfigurer en permanence de manière à assurer sa fonction quelles que soient les lésions.
ATTENTION !
L'idée d'une fonction assurée par certaines régions neuronales, certains réseaux de neurones, voir certains neurones, pour aussi logique et attrayante qu'elle soit, est une idée fausse ! Nous cherchons (et trouvons) des fonctions parce que nous sommes programmés à rechercher une solution à un problème complexe (et le fonctionnement du cerveau en est un) par une décomposition en sous-problèmes. Ayant repéré des organisations particulières dans le cerveau (cortex, cervelet, thalamus, etc.) alors nous sommes tentés (obligés) de leur attribuer une fonction.
Pourtant, de nombreux faits viennent contredire nos tentatives dans ce domaine. Par exemple, certaines personnes présentent une cognition normale alors qu'elles n'ont qu'un unique hémisphère, d'autres – à la suite d'un AVC par exemple – vont réapprendre de nombreuses compétences en utilisant des structures neuronales différentes des aires habituelles.
Enfin, notre cerveau est le même que nous soyons membre d'une société capitaliste du XXIème siècle, d'une tribu encore à l'âge de pierre, ou d'une des castes de la société indienne. Les compétences que nous développerons, à commencer par la langue, seront toutes spécifiques à notre environnement et très efficaces (adaptées). Pour mémoire, certaines langues n'ont pas de temps « futur » ou « passé », pour d'autres la numérosité est limitée à « 1 », « 2 » et « beaucoup », ou ont pour seules couleurs « claire » et « sombre ».
Les réseaux de neurones biologiques n'ont pas donc pas de fonctions prédestinées, ils s'auto-organisent et le résultat de cette organisation est adapté en terme de théorie de l'évolution (survie et transmission des gènes). Ceci est une bonne nouvelle ! Il nous suffira donc de doter nos RNA de capacité d'auto-organisation pour obtenir des comportements adaptés desdits réseaux.
Le neurone
Le corps cellulaire du neurone se ramifie pour former ce que l’on nomme les dendrites. Celles-ci sont parfois si nombreuses que l’on parle alors de chevelure dendritique ou d’arborisation dendritique. C’est par les dendrites que l’information est acheminée de l’extérieur vers le soma (le corps du neurone). L’information traitée par le neurone chemine ensuite le long de l’axone (unique) pour être transmise aux autres neurones.
La transmission entre deux neurones n’est pas directe. En fait, il existe un espace intercellulaire de quelques dizaines d’Angströms (10-9 m) entre l’axone du neurone afférent et les dendrites (on dit une dendrite) du neurone efférent. La jonction entre deux neurones est appelée la synapse
(fig. 1).
Figure 1. Un neurone avec son arborisation dendritique.
Selon le type du neurone (fig. 2), la longueur de l’axone peut varier de quelques microns à 1,50 mètres pour un moto-neurone. De même les dendrites mesurent de quelques microns à 1,50 mètres pour un neurone sensoriel de la moelle épinière. Le nombre de synapses par neurone varie aussi considérablement de plusieurs centaines à une dizaine de milliers.
Avec 10 000 synapses reçues par neurone, une unique synapse a très peu d'effet sur le comportement du neurone. Il faut un « consensus » d'un grand nombre de synapses pour obtenir une excitation ou une inhibition de ce neurone. De fait, lorsque deux neurones sont interconnectés, ce n'est pas par une unique synapse, mais plutôt par quelques centaines ou milliers d'entre elles. Un neurone est donc connecté à quelques dizaines ou centaines d'autres neurones – au maximum !
Figure 2. Description schématique des divers types structuraux de neurones présents dans le cortex cérébelleux. Les axones ont été repérés par une flèche.
Physiologie
La physiologie du neurone est liée aux propriétés de la membrane nerveuse et au métabolisme de la cellule. La différence de potentiel mesurée entre le milieu intérieur de la cellule et le milieu extérieur est de -60 mV. Pour maintenir une telle différence de potentiel, la cellule fait appel à des pompes ioniques (Na+, K+, ). Cependant, une faible dépolarisation de la membrane entraîne une certaine perméabilité aux ions sodiums (Na+), dont l'effet peut être catastrophique au niveau cellulaire. En effet, à partir d'une certaine valeur seuil de dépolarisation de la membrane, il y a rupture des équilibres ioniques et création d'un potentiel d'action (aussi nommé "spike" en anglais, fig. 3).
Figure 3. Un potentiel d'action.
Les ions, Na+ en particulier, s'engouffrent en nombre dans la cellule (aidés en cela par l'ouverture des canaux Na+ et une différence de potentiel très attirante de -60 mV). En une milliseconde, la différence de potentiel devient égale à +60 mV (fig. 4). En fait, à partir d'une valeur de potentiel nulle, l'équilibre ionique est établi et les ions ne devraient plus pénétrer dans la cellule. Cependant, l'effet d’entraînement est tel que cette valeur d'équilibre théorique est largement dépassée. Les différents canaux ioniques se referment alors, les pompes ioniques se remettent à fonctionner, rejetant à l'extérieur de la cellule les ions en excès. Là aussi, on constate un certain effet d’entraînement : le retour à la normale passe d'abord par une phase d'hyperpolarisation. Le potentiel de repos (-60 mV) est dépassé jusqu'à atteindre (-70 mV).
Figure 4. Passage d'un potentiel d'action au niveau de la membrane de l'axone
a) Équilibre ionique (au repos). b) Arrivée d'un potentiel d'action (dépolarisation).
c) Après la dépolarisation : l'hyperpolarisation.
Toute cette série d’événements cataclysmiques au niveau cellulaire n'aura duré que 5 à 10 millisecondes. Durant la phase d'hyperpolarisation, le neurone est très difficilement excitable. Ce qui s'explique par le fait que la différence de potentiel par rapport à la valeur seuil (S) est plus importante que celle au repos. 1.3 Création d'un potentiel d'action La dépolarisation initiale de la membrane axonique est créée par l'arrivée de potentiels d'action des neurones afférents sur les synapses dendritiques et somatiques. En fait, à l'arrivée d'un potentiel d'action sur une synapse, un neuromédiateur est libéré dans l'espace synaptique. Il va ouvrir des canaux ioniques sur la membrane post-synaptique, créant ainsi une dépolarisation (aussi appelée potentiel évoqué) qui s'étend jusqu'à l'axone (fig. 5).
Figure 5. Fonctionnement au niveau synaptique.
a) Arrivée d'un potentiel d'action.
b) Libération du neuromédiateur dans l'espace synaptique.
c) Ouvertures des canaux ioniques dues au neuromédiateur.
d) Génération d'un potentiel évoqué excitateur.
d') Génération d'un potentiel évoqué inhibiteur. Les synapses inhibitrices empêchent la génération de potentiel d'action.
e) Fermeture des canaux, élimination ou recapture du neuromédiateur.
Les dépolarisations unitaires sont sommées dans l'espace (toutes les synapses du neurone) et dans le temps (sur une période de quelques millisecondes) et génèrent, éventuellement, un potentiel d'action sur le neurone post-synaptique. Ainsi que le montre la figure 6, la génération d'un potentiel d'action est le fruit de nombreuses dépolarisations, l'action d'une seule synapse est pratiquement sans effet.
Figure 6. Sommation spatio-temporelle : addition des potentiels évoqués à la fois dans l'espace et dans le temps.
a) Les 2 potentiels évoqués (flèches) ne dépassent pas la valeur seuil.
b) Les 2 potentiels évoqués dépassent le seuil et génèrent un potentiel d'action.
Message nerveux
Le système nerveux travaille avec (entre autres) un codage en fréquence. C'est le nombre de potentiels d'action par seconde (fréquence) et les variations de fréquence (fréquence instantanée) qui codent l'information. Un potentiel d'action isolé ne signifie rien. Rappelons d'autre part que tous les potentiels d'action ont la même valeur de potentiel. Par exemple (fig. 7), les messages transmis lors de mouvements du coude permettent de connaître en fonction de la fréquence : la valeur de l'angle et en fonction des variations de fréquences : la vitesse de rotation entre deux positions.
Figure 7. Codage en fréquence lors du mouvement d'une articulation.
Circuits neuronaux
Nous avons vu que chaque neurone est une unité autonome au sein du cerveau. Le neurone reçoit en continu des entrées. Le corps cellulaire du neurone est le centre de contrôle. C'est là que les informations reçues sont interprétées. La réponse, unique, à ces signaux est envoyée au travers de l'axone. L'axone fait synapse sur d'autres neurones (un millier). Le signal transmis peut avoir un effet excitateur ou inhibiteur. Le traitement très simple réalisé par chaque neurone indique que l'information n'est pas stockée dans les neurones, mais est plutôt le résultat du comportement de toute la structure interconnectée. L'information est, principalement, dans l'architecture des connexions et dans la force de ces connexions. C'est ce que nous allons vérifier avec quelques expérimentations simples réalisées sur l'aplysie (limace de mer, fig. 8). Des modifications comportementales importantes résultent de modifications simples au niveau synaptique. Les connexions renforcent ou diminuent leur efficacité (modification des forces de connexions). Dans les cas extrêmes, de nouvelles connexions apparaissent ou disparaissent (modification de l'architecture).
Figure 8. Aplysie ou limace de mer (abondante en Méditerranée).
Au toucher du siphon ou du manteau, la contraction du siphon entraîne le retrait des branchies sous le manteau dans un réflexe de défense.
Habituation
Description de l'expérience : Le neurone sensoriel est activé par le toucher du manteau. Le neurone moteur agit alors en rétractant les branchies (fig. 9). Lorsque la stimulation est répétée, la réponse de l'animal devient plus faible, jusqu'à une absence de réaction au toucher. C'est le phénomène de l'habituation (fig. 10).
Figure 9. Circuit mis en jeu dans l'habituation.
Figure 10. Habituation : lorsque la stimulation est répétée (quelques dizaines de fois), la réponse de l'animal devient de plus en plus faible, jusqu'à une absence de
réaction au stimulus sensoriel. En bas à droite, le nombre de minutes après le début
de l'expérience. A partir de 15 minutes, il n'y a plus de stimulations (d'habituation).
Sensibilisation
Si l'on répète la même expérience en créant après chaque stimulation du manteau un courant d'eau violent qui risque d'endommager les branchies, on observe alors l'effet inverse. Le courant d'eau sert de renforcement (fig. 11) et la réponse de l'animal au stimulus initial est augmentée (fig.
12). Cet effet est appelé sensibilisation.
Figure 11. Circuit mis en jeu dans la sensibilisation.
Figure 12. La sensibilisation : la réponse du neurone moteur au stimulus initial est augmentée par l'action du stimulus de renforcement. Le stimulus de renforcement n'est appliqué qu’après la réponse motrice.
Modification synaptique
Habituation et sensibilisation au niveau neuronal traduisent la fonction d'apprentissage au niveau de l'animal dans son ensemble. Il y a adaptation de la réponse à l'environnement. L'observation des synapses mises en jeu au microscope électronique montre des modifications physiques
(fig. 13).
Figure 13. Modification physique de la synapse a) Témoin. b) Habituation :
diminution du nombre de vésicules et du nombre de récepteurs. c) Sensibilisation : augmentation du nombre de vésicules et de récepteurs.
La vision et les étages de traitement
Nous avons vu des mécanismes de traitement de l'information au niveau de la coopération entre deux neurones. Il existe des structures plus complexes mettant en jeu des millions de neurones, qui rangés par étages de traitement diminuent la complexité de l'information, la rendant plus signifiante. C'est le cas du système visuel, sans doute le mieux étudié aujourd'hui.
Au niveau de la rétine, plusieurs dizaines de types différents de cellules codent les informations visuelles, chacune réalisant une fonction très spécialisée. Les images sont transformées en train d'impulsions nerveuses que le nerf optique véhicule vers le cerveau. Le cerveau élabore sa perception visuelle grâce à ces signaux. Cependant, au niveau de la rétine, il y a déjà traitement de l'information. En effet, on compte environ 150 millions de bâtonnets et 7 millions de cônes pour seulement 1 million de fibres au niveau du nerf optique.
On connaît aujourd'hui un certain nombre de circuits neuronaux de la rétine impliqués dans le traitement de l'information visuelle. Par exemple, à chaque cellule ganglionnaire correspond un champ récepteur : une zone précise du champ visuelle (disque d'un centimètre de diamètre à deux mètres de distance). Dès 1952, deux types de cellules ganglionnaires ont été répertoriés. En absence de stimulation lumineuse
(obscurité), ces cellules émettent cependant spontanément un niveau moyen de potentiels d'action. Les cellules à centre ON augmentent ce nombre d'impulsions lorsqu'un stimulus éclaire le centre du champ récepteur et deviennent silencieuses si le stimulus éclaire la périphérie du champ récepteur. Les cellules à centre OFF montrent un comportement inverse. La figure 14 montre un exemple d'architecture fonctionnelle pour une cellule ganglionnaire à centre ON. Cette opposition de fonctionnement entre le centre et la périphérie du champ récepteur permet d'améliorer les contrastes. On a découvert depuis d'autres cellules qui codent les directions de mouvements, etc.
Figure 14. Traitement de l'information rétinienne par une cellule ganglionnaire à centre ON. En noir, les cellules actives. Les cellules horizontales ont une action inhibitrice sur les cellules bipolaires, elles s'opposent ainsi aux cellules photoréceptrices.
a) L'éclairage du centre du champ récepteur augmente le niveau d'activité.
b) L'éclairage de la périphérie du champ récepteur rend cette cellule silencieuse.
Au niveau du cortex visuel (arrivée du nerf optique), D. Hubel et H. Wiesel ont découvert l'existence de colonnes de dominance oculaire, spécifiquement excitées par un stimulus sous forme de barre dotée une orientation précise. La figure 15 montre une représentation schématique du cortex visuel.
Figure 15. Représentation schématique du cortex visuel qui montre les colonnes de dominances oculaires et leur orientation privilégiée. On remarque l'alternance œil gauche - œil droit.
Nous avons vu une organisation topologique précise pour le traitement de l'information visuelle dont la construction semble génétique. Il existe néanmoins des possibilités d'apprentissage sur cette structure. Des expériences ont montré que l'élevage d'un chaton dans un univers composé uniquement de verticales va modifier ses perceptions jusqu'à le rendre pratiquement aveugle aux autres directions (horizontales et obliques) à l'âge adulte. L'étude histologique montre que la grande majorité de ses colonnes de dominances oculaires se sont "recyclées" dans les verticales.
Quels sont les mécanismes qui permettent de modifier le comportement des structures neuronales ? D. Hebb a proposé en 1949 une règle où la force de la connexion entre deux neurones augmente si il y a corrélation d'activité (si l'activation de l'une entraîne l'activation de l'autre). Cette hypothèse a depuis été complétée par J. P. Rauscheker et W. Singer qui proposent de modifier en les diminuant les forces des connexions non fonctionnelles (inutiles dans le contexte de fonctionnement actuel).
Remarquons que cette loi d'apprentissage initialement proposée pour les synapses excitatrices s'applique de la même manière pour les synapses inhibitrices. Effectivement, cela paraît contre productif puisqu'une connexion inhibitrice efficace (qui empêche l'activation du neurone aval) voit son efficacité diminuée du fait qu'elle est efficace Une hypothèse récente voit dans ce constat la cause même du sommeil : les ondes lentes du sommeil profond garantissent une activation locale de tous les neurones voisins et renforcent ainsi les connexions inhibitrices (qui ont perdu une partie de leur efficacité durant la période d'éveil).
Ce qu'il faut retenir :
Le neurone reçoit de l'information, et la transmet éventuellement. Il y a donc décision à son niveau. Cette décision est une action binaire qui transforme en « tout ou rien » une information qui était codée sur un plus grand nombre de valeurs (dans une première approximation, on peut estimer que le nombre de synapses d'un neurone donne le niveau de discrétisation de l'information reçue). Il s'agit d'une action violente, qui fait disparaître de nombreux « détails », mais qui régénère aussi l'information. Celle-ci devenant plus concise, devient aussi plus « pertinente ». La « décision » neuronale est donc indispensable à une extraction pertinente au sein d'un vaste volume de données (comme celles fournies en permanence par nos sens).
Le premier chapitre a présenté (succinctement) le neurone biologique. Nous allons maintenant le modéliser – c'est à dire le « simplifier » tout en conservant les propriétés qui nous semblent importantes – dans l'objectif d'obtenir au final un traitement de l'information « intelligent ».
Les RNA sont des modèles, à ce titre ils peuvent être décrit par leurs composants, leurs variables descriptives et les interactions des composants.
Structure
La figure 16 montre la structure d'un neurone artificiel. Chaque neurone artificiel est un processeur élémentaire. Il reçoit un nombre variable d'entrées en provenance de neurones amonts. A chacune de ces entrées est associée un poids w abréviation de weight (« poids » en anglais) représentatif de la force de la connexion. Chaque processeur élémentaire est doté d'une sortie unique, qui se ramifie ensuite pour alimenter un nombre variable de neurones avals. A chaque connexion est associée un poids. La figure 17 donne les notations que nous utilisons dans cet ouvrage.
Figure 16. Mise en correspondance neurone biologique / neurone artificiel.
Figure 17. Pour le neurone d'indice i, les entrées sur celui-ci sont de poids wij alors que les connexions avals sont de poids wki.
Comportement
On distingue deux phases. La première est habituellement le calcul de la somme pondérée des entrées (a) selon l'expression suivante : a = S (wi* ei).
A partir de cette valeur, une fonction de transfert calcule la valeur de l'état du neurone. C'est cette valeur qui sera transmise aux neurones avals. Il existe de nombreuses formes possibles pour la fonction de transfert. Les plus courantes sont présentées sur la figure 18. On remarquera qu'à la différence des neurones biologiques dont l'état est binaire, la plupart des fonctions de transfert sont continues, offrant une infinité de valeurs possibles comprises dans l'intervalle [0, +1] (ou [-1, +1]).
Figure 18. Différents types de fonction de transfert.
a) fonction à seuil (S , la valeur du seuil), b) linéaire par morceaux, c) sigmoïde.
Nous constatons que les équations décrivant le comportement des neurones artificiels n'introduisent pas la notion de temps. En effet, et c'est le cas pour la plupart des modèles actuels de réseaux de neurones, nous avons affaire à des modèles à temps discret, synchrone, dont le comportement des composants ne varie pas dans le temps.
Variables descriptives
Ces variables décrivent l'état du système. Dans le cas des réseaux de neurones qui sont des systèmes non autonomes, un sous-ensemble des variables descriptives est constitué par les variables d'entrée, variables dont la valeur est déterminée extérieurement au modèle.
Structure d'interconnexion
Les connexions entre les neurones qui composent le réseau décrivent la topologie du modèle. Elle peut être quelconque, mais le plus souvent il est possible de distinguer une certaine régularité.
Réseau multicouche (au singulier) : les neurones sont arrangés par couche. Il n'y a pas de connexion entre neurones d'une même couche et les connexions ne se font qu'avec les neurones des couches avales (fig. 19). Habituellement, chaque neurone d'une couche est connecté à tous les neurones de la couche suivante et celle-ci seulement. Ceci nous permet d'introduire la notion de sens de parcours de l'information (de l'activation) au sein d'un réseau et donc définir les concepts de neurone d'entrée, neurone de sortie. Par extension, on appelle couche d'entrée l'ensemble des neurones d'entrée, couche de sortie l'ensemble des neurones de sortie. Les couches intermédiaires n'ayant aucun contact avec l'extérieur sont appelés couches cachées.
Figure 19. Définition des couches d'un réseau multicouche.
Réseau à connexions locales : Il s'agit d'une structure multicouche, mais qui à l'image de la rétine, conserve une certaine topologie. Chaque neurone entretien des relations avec un nombre réduit et localisé de neurones de la couche avale (fig. 20). Les connexions sont donc moins nombreuses que dans le cas d'un réseau multicouche classique.
Figure 20. Réseau à connexions locales
Réseau à connexions récurrentes : les connexions récurrentes ramènent l'information en arrière par rapport au sens de propagation défini dans un réseau multicouche. Ces connexions sont le plus souvent locales (fig. 21).
Figure 21. Réseau à connexions récurrentes
Réseau à connexion complète : c'est la structure d'interconnexion la plus générale (fig. 22). Chaque neurone est connecté à tous les neurones du réseau (et à lui-même).
Figure 22. Réseau à connexion complète.
Il existe de nombreuse autres topologies possibles, mais elles n'ont pas eu à ce jour la notoriété des quelques unes que nous avons décrites ici.
Le Perceptron
Avant d'aborder le comportement collectif d'un ensemble de neurones, nous allons présenter le Perceptron (un seul neurone) en phase d'utilisation. L'apprentissage ayant été réalisé, les poids sont fixes. Le neurone de la figure 23 réalise une simple somme pondérée de ses entrées, compare une valeur de seuil, et fournit une réponse binaire en sortie. Par exemple, on peut interpréter sa décision comme classe A si la valeur de x est +1, et classe B si la valeur de x est -1.
Figure 23. Le Perceptron : structure et comportement. Les connexions des deux entrées e1 et e2 au neurone sont pondérées par les poids w1 et w2 . La valeur de sortie du neurone est notée x. Elle est obtenue après somme pondérée des entrées (a) et comparaison à une valeur de seuil S.
Question : Sachant que les poids du Perceptron à deux entrées sont les suivants : w1 = 0.5, w2 = 0.7 et que la valeur de seuil est S = 1.0, déterminez son comportement, sachant que les comportements du ET logique, OU logique et OU exclusif sont rappelés ci-dessous.
ET OU OU exclusif
e1 | e2 | x | e1 | e2 | x | e1 | e2 | x | ||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
1 | -1 | -1 | 1 | - 1 | 1 | 1 | - 1 | -1 | ||
-1 | 1 | -1 | - 1 | 1 | 1 | - 1 | 1 | -1 | ||
-1 | -1 | -1 | - 1 | - 1 | - 1 | - 1 | - 1 | 1 |
Réponse : ET
Réseau multicouche en phase d'association
Le comportement collectif d'un ensemble de neurones permet l'émergence de fonctions d'ordre supérieure par rapport à la fonction élémentaire du neurone. Imaginer de prime abord un tel comportement n'est pas facile.
Soit un réseau multicouche composé de 361 (19 x 19) neurones d'entrée, 25 neurones cachés et 361 neurones de sortie. Ce réseau est une mémoire homo-associative (par opposition à hétéro-associative) qui donc associe à la lettre "a" présentée en entrée la même lettre en sortie (fig. 24). Présentons au réseau cette lettre avec quelques erreurs : un certain nombre de pixels ont été inversé (de blanc à noir ou inversement). L'image est composée de 19 x 19 pixels, chacun de ces pixels est associé à un neurone de la couche d'entrée. Chacun des neurones de la couche cachée reçoit 361 connexions (une pour chaque neurone d'entrée) et envoie sa sortie à chacun des neurones de sortie. Dans notre exemple, il y a 2 x (361 x 25) = 18050 connexions (ou poids).
Figure 24. Comportement en phase de reconnaissance d'un réseau de neurone multicouche lors d'une tâche d'auto-association. Les neurones sont binaires. La
valeur d'activation de chaque neurone est indiquée par la hauteur de la colonne. Les neurones sont rangés par couche, tous les neurones d'une couche sont connectés à tous les neurones de la couche suivante (aval).
La première étape est pour chaque neurone d'entrée de déterminer la valeur de son état selon la couleur du pixel correspondant (de l'image). Si les neurones qui composent le réseau sont binaires, on choisit arbitrairement de coder un pixel noir par un niveau d'activation du neurone égal à 1 (si le pixel est blanc alors le niveau d'activation du neurone correspondant est égal à 0).
La seconde étape est celle du calcul de la réponse qui se décompose en autant de sous-étapes qu'il y a de couches dans le réseau. Ainsi, chaque neurone de la couche d'entrée envoie sa valeur aux neurones de la couche cachée. Chacun des neurones de la couche cachées est en fait un Perceptron à 361 entrées. Chacun des neurones réalise la somme pondérée de ses entrées et compare à la valeur de seuil. Ce processus est effectué en parallèle et indépendamment pour tous les neurones de la couche cachée. Lorsque le vecteur d'activation de la couche cachée a été obtenu, le même processus est répété avec les neurones de la couche de sortie. On considère ceux-ci comme 361 Perceptrons indépendants à 25 entrées.
La dernière étape est l'interprétation du vecteur d'activation de la couche de sortie par l'expérimentateur. Dans notre cas, on réalise l'opération inverse du codage initial, à savoir associer un pixel noir à chacun des neurones de la couche de sortie dont la valeur d'activation est égale à 1, un pixel blanc dans le cas contraire.
Dans la figure 24, il faut remarquer que si les vecteurs d'activation des couches d'entrée et de sortie semblent directement interprétables, il n'en est rien en ce qui concerne la couche cachée. Lorsque les neurones qui composent le réseau sont à valeur continue, les possibilités offertes sont plus nombreuses. L'image d'entrée peut être composée de plusieurs niveaux de gris. On associe alors arbitrairement à chaque niveau de gris un niveau d'activation du neurone spécifique. Le calcul du vecteur d'activation de la couche cachée reste identique dans son principe, nonobstant le fait que l'état de chaque neurone n'est plus binaire. L'interprétation de la réponse du réseau fournit alors une image composée de niveaux de gris.
Réseau à connexion complète
Chaque vecteur d'activation représente la réponse du réseau à une date particulière. Pour faciliter la représentation, nous avons déplié dans l'espace les évolutions temporelles du réseau à connexion complète (trois cycles – fig. 25). D'un instant au suivant, chaque neurone recalcule indépendamment et en parallèle son état. Rappelons que chacun des neurones est connecté à tous les autres, ce qui implique pour chacun d'entre eux de recevoir 361 connexions et d'envoyer sa sortie à ses 361 voisins. La principale différence entre les évolutions temporelles d'un réseau à connexion complète et le calcul de la sortie dans un réseau multicouche est que pour le premier les poids des connexions entre deux évolutions temporelles sont identiques, alors que pour le second, d'une couche à l'autre les poids des connexions sont différents.
Figure 25. Évolution du vecteur d'activation d'un réseau à connexion complète sur une période de trois cycles. La matrice des poids W est complète (361 x 361 = 130321 poids). Entre deux "couches", c'est la même matrice de poids.
Réseau à inhibition latérale récurrente.
Les poids sont fixés a priori lors de la construction du réseau, il n'y a pas de phase d'apprentissage. La structure du réseau est représentée sur la figure 26, son comportement sur la figure 27. Il y a une seule couche de neurones. Les connexions sont localisées, chaque pixel d'entrée est en relation (excitatrice) avec un nombre réduit de neurones. De plus, on remarque la présence de connexions récurrentes inhibitrices localisées autour de chaque neurone.
En utilisation, une image est présentée en entrée. A la différence d'un réseau multicouche classique, la réponse n'est obtenue qu’après stabilisation de l'état de sortie. Le régime transitoire est dû au retour d'information depuis les neurones voisins. De fait, cette boucle doit être réalisée un certain nombre de fois avant que l'on obtienne une valeur fixe en sortie.
Figure 27. Architecture d'un réseau à inhibition latérale récurrente.
Chaque pixel d'entrée est connecté à un ensemble de neurones par des connexions excitatrices. Sur le réseau, chaque neurone réalise des connexions locales inhibitrices.
Figure 27. Comportement d'un réseau à inhibition latérale récurrente.
Seuls les pixels noirs de la forme d'entrée envoient une information sur le réseau.
Pour chaque neurone, il y a compétition entre l'excitation en provenance de l'entrée et l'inhibition en provenance de ses voisins. On observe alors le développement au cours du temps de sous-groupes d'activité significatifs (angles, intersections, extrémités, etc).
Conclusion
Grâce aux quelques exemples de comportements vus, il est facile de comprendre que la disparition d'un ou même de plusieurs neurones (ou de connexions) ne provoque pas une rupture brutale du traitement. En fait, la dégradation du comportement est fonction de la quantité d'éléments détruits. Cette propriété est désignée sous le terme de résistance aux pannes.
Par rapport aux données biologiques recensées au chapitre précédent, nous constatons :
- une réduction du nombre de connexions par neurone (de 10 000 à quelques centaines maximum),
- une réduction drastique du nombre de neurones pour un réseau artificiel (quelques centaines à comparer aux cent milliards du cerveau),
- une diminution de la complexité de la synapse et l'atypie des topologies proposées.
Ce qu'il faut retenir :
Les RNA doivent disposer de « nombreux » neurones, « nombreuses » synapses plastiques, et les neurones doivent prendre des « décisions ». Ceci est nécessaire et suffisant pour doter les RNA de capacités d'apprentissage et de généralisation – que nous aurons tendance à confondre (par anthropomorphisation) avec de l'intelligence.
Définition
« L'apprentissage est une phase du développement d'un réseau de neurones durant laquelle le comportement du réseau est modifié jusqu'à l'obtention du comportement désiré. »
Les variables modifiées pendant l'apprentissage sont les poids des connexions. L'apprentissage est la modification des poids du réseau dans l'optique d'accorder la réponse du réseau aux exemples et à l'expérience. Il est souvent impossible de décider a priori des valeurs des poids des connexions d'un réseau pour une application donnée. A l'issu de l'apprentissage, les poids sont fixés : c'est alors la phase d'utilisation.
Certains modèles de réseaux sont (improprement) dénommés à apprentissage permanent. Dans ce cas, il est exact que l'apprentissage ne s'arrête jamais – cependant on peut toujours distinguer une phase d'apprentissage (en fait la mise à jour du comportement) et une phase d'utilisation. Cette technique permet de conserver au réseau un comportement adapté malgré les fluctuations dans les données d'entrées.
Au niveau des algorithmes d'apprentissage, il y a deux grandes classes selon que l'apprentissage est dit « supervisé » ou « non supervisé ». Cette distinction repose sur la forme des exemples d'apprentissage.
Dans le cas de l'apprentissage supervisé, les exemples sont des couples (Entrée, Sortie associée) alors que l'on ne dispose que des valeurs (Entrée) pour l'apprentissage non supervisé. Remarquons cependant que les modèles à apprentissage non supervisé nécessitent avant la phase d'utilisation une étape de labellisation effectuée par l'opérateur humain. Cette étape n'est pas autre chose qu'une « supervision ».
L'apprentissage par renforcement est entre les deux. Ses exemples d'apprentissage fournissent une qualification de l'erreur (« juste », « faux », « sans avis »), et non une quantification (comme pour le supervisé).
La loi de Hebb
La loi de Hebb (1949) est un exemple d'apprentissage non supervisé .
Elle s'exprime de la manière suivante :
« Si 2 cellules sont activées en même temps alors la force de la connexion augmente ».
La modification de poids dépend de la co-activation des neurones pré et post synaptiques. La loi de Hebb (3ème colonne de la table suivante) qui explique le renforcement, a été étendue pour expliquer l'habituation (4ème colonne) :
xi | xj | ¶ wij | ¶ wij |
1 | - | ||
1 | - | ||
1 | 1 | + | + |
¶ wij est la dérivée partielle du poids, c'est à dire la modification qui sera appliquée à la valeur actuelle du poids (wij = wij + ¶ wij ). La dérivée partielle peut être calculée comme ¶ wij = xi*xj (co-activité des valeurs d'activation des deux neurones).
Algorithme d'apprentissage
L'algorithme d’apprentissage modifie de façon itérative (petit à petit) les poids. Il y a n neurones d'entrées, un unique neurone de sortie. Les exemples d'apprentissage sont des vecteurs donnant toutes les valeurs d'entrée et la valeur de sortie (e1, … , en , xd) . L'apprentissage continue tant qu'il y a des erreurs, c'est à dire tant que la sortie calculée est différente de la sortie désirée (la sortie désirée est celle donnée dans les exemples de la base d'apprentissage). On appelle itération d'apprentissage, le passage de tous les exemples de la base d'apprentissage une fois dans l'algorithme.
1/ Initialisation des poids w et du seuil S à des valeurs (petites) choisies au hasard.
2/ Présentation d'une entrée Ep = (e1, en) de la base d'apprentissage.
3/ Calcul de la sortie obtenue x pour cette entrée : a = S (wi * ei) - S
(la valeur de seuil est introduite ici dans le calcul de la somme pondérée) x = signe (a) ( si a > 0 alors x = +1 sinon a £ 0 alors x = -1 ) 4/ Si la sortie x est différente de la sortie désirée xd pour cet exemple d'entrée Ep alors il y a modification des poids : wi = wi + a * (ei *xd)
C. Touzet, Les réseaux de neurones artificiels : introduction au connexionnisme, 150 pages, Préface de Jeanny Hérault, EC2 éd., Paris, 1992.
que j'ai présentée dans deux ouvrages à destination du grand public parus aux éditions la Machotte en 2010 et 2014.
C. Touzet, "Sleep: the hebbian reinforcement of the local inhibitory synapses", Med.
Hypotheses, 85:359-364, 2015.
mais pas une erreur qui peut être positive et aussi négative car comment interpréter une erreur de -3 par rapport à une erreur de +1.
C'est plus grand ou plus petit ?
En 1900, Hilbert conjectura que les équations algébriques de haut degré ne peuvent pas être résolues par des fonctions construites comme substitution de fonctions continues de deux variables. En 1957, Kolmogorov contredit cette hypothèse en présentant son théorème de superposition (TSK), qui permet d’écrire toute fonction multivariée comme sommes et compositions de fonctions monovariées. Toutefois, Kolmogorov ne proposa pas de méthode pour la construction de ces fonctions monodimensionnelles et démontra seulement leur existence.
Il y a deux poids par colonne, un pour chaque entrée .