Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

Réseau de neurones


Un réseau de neurones (ou Artificial Neural Network en anglais) est un modèle de calcul et dont la conception est très schématiquement inspirée du fonctionnement de vrais neurones (humains ou non). Les réseaux de neurones sont généralement optimisés par des méthodes d’apprentissage de type statistiques, si bien qu'il sont placés d'une part dans la famille des méthodes issues de la théorie des statistiques, qu'ils enrichissent avec un ensemble de paradigmes permettant de générer de vastes espaces fonctionnels souples et partiellement structurés, et d'autre part dans la famille des méthodes de l'intelligence artificielle qu'ils enrichissent en permettant de prendre des décisions s'appuyant davantage sur la perception que sur le raisonnement logique formel.


Sommaire

Historique

Comme nous l'avons évoqué plus haut, les réseaux de neurones sont construits sur un paradigme biologique, celui du neurone formel (au même titre que les algorithmes génétiques le sont sur la sélection naturelle). Ces types de métaphores biologiques sont devenues courantes avec les idées de la cybernétique. Les neurologues Warren Sturgis McCulloch et Walter Pitts menèrent les premiers travaux sur les réseaux de neurones à la suite de leur article fondateur : What the frog's eye tells to the frog's brain.

Ils constituèrent un modèle simplifié 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. À 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, y compris lorsque son instructeur commet quelques erreurs (ce en quoi il diffère nettement d'un système d'apprentissage logique formel). D'autres travaux marquèrent également le domaine, comme ceux du physiologiste américain Donald Hebb sur l'apprentissage en 1949.

En 1969, un coup grave fut porté à la communauté scientifique gravitant autour des réseaux de neurones : Marvin Lee Minsky et Seymour Papert publièrent un ouvrage mettant en exergue quelques limitations théoriques du Perceptron, notamment l'impossibilité de traiter des problèmes non linéaires ou de connexité. Ils étendirent implicitement ces limitations à tous modèles de réseaux de neurones artificiels. Paraissant alors une impasse, la recherche sur les réseaux de neurones perdit une grande partie de ses financements publics, et le secteur industriel s'en détourna aussi. Les fonds destinés à l'intelligence artificielle furent redirigés plutôt vers la logique formelle et la recherche piétina pendant dix ans. Cependant, les solides qualités de certains réseaux de neurones en matière adaptative, (e.g. Adaline), leur permettant de modéliser de façon évolutive des phénomènes eux-mêmes évolutifs les amèneront à être intégrés sous des formes plus ou moins explicite dans le corpus des systèmes adaptatifs, utilisés dans le domaine des télécommunications ou celui du contrôle de processus industriels.

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 un sujet d'étude acceptable, bien que le modèle de Hopfield souffrait des principales limitations des modèles des anées 60, notamment l'impossibilité de traiter les problèmes non-linéaires.

