|
|
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).
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.
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:
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.
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:
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:
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.
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.
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.
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 :
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.
;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.
Historique
Utilité
Modèle
Structure du réseau
Fonction de combinaison
Fonction d'activation
Des exemples classsiques de fonctions d'activation sont:
Propagation de l'information
Apprentissage
Apprentissage supervisé ou non
Rétropropagation
Différents types de réseaux de neurones
Réseaux à apprentissage supervisé
Sans rétropropagation
Perceptron
Perceptron monocouche
Perceptron multicouche
Adaline (ADAptive LInear NEuron)
Machine de Cauchy
Non détaillés
Avec rétropropagation
Non détaillés
Réseaux à apprentissage non supervisé
Sans rétropropagation
Sparse Distributed Memory (Kanerva's SDM)
Non détaillés
Avec rétropropagation
Kohonen Self-organizing Map/Topology-preserving map (SOM/TPM)
Non détaillés
Notes
Références
Bibliographie