Réseau de neurones

Un réseau de neurones (ou Artificial Neural Network en anglais) est un modèle de calcul utilisé en intelligence artificielle, et dont la conception est fortement inspirée de nos connaissances sur le cerveau humain (ou animal).

Table of contents
1 Historique
2 Utilité
3 Modèle
4 Apprentissage
5 Différents types de réseaux de neurones
6 Bibliographie

Historique

Comme nous l'avons évoqué plus haut, les réseaux de neurones constituent un paradigme biologique, au même titre que les Algorithmes génétiques. Ce type de métaphores biologiques sont en fait une vue de l'esprit propre au mouvement de la Cybernétique. Et ce sont en effet les cybernéticiens Warren Sturgis McCulloch et Walter Pitts qui menèrent les premiers travaux sur les réseaux de neurones.

Ils constituèrent un modèle de neurone biologique communément appelé neurone formel. Ils montrèrent également théoriquement que des réseaux de neurones formels simples peuvent réaliser des fonctions logiques, arithmétiques et symboliques complexes. A partir de cet article, l'idée se sema au fil du temps dans les esprits, et elle germa dans l'esprit de Franck Rosenblatt en 1957 avec le modèle du Perceptron .C'est le premier système artificiel capable d'apprendre par expérience. D'autres travaux marquèrent également le domaine, comme ceux du physiologiste américain Donald Hebb sur l'apprentissage en 1949.

Mais en 1969, un coup fatal fut porter à la communauté scientifique gravitant autour des réseaux de neurones : Marvin Lee Minsky et Seymour Papert publièrent un ouvrage qui mettait en exergue les limitations théoriques du Perceptron, notamment concernant l'impossibilité de traiter des problèmes non linéaires. Ils étendirent implicitement ces limitations à tous modèles de réseaux de neurones artificiels. Discréditée, la recherche sur les réseaux de neurones se vit retirer tout financement et le secteur industriel s'en détourna complètement. Les fonds furent redirigés vers une approche plus symbolique. Les ténèbres s'abattirent alors pour dix longues années.

En 1982, John Joseph Hopfield, physicien reconnu, donna un nouveau souffle au neuronal en publiant un article introduisant un nouveau modèle de réseau de neurones (complètement récurrent). Cet article eu du succès pour plusieurs raisons, dont la principale était de teinter la théorie des réseaux de neurones de la rigueur propre aux physiciens. Le neuronal redevint respectable.

Notons qu'à cette date, les approches classiques, principalement symboliques, de l'intelligence artificielle firent l'objet de désillusion, n'ayant pas répondu aux attentes. Ce regain de respectabilité et cette désillusion de la recherche contemporaine motivèrent une réorientation des recherches en intelligence artificielle vers les réseaux de neurones. Dès lors, tout fut à jouer : la recherche fut relancée et l'industrie reporta de l'intérêt au neuronal. Au début des années 80, le Perceptron fut revu, amélioré et approchait désormais toute fonction non-linéaire : le Perceptron Multi-Couche sauva son aîné des attaques de Minsky. Proposé pour la première fois par Werbos, le Perceptron Multi-Couche connut son heure de gloire en 1986 par le biais de Rumelhart et l'invention de l'algorithme de rétropropagation comme système d'apprentissage.

Utilité

Grâce à leur capacité de généralisation, les réseaux de neurones sont généralement utilisés dans des problèmes de classification. Par exemple, une banque peut générer un jeu de données sur les clients qui ont effectué un emprunt constituées de : leur revenus, de leur âge, du nombre d'enfants à charge, ... et s'il s'agit d'un bon client. Si ce jeu de données est suffisament grand, il peut être utilisé pour l'entraînement d'un réseau de neurones. Alors, la banque pourra présenter les caractéristiques d'un potentiel nouveau client, et le réseau répondra s'il sera bon client ou non, en généralisant à partir des cas qu'il connaît.

Si le réseau de neurones fonctionne avec des nombres réels, la réponse traduire une probabilité de certitude (par exemple: 1 pour "sûr qu'il sera un bon client", -1 pour "sûr qu'il sera mauvais client", 0 pour "je n'ai aucune idée", 0,9 pour "presque sûr qu'il sera bon client").

Il est à noter que le réseau de neurones ne fournit pas de règle exploitable par un humain. Le réseau reste une boîte noire qui fournit une réponse quand on lui présente une donnée, mais le réseau ne fournit pas de justification sur la façon dont celle-ci est obtenue.

Les réseaux de neurones sont réellement utilisés, par exemple:

Modèle

Structure du réseau

Il y a des millions de neurones dans un cerveau humain. Par analogie, un réseau de neurones est constitué d'un très grand nombre de petites unités de calcul appelées neurones artificiels. Les neurbiologistes savent que chaque neurone naturel est connecté aux autres, et qu'il leur transmet une information en générant des pics électriques. Plus précisément, le neurone reçoit en entrée les signaux provenant des autres par des synapes, et émet en sortie une information par son axone. De façon grossièrement similaire, les neurones artificiels sont connectés entre eux par des liaisons pondérées et unidirectionnelles; un réseau de neurones est donc un réseau ou graphe orienté dont les noeuds sont les neurones articiels.

Fonction de combinaison

Considérons un neurone quelconque. Il reçoit des neurones en amont un certain nombre de valeurs via ses connexion synaptiques, et il produit une certaine valeur en utilisant une fonction de combinaison. Cette fonction peut donc être formalisée comme étant une fonction vecteur-à-scalaire:

Fonction d'activation

La fonction d'activation (ou fonction de seuillage, ou encore fonction de transfert) sert à introduire une non-linéarité dans le fonctionement du neurone.

Les fonctions de seuillage présentent généralement trois intervales:

  1. en dessous du seuil, le neurone est non-actif (souvent dans ce cas, sa sortie vaut 0 ou -1) ;
  2. aux alentours du seuil, une phase de transition ;
  3. au dessus du seuil, le neurone est actif (souvent dans ce cas, sa sortie vaut 1).

Des exemples classsiques de fonctions d'activation sont:
  1. La fonction tangente hyperbolique
  2. La fonction fonction sigmoide
  3. La fonction discriminante de Kronecker

Propagation de l'information

Ce calcul effectué, le neurone propage son nouvel état interne sur son axone. Dans un modèle simple, la fonction neuronale est simplement une fonction de seuillage: elle vaut 1 si la somme pondérée dépasse un certain seuil; 0 sinon. Dans un modèle plus riche, le neurone fonctionne avec des nombres réels (souvent compris dans l'intervale [0,1] ou [-1,1]). On dit que le réseau de neurones passe d'un état à un autre lorsque tous ses neurones recalculent en parallèle leur état interne, en fonction de leurs entrées.

Apprentissage

La large majorité des réseaux de neirones possède un algorithme "d'entraînement" qui consiste à modifier les poids synaptiques en fonction d'un jeu de données présentées en entrée du réseau. Le but de cet entraînement est de permettre au réseau de neurones "d'apprendre" à partir des examples. Si l'entraînement est correctement réalisé, le réseau est capable de fournir des réponses en sortie très proches des valeurs d'origines du jeu de données d'entraînement.

Mais tout l'intérêt des réseaux de neurones réside dans leur capacité à généraliser à partir du jeu de test.

On peut donc utiliser un réseau de neurones pour réaliser une mémoire; on parle alors de mémoire neuronale.

Apprentissage supervisé ou non

Un apprentissage est dit supervisé lorsque l'on force le réseau à converger vers un état final précis, en même temps qu'on lui présente un motif.

À l'inverse, lors d'un apprentissage non-supervisé, le réseau est laissé libre de converger vers n'importe quel état final lorsqu'on lui présente un motif.

Rétropropagation

Différents types de réseaux de neurones

L'ensemble des poids des liaisons détermine le fonctionnement du réseau de neurones. Les motifs sont présentés à un sous-ensemble du réseau de neurones: la couche d'entrée. Lorsqu'on applique un motif à un réseau, celui-ci cherche à atteindre un état stable. Lorsqu'il est atteint, les valeurs d'activation des neurones de sortie constituent le résultat.

Les types de réseau de neurones diffèrent par plusieurs paramètres :

Réseaux à apprentissage supervisé

Sans rétropropagation

Perceptron
Perceptron monocouche
Perceptron multicouche
Adaline (ADAptive LInear NEuron)
Machine de Cauchy
Non détaillés
  1. Adaptive Heuristic Critic (AHC)
  2. Time Delay Neural Network (TDNN)
  3. Associative Reward Penalty (ARP)
  4. Avalanche Matched Filter (AMF)
  5. Backpercolation (Perc)
  6. Artmap
  7. Adaptive Logic Network (ALN)
  8. Cascade Correlation (CasCor)
  9. Extended Kalman Filter(EKF)
  10. Learning Vector Quantization (LVQ)
  11. Probabilistic Neural Network (PNN)
  12. General Regression Neural Network (GRNN)

Avec rétropropagation

Non détaillés
  1. Brain-State-in-a-Box (BSB)
  2. Fuzzy Congitive Map (FCM)
  3. Boltzmann Machine (BM)
  4. Mean Field Annealing (MFT)
  5. Recurrent Cascade Correlation (RCC)
  6. Backpropagation through time (BPTT)
  7. Real-time recurrent learning (RTRL)
  8. Recurrent Extended Kalman Filter (EKF)

Réseaux à apprentissage non supervisé

Sans rétropropagation

Sparse Distributed Memory (Kanerva's SDM)
Non détaillés
  1. Learning Matrix (LM)
  2. Driver-Reinforcement Learning (DR)
  3. Linear Associative Memory (LAM)
  4. Optimal Linear Associative Memory (OLAM)
  5. Fuzzy Associative Memory (FAM)
  6. Counterprogation (CPN)

Avec rétropropagation

Kohonen Self-organizing Map/Topology-preserving map (SOM/TPM)
Non détaillés
  1. Additive Grossberg (AG)
  2. Shunting Grossberg (SG)
  3. Binary Adaptive Resonance Theory (ART1)
  4. Analog Adaptive Resonance Theory (ART2, ART2a)
  5. Discrete Hopfield (DH)
  6. Continuous Hopfield (CH)
  7. Discrete Bidirectional Associative Memory (BAM)
  8. Temporal Associative Memory (TAM)
  9. Adaptive Bidirectional Associative Memory (ABAM)
  10. Competitive learning

Notes

S'agissant d'un modèle, les réseaux de neurones sont généralement utilisés dans le cadre de simulation logicielle. Matlab dispose ainsi d'une bibliothèque dédiée aux réseaux de neurones. Cependant, il existe quelques implémentations matérielles des modèles les plus simples.

Références

Franck Rosenblatt. The Perceptron : probabilistic model for information storage and organization in the brain. Psychological Review, 65:386-408, 1958.
Marvin Lee Minsky and Seymour Papert. Perceptrons : an introduction to computational geometry. MIT Press, expanded edition, 1988.
John Joseph Hopfield. Neural networks and physical systems with emergent collective computational abilities. Proceedings of the National Academy of Sciences, 79:2554-2558, 1982
D. E. Rumelhart and J. L. Mc Clelland. Parallel Distributed Processing: Exploration in the MicroStructure of Cognition. MIT Press, Cambridge, 1986.
J. A. Anderson and E. Rosenfeld. Neuro Computing Foundations of Research. MIT Press, Cambridge, 1988.
Tom Mitchell. Machine Learning. McGraw-Hill Science, 1997

Bibliographie

;Richard P. Lippman, « An Introduction to Computing with Neural Nets », IEEE ASSP Magazine, avril 1987, p. 4-22: est un article de présentation (en anglais). Il compare les classifieurs classiques aux réseaux de neurones. Il explique le réseau de Hopfield, les perceptrons mono et multicouche, les réseaux de Kohonen, et d'autres comme le réseau de Hamming, le classifieur de Carpenter-Grossberg ;

;Yves Cochet, Réseaux de neurones, résumé de cours de DESS-ISA option IA n°389, IRISA (Institut de Recherche en Informatique et Systèmes Aléatoires), Janvier 1988: est un article de synthèse présentant entre autres les implantations des algorithmes des réseaux de neurones. Il contient l'algorithme précis des réseaux multicouches, les principes du modèle de Hopfield, de la machine de Boltzmann, et une présentation de l'application NetTalk ;

;Claude Lhermitte, Intelligence Artificielle et Connexionnisme, Rapport technique n°10860/..a1991, Supélec, 1991: article général, met en évidence les limites des approches symbolique et connexionniste. Conclut sur la complémentarité des deux approches et leur convergence ;

;Jean-Paul Haton, Modèles connexionnistes pour l'intelligence artificielle, 1989: article de synthèse. Présentation et historique de l'approche neuronale. Discussion sur l'opposition symbolisme/connexionnisme. Introduction de la colonne corticale développée par l'équipe CORTEX (de Nancy) et de la nécessité d'une architecture parallèle ;

;Léon Personnaz, Gérard Dreyfus, et Isabelle Guyon, « Les machines neuronales », La Recherche, vol. 19, n°204, Novembre 1988, p. 1362-1371: article de vulgarisation très général, donne une explication informelle des différents algorithmes et des exemples concrets à foison.



Tous les textes sont disponibles sous les termes de la Wikipedia se publica bajo la Licencia de Documentación Libre GNU.

Legal  -  Contacto