À la même date, les approches algorithmiques de l'intelligence artificielle furent l'objet de désillusion, leurs applications ne répondant pas aux attentes. Cette désillusion motiva une réorientation des recherches en intelligence artificielle vers les réseaux de neurones (bien que ces réseaux concernent la perception artificielle plus que l' intelligence artificielle à proprement parler). La recherche fut relancée et l'industrie reprit quelque intérêt au neuronal (en particulier pour des applications comme le guidage de missiles de croisière). En 1984 (?), c'est le système de rétropropagation du gradient de l'erreur qui est le sujet le plus débattu dans le domaine.

Une révolution survient alors dans le domaine des réseaux de neurones artificiels : une nouvelle génération de réseaux de neurones, capables de traiter avec succès des phénomènes non-linéaire : le perceptron multicouche ne possède pas les défauts mis en évidence par Minsky. Proposé pour la première fois par Werbos, le Perceptron Multi-Couche apparait 1986 introduit par Rumelhart, et, simultanément, sous une appellation voisine, chez Yann le Cun. Ces systèmes reposent sur la rétropropagation du gradient de l'erreur dans des systèmes à plusieurs couches, chacune de type Adaline de Bernard Widrow, proche du Perceptron de Rumelhart.

Les réseaux de neurones ont par la suite connu un essort considérable, et ont fait parti des premiers systèmes à bénéficier de l'éclairage de la théorie de la régularisation statistique introduite par Vladimir Vapnik en Union Soviétique et popularisée en Occident depuis la Chute du Mur. Cette théorie, l'une des plus importante du domaine des statistiques, permet d'anticiper, d'étudier et de réguler les phénomènes liés au sur-apprentissage. On peut ainsi réguler un système d'apprentissage pour qu'il arbitre au mieux entre une modélisation pauvre (exemple : la moyenne) et une modélisation trop riche qui serait optimisée de façon illusoire sur un nombre d'exemples trop petit, et serait inopérant sur des exemples non encore appris, même proches des exemples appris. Le surapprentissage est une difficulté à laquelle doivent faire face tous les systèmes d'apprentissage par l'exemple, que ceux-ci utilisent des méthodes d'optimisation directe (e.g. régression linéaire), itératives (e.g. descente de gradient), ou itératives semi-directes (gradient conjugué, estimation-maximisation de Baum...) et que ceux-ci soient appliqués aux modèles statistiques classiques, aux modèles de Markov ou aux réseaux de neurones formels.


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 nature statistiques et perceptives, telles que la classification ou l' évalutation. 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 suffisamment 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 traduit 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 facile à lire sur la façon dont celle-ci est obtenue.

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

Limites

Modèle

Structure du réseau

Il y a des milliards de neurones dans un cerveau humain : 2x10^12, pour être précis. Le temps de relaxation de ces neurones est d'environ 10ms, soit un fonctionnement à la vitesse maximale de 100 Hz (en fait, il semble établi que les neurones traitent simultanément des signaux à diverses fréquences, l'ensemble étant désembrouillé par d'autres neurones en aval). La puissance d'un cerveau humain est donc « au banc », si l'on peut dire, de 2x10^14 opérations logiques par seconde.

Un processeur de type Pentium IV, AMD64 ou PowerPC 970, en 2004, travaille à une fréquence de 3 GHz sur des mots de 32 (Pentium) ou 64 (AMD64 ou PowerPC) bits, ce qui - pour donner un ordre de grandeur - correspond à une puissance brute de 2x10^11 opérations logiques par seconde dans le cas du PowerPC.

En dépit de ce différentiel de puissance (un rapport de 1 à 1000 est celui que l'on observe entre les vitesses d'un piéton et d'un chasseur supersonique), il est tentant de simuler le fonctionnement de neurones pour résoudre quelques problèmes simples. Une raison de se réjouir de cette simplicité est que pour finir d'éduquer correctement un cerveau de 2x10^12 neurones, il ne faut tout de même pas moins de 25 ans, temps dont il est difficile de disposer en laboratoire.

Un réseau de neurones (on parle parfois aussi de réseau neuromimétique) est constitué d'un très grand nombre de petites unités de traitement identiques appelées neurones artificiels. Elles étaient électroniques dans les premières implémentations (perceptrons de Rosenblatt); on les simule le plus souvent sur ordinateur aujourd'hui pour des questions de coût et de commodité.

Les neurobiologistes savent que chaque neurone naturel est connecté parfois à quelques milliers d'autres, et qu'il leur transmet une information en envoyant des ondes de dépolarisation (grosso modo, des pics électriques). Plus précisément, le neurone reçoit en entrée les signaux provenant des autres par des synapses, 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 peut donc se représenter par un réseau ou graphe orienté dont les nœuds sont les neurones artificiels.

La taille et la vitesse des réseaux leur permettent de traiter très correctement des questions de perception ou de classification automatique (et approximative) : ce sont souvent par exemple des applications à base de réseaux de neurones formels qui conduisent votre banque à vous accorder un prêt en moins de dix minutes.

Il ne faut pas en espérer beaucoup plus avec la génération de machines actuelle, mais les applications en sont déjà très utiles dans les applications de filtrage et de reconnaissance des formes. Bref, il s'agit plus de perception assistée que d' intelligence artificielle à proprement parler. Il faut remarquer que dans nos organismes aussi le traitement du signal visuel par la rétine et son exploitation par le cerveau se fait par des organes et des processus séparés.

Fonction de combinaison

Considérons un neurone quelconque.

Il reçoit des neurones en amont un certain nombre de valeurs via ses connexions 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, notamment :

Fonction d'activation

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

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

  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 classiques de fonctions d'activation sont:

  1. La fonction tangente hyperbolique
  2. La fonction sigmoïde
  3. La fonction discriminante de Kronecker

La logique bayésienne, dont le théorème de Cox-Jaynes formalise les questions d'apprentissage, fait intervenir aussi une fonction en S qui revient de façon récurrente : ev(p) = 10 log((p/(1-p))

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'intervalle [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

Base théorique

La notion d' apprentissage, bien que connue déjà depuis Sumer, n'est pas modélisable dans le cadre de la logique déductive : celle-ci en effet procède à partir de connaissances déjà établies dont on tire des connaissances dérivées. Or il s'agit ici de la démarche inverse : par observations limitées, tirer des généralisations plausibles.

La notion d'apprentissage recouvre deux réalités successives :

Ces deux point sont partiellement en opposition. Si on privilégie l'un, on élaborera un système qui ne traitera pas forcément de façon très efficace l'autre.

Dans le cas des systèmes d'apprentissage statistique, utilisés pour optimiser les modèles statistiques classiques, réseaux de neurones et automates markoviens, c'est la généralisation qui est l'objet de toute l'attention.

Cette notion de généralisation est traitée de façon plus ou moins complète par plusieurs approches théoriques.

Classe de problèmes solubles

Il s'agira essentiellement de fournir des zones de réponse (dans un espace à N dimensions) ayant une certaine continuité en fonction des N valeurs d'entrée, en ajustant des paramètres sur un échantillon dont on connaît les classifications souhaitées.

Prenons un exemple : Nous disposons en valeurs d'entrée de la taille et du poids de visiteurs, ainsi que de leur sexe pour le seul échantillon d'apprentissage. Nous pouvons entraîner un réseau de neurones à estimer de façon la moins mauvaise possible si un individu est un homme ou une femme, sur les uniques bases de sa taille et de son poids à l'exclusion de tout autre renseignement. La convergence se fera, et le réseau sera apte à effectuer une reconnaissance. Pas extraordinaire, cela va de soi, mais il se trompera moins d'une fois sur deux et fera donc mieux qu'une estimation à pile ou face. Pour le reste, comme on dit, garbage in, garbage out.

Algorithme

La large majorité des réseaux de neurones 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 exemples. 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

Mode 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.

Surapprentissage

Il arrive qu'à faire apprendre un réseau de neurones toujours sur le même échantillon, celui-ci devienne inapte à reconnaître autre chose que les éléments présents dans l'échantillon. On parle alors de surapprentissage : le réseau est devenu trop spécialisé et ne généralise plus correctement.

Rétropropagation

Quand survient une erreur, il paraît logique de corriger d'autant plus les informations amont que celles-ci ont pris de participation à l'erreur. Ce principe fonde les méthodes de type descente de gradient, qui sont efficacement calculées dans des réseaux de neurones multicouche tels que les perceptrons multicouchels (MLP) par l'algorithme de rétropropagation du gradient de l'erreur. Les descentes de gradient sont pertinentes pour rapprocher itérativement la configuration des poids synaptiques de configuration qui minimalisent localement la fonction optimisée, dite fonction de coût. Normalement, la fonction de coût est non-linéaire au regard des poids synaptiques ; elle dispose d'une borne inférieure ; sa minimalisation itérative a donc un sens, et, moyennant quelques précautions sur la conduite de l'apprentissage, les procédures d'optimisation finissent par aboutir à des configurations stables de poids synaptiques, constituant des minima locaux de la fonction optimisée, dite fonction de coût. Dans le cas de l'apprentissage supervisé de réseaux à propagation (e.g. la Perceptron Multicouche), la fonction de coût est la résultante de la fonction induite par le réseau de neurones et de la fonction d'erreur.

Différents types de réseaux de neurones

L'ensemble des poids des liaisons synaptiques 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 neurones qui ne font ni partie de la couche d'entrée ni de la couche de sortie sont dits neurones cachés.

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

De nombreux autres paramètres sont suscpetibles d'être mis en oeuvre dans le cadre de l'apprentissage de ces réseaux de neurones par exemple :

Réseaux à apprentissage supervisé

Sans rétropropagation

Perceptron

Perceptron monocouche

Perceptron multicouche

Adaline (ADAptive LInear NEuron)

hhhhhhhhhhhhh

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é


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, comme la puce ZISC..

Références

Bibliographie

Voir aussi



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia