Artificial Neural Network

Réseau de neurones

Page d'aide sur l'homonymie Pour les articles homonymes, voir Réseau.
Vue simplifiée d'un réseau artificiel de neurones

Un réseau de neurones artificiel est un modèle de calcul 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 statistique, si bien qu’ils sont placés d’une part dans la famille des applications 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

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

La fonction des réseaux de neurones formels à l’instar du modèle vivant est de résoudre des problèmes. À l’opposé des méthodes traditionnelles de résolution informatique, on ne doit pas construire un programme pas à pas en fonction de la compréhension de celui-ci. Les paramètres les plus importants de ce modèle sont les coefficients synaptiques. Ce sont eux qui construisent le modèle de résolution en fonction des informations données au réseau. Il faut donc trouver un mécanisme qui permette de les calculer à partir des grandeurs que l’on peut acquérir du problème. C’est le principe fondamental de l’apprentissage. Dans un modèle de réseaux de neurones formels, apprendre, c’est d’abord calculer les valeurs des coefficients synaptiques en fonction des exemples disponibles.

Les travaux de McCulloch et Pitts n’ont pas donné d’indication sur une méthode pour adapter les coefficients synaptiques. Cette question au cœur des réflexions sur l’apprentissage a connu un début de réponse grâce aux travaux du physiologiste canadien Donald Hebb sur l’apprentissage en 1949 décrits dans son ouvrage The Organization of Behaviour. Hebb a proposé une règle simple qui permet de modifier la valeur des coefficients synaptiques en fonction de l’activité des unités qu’ils relient. Cette règle aujourd’hui connue sous le nom de « règle de Hebb » est presque partout présente dans les modèles actuels, même les plus sophistiqués.

Réseau de neurones avec rétroaction

À 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 de Donald Hebb 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 dans 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 explicites dans le corpus des systèmes adaptatifs, utilisés dans le domaine des télécommunications ou celui du contrôle de processus industriels.

[réf. nécessaire]

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 eut 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 années 1960, 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éaires : le perceptron multicouche ne possède pas les défauts mis en évidence par Marvin Minsky. Proposé pour la première fois par Werbos, le Perceptron Multi-Couche apparait en 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 essor considérable, et ont fait partie 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 importantes 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 sur-apprentissage 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é, espérance-maximisation...) et que ceux-ci soient appliqués aux modèles statistiques classiques, aux modèles de Markov cachés ou aux réseaux de neurones formels.

Utilité

Les réseaux de neurones, en tant que système capable d'apprendre, mettent en œuvre le principe de l'induction, c’est-à-dire l'apprentissage par l'expérience. Par confrontation avec des situations ponctuelles, ils infèrent un système de décision intégré dont le caractère générique est fonction du nombre de cas d'apprentissages rencontrés et de leur complexité par rapport à la complexité du problème à résoudre. Par opposition, les systèmes symboliques capables d'apprentissage, s'ils implémentent également l'induction, le font sur base de la logique algorithmique, par complexification d'un ensemble de règles déductives (ex : prolog).

Grâce à leur capacité de classification et de généralisation, les réseaux de neurones sont généralement utilisés dans des problèmes de nature statistique, tels que la classification automatique de codes postaux ou la prise de décision concernant un achat boursier en fonction de l'évolution des cours. Autre exemple, une banque peut générer un jeu de données sur les clients qui ont effectué un emprunt constituées : de leur revenu, 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. La banque pourra alors 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 « aucune idée », 0,9 pour « presque sûr qu’il sera bon client »).

Le réseau de neurones ne fournit pas toujours de règle exploitable par un humain. Le réseau reste souvent 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 à interpréter.

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

  • pour la classification ; par exemple pour la classification d’espèces animales par espèce étant donnée une analyse ADN.
  • reconnaissance de motif ; par exemple pour la Reconnaissance optique de caractères (OCR), et notamment par les banques pour vérifier le montant des chèques, par La Poste pour trier le courrier en fonction du code postal, etc. ; ou bien encore pour le déplacement automatisé de robots mobiles autonomes.
  • approximation d’une fonction inconnue.
  • modélisation accélérée d’une fonction connue mais très complexe à calculer avec exactitude ; par exemple certaines fonctions d’inversions utilisées pour décoder les signaux de télédétection émis par les satellites et les transformer en données sur la surface de la mer.
  • estimations boursières :
    • apprentissage de la valeur d’une entreprise en fonction des indices disponibles : bénéfices, endettements à long et court terme, chiffre d’affaires, carnet de commandes, indications techniques de conjoncture. Ce type d’application ne pose pas en général de problème
    • tentatives de prédiction sur la périodicité des cours boursiers. Ce type de prédiction est très contesté pour deux raisons, l’une étant qu'il n'est pas évident que le cours d’une action ait de façon tout à fait convaincante un caractère périodique (le marché anticipe en effet largement les hausses comme les baisses prévisibles, ce qui applique à toute périodicité éventuelle une variation de période tendant à la rendre difficilement fiable), et l’autre que l’avenir prévisible d’une entreprise détermine au moins aussi fortement le cours de son action, si ce n'est plus encore que peut le faire son passé; les cas de Pan Am, Manufrance ou IBM permettent de s’en convaincre.
  • modélisation de l'apprentissage et amélioration des techniques de l'enseignement.

Limites

  • Les réseaux de neurones artificiels ont besoin de cas réels servant d’exemples pour leur apprentissage (on appelle cela la base d'apprentissage). Ces cas doivent être d’autant plus nombreux que le problème est complexe et que sa topologie est peu structurée. Par exemple, on peut optimiser un système neuronal de lecture de caractères en utilisant le découpage manuel d’un grand nombre de mots écrits à la main par de nombreuses personnes. Chaque caractère peut alors être présenté sous la forme d’une image brute, disposant d’une topologie spatiale à deux dimensions, ou d’une suite de segments presque tous liés. La topologie retenue, la complexité du phénomène modélisé, et le nombre d’exemples doivent être en rapport. Sur un plan pratique, cela n’est pas toujours facile car les exemples peuvent être soit en quantité absolument limitée ou trop onéreux à collecter en nombre suffisant.
  • Il y a des problèmes qui se traitent bien avec les réseaux de neurones, en particulier ceux de classification en domaines convexes (c’est-à-dire tels que si des points A et B font partie du domaine, alors tout le segment AB en fait partie aussi). Des problèmes comme "Le nombre d’entrées à 1 (ou à zéro) est-il pair ou impair ?" se résolvent en revanche très mal : pour affirmer de telles choses sur 2 puissance N points, si on se contente d’une approche naïve mais homogène, il faut précisément N-1 couches de neurones intermédiaires, ce qui nuit à la généralité du procédé.

Modèle

Structure du réseau

Structure d'un neurone artificiel. Le neurone calcule la somme de ses entrées puis cette valeur passe à travers la fonction d'activation pour produire sa sortie.

Un réseau de neurone est en général composé d'une succession de couches dont chacune prend ses entrées sur les sorties de la précédente. Chaque couche (i) est composée de Ni neurones, prenant leurs entrées sur les Ni-1 neurones de la couche précédente. À chaque synapse est associée un poids synaptique, de sorte que les Ni-1 sont multipliés par ce poids, puis additionnés par les neurones de niveau i, ce qui est équivalent à multiplier le vecteur d'entrée par une matrice de transformation. Mettre l'une derrière l'autre les différentes couches d'un réseau de neurones reviendrait à mettre en cascade plusieurs matrices de transformation et pourrait se ramener à une seule matrice, produit des autres, s'il n'y avait à chaque couche, la fonction de sortie qui introduit une non linéarité à chaque étape. Ceci montre l'importance du choix judicieux d'une bonne fonction de sortie : un réseau de neurones dont les sorties seraient linéaires n'aurait aucun intérêt.

Au-delà de cette structure simple, le réseau de neurones peut également contenir des boucles qui en changent radicalement les possibilités mais aussi la complexité. De la même façon que des boucles peuvent transformer une logique combinatoire en logique séquentielle, les boucles dans un réseau de neurones transforment un simple dispositif de reconnaissance d'inputs en une machine complexe capable de toute sortes de comportements.

Comparaison avec le cerveau humain

Il y a des milliards de neurones dans un cerveau humain (plusieurs sources citent le chiffre de 100 milliards[réf. souhaitée]). Bien que ceux-ci travaillent en régime impulsionnel (ils produisent des trains plus ou moins denses d'impulsions d'énergie fixe), on peut les assimiler grossièrement à des sommateurs, chaque neurone pouvant recevoir les informations de dizaines ou parfois de centaines de milliers d'autres neurones. On estime généralement que l'ensemble du cerveau humain contiendrait de l'ordre du million de milliard de synapses (2 * 1015), ce qui nous amène à un chiffre moyen de 10 000 synapses par neurones. Chaque neurone est limité par le besoin de recharger ses batteries après avoir émis un potentiel d'action, ce qui le rend inactif pendant à peu près 10ms, ce qui détermine une vitesse de fonctionnement maximale de 100 Hz. ce qui nous donne une cadence maximale de ~1017 opérations par seconde. Cependant, comme en dehors de la limite inférieure de 10ms, les écarts entre impulsions sont des valeurs analogiques, et comme d'un autre côté les informations véhiculées le sont dans des trains de plusieurs impulsions, il est quasiment impossible de comparer les opérations de base du cerveau avec celles d'un ordinateur. Comme, de plus, les chiffres cités sont probablement extrêmement variables en fonction des personnes, il faut compter un niveau d'incertitude important autour de cette valeur. La puissance d’un cerveau humain serait donc « au banc », si l’on peut dire, de l'ordre de 2 * 1015 à 2 * 1019 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 2 * 1011 opérations logiques par seconde dans le cas du PowerPC.

En dépit de ce différentiel de puissance, 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 éduquer correctement un cerveau de 1011 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 :

  • Les réseaux de type MLP (Multi-Layer Perceptron) calculent une combinaison linéaire des entrées, c’est-à-dire que la fonction de combinaison renvoie le produit scalaire entre le vecteur des entrées et le vecteur des poids synaptiques.
  • Les réseaux de type RBF (Radial Basis Function) calculent la distance entre les entrées, c’est-à-dire que la fonction de combinaison renvoie la norme euclidienne du vecteur issu de la différence vectorielle entre les vecteurs d’entrées.

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 sigmoïde.
  2. La fonction tangente hyperbolique.
  3. La fonction de Heaviside.

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 (\frac{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 : c'est un procédé par induction.

La notion d’apprentissage recouvre deux réalités souvent traitées de façon successive :

  • mémorisation : le fait d’assimiler sous une forme dense des exemples éventuellement nombreux,
  • généralisation : le fait d’être capable, grâce aux exemples appris, de traiter des exemples distincts, encore non rencontrés, mais similaires.

Ces deux points 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.

  • La généralisation est traitée de façon globale et générique par la théorie de la régularisation statistique introduite par Vladimir Vapnik. Cette théorie, développée à l’origine en Union Soviétique, s’est diffusée en Occident depuis la Chute du Mur. La théorie de la régularisation statistique s’est diffusée très largement parmi ceux qui étudient les réseaux de neurones en raison de la forme générique des courbes d’erreurs résiduelles d’apprentissage et de généralisation issues des procédures d’apprentissage itératives telles que les descentes de gradient utilisées pour l’optimisation des perceptrons multi-couches. Ces formes génériques correspondent aux formes prévues par la théorie de la régularisation statistiques ; cela vient du fait que les procédures d’apprentissage par descentes de gradient, partant d’une configuration initiale des poids synaptiques explorent progressivement l’espace des poids synaptiques possibles ; on retrouve alors la problématique de l’augmentation progressive de la capacité d’apprentissage, concept fondamental au cœur de la théorie de la régularisation statistique.
  • La généralisation est aussi au cœur de l’approche de l'inférence bayésienne, enseignée depuis plus longtemps. Le théorème de Cox-Jaynes fournit ainsi une base importante à un tel apprentissage, en nous apprenant que toute méthode d’apprentissage est soit isomorphe aux probabilités munies de la relation de Bayes, soit incohérente. C’est là un résultat extrêmement fort, et c’est pourquoi les méthodes bayésiennes sont largement utilisées dans le domaine.

Classe de problèmes solubles

En fonction de la structure du réseau, différents types de fonction sont approchables grâce aux réseaux de neurones :

Fonctions représentables par un perceptron

Un perceptron (un réseau à une unité) peut représenter les fonctions booléennes suivantes : AND, OR, NAND, NOR mais pas le XOR. Comme toute fonction booléenne est représentable à l'aide de AND, OR, NAND et NOR, un réseau de perceptrons est capable de représenter toutes les fonctions booléennes.

Fonctions représentables par des réseaux de neurones multicouches acycliques

  • Fonctions booléennes : Toutes les fonctions booléennes sont représentables par un réseau à deux couches. Au pire des cas, le nombre de neurones de la couche cachée augmente de manière exponentielle en fonction du nombre d'entrées.
  • Fonctions continues : Toutes les fonctions continues bornées sont représentables, avec une précision arbitraire, par un réseau à deux couches (Cybenko, 1989). Ce théorème s'applique au réseau dont les neurones utilisent la sigmoïde dans la couche cachée et des neurones linéaires (sans seuil) dans la couche de sortie. Le nombre de neurones dans la couche cachée dépend de la fonction à approximer.
  • Fonctions arbitraires: N'importe quelle fonction peut être approximée avec une précision arbitraire grâce à un réseau à 3 couches (Théorème de Cybenko, 1988).

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.

La vision topologique d’un apprentissage correspond à la détermination de l’hypersurface sur \mathbb{R}^n\mathbb{R} est l’ensemble des réels, et n le nombre d’entrées du réseau.

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 souvent que les exemples de la base d'apprentissage comportent des valeurs approximatives ou bruitées. Si on oblige le réseau à répondre de façon quasi parfaite relativement à ces exemples, on peut obtenir un réseau qui est biaisé par des valeurs erronées. Par exemple, imaginons qu'on présente au réseau des couples (xi,f(xi)) situés sur une droite d'équation y=ax+b, mais bruités de sorte que les points ne soient pas exactement sur la droite. S'il y a un bon apprentissage, le réseau répond ax+b pour toute valeur de x présentée. S'il y a surapprentissage, le réseau répond un peu plus que ax+b ou un peu moins, car chaque couple (xi, f(xi) positionné en dehors de la droite va influencer la décision. Pour éviter le surapprentissage, il existe une méthode simple : il suffit de partager la base d'exemples en 2 sous-ensembles. Le premier sert à l'apprentissage et le 2e sert à l'évaluation de l'apprentissage. Tant que l'erreur obtenue sur le 2e ensemble diminue, on peut continuer l'apprentissage, sinon on arrête.

Rétropropagation

La rétropropagation consiste à rétropropager l'erreur commise par un neurone à ses synapses et aux neurones qui y sont reliés. Pour les réseaux de neurones, on utilise habituellement la rétropropagation du gradient de l'erreur, qui consiste à corriger les erreurs selon l'importance des éléments qui ont justement participé à la réalisation de ces erreurs : les poids synaptiques qui contribuent à engendrer une erreur importante se verront modifiés de manière plus significative que les poids qui ont engendré une erreur marginale.

Élagage

L'élagage ("pruning", en anglais) est une méthode qui permet d'éviter le surapprentissage tout en limitant la complexité du modèle. Elle consiste à supprimer des connexions (ou synapses), des entrées ou des neurones du réseau une fois l'apprentissage terminé. En pratique, les éléments qui ont la plus petite influence sur l'erreur de sortie du réseau sont supprimés. Les deux algorithmes d'élagage les plus utilisés sont :

  • Optimal Brain Damage (OBD) de Y. LeCun et al.
  • Optimal Brain Surgeon (OBS) de B. Hassibi et D.G. Stork

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 :

  • la topologie des connexions entre les neurones ;
  • la fonction d’agrégation utilisée (somme pondérée, distance pseudo-euclidienne...) ;
  • la fonction de seuillage utilisée (sigmoïde, échelon, fonction linéaire, fonction de Gauss, ...) ;
  • l’algorithme d’apprentissage (rétropropagation du gradient, cascade correlation) ;
  • d’autres paramètres, spécifiques à certains types de réseaux de neurones, tels que la méthode de relaxation pour les réseaux de neurones (e.g. réseaux de Hopfield) qui ne sont pas à propagation simple (e.g. Perceptron Multicouche).

De nombreux autres paramètres sont susceptibles d’être mis en œuvre dans le cadre de l’apprentissage de ces réseaux de neurones par exemple :

  • la méthode de dégradation des pondérations (weight decay), permettant d’éviter les effets de bord et de neutraliser le sur-apprentissage.

Réseaux à apprentissages supervisés

Sans rétropropagation

Perceptron
Perceptron monocouche
Article détaillé : Perceptron.
Perceptron multicouche
Adaline (ADAptive LInear NEuron)

Dans le cas d'Adaline, on effectue l'apprentissage en utilisant les sorties des neurones avant un passage à travers la fonction d'activation. De ce fait, on utilise uniquement la somme pondérée des entrées avec les poids.

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

Carte auto adaptative

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. Chaos Fractal [1][2][3]
  8. Discrete Bidirectional Associative Memory (BAM)
  9. Temporal Associative Memory (TAM)
  10. Adaptive Bidirectional Associative Memory (ABAM)
  11. Apprentissage compétitif

Dans ce type d'apprentissage non supervisé, les neurones sont en compétition pour être actifs. Ils sont à sortie binaire et on dit qu'ils sont actifs lorsque leur sortie vaut 1. Alors que dans les autres règles plusieurs sorties de neurones peuvent être actives simultanément, dans le cas de l'apprentissage compétitif, un seul neurone est actif à un instant donné. Chaque neurone de sortie est spécialisé pour « détecter » une suite de formes similaires et devient alors un détecteur de caractéristiques. La fonction d’entrée est dans ce cas, h = b-dist(W, X) où b, W et X sont respectivement les vecteurs seuil, poids synaptiques et entrées. Le neurone gagnant est celui pour lequel h est maximum donc si les seuils sont identiques, celui dont les poids sont les plus proches des entrées. Le neurone dont la sortie est maximale sera le vainqueur et sa sortie sera mise à 1 alors que les perdants auront leur sortie mise à 0. Un neurone apprend en déplaçant ses poids vers les valeurs des entrées qui l'activent pour augmenter ses chances de gagner. Si un neurone ne répond pas à une entrée, aucun ajustement de poids n'intervient. Si un neurone gagne, une portion des poids de toutes les entrées est redistribuée vers les poids des entrées actives. L'application de la règle donne les résultats suivants (Grossberg) : wij = lr(xj-wij) si le neurone i gagne, wij = 0 si le neurone i perd. Cette règle a pour effet de rapprocher le vecteur poids synaptique wij de la forme d'entrée xj.

Exemple : Considérons deux nuages de points du plan que l’on désire séparer en deux classes. x1 et x2 sont les deux entrées, w11 et w12 sont les poids du neurone 1 que l’on peut considérer comme les coordonnées d’un point ‘poids du neurone 1’ et w21 et w22 sont les poids du neurone 2. Si les seuils sont nuls, hi sera la distance entre les points à classer et les points poids. La règle précédente tend à diminuer cette distance avec le point échantillon lorsque le neurone gagne. Elle doit donc permettre à chaque point poids de se positionner au milieu d’un nuage. Si on fixe initialement les poids de manière aléatoire, il se peut que l’un des neurones se positionne près des deux nuages et que l’autre se positionne loin de sorte qu’il ne gagne jamais. Ses poids ne pourront jamais évoluer alors que ceux de l’autre neurone vont le positionner au milieu des deux nuages. Le problème de ces neurones que l’on qualifie de morts peut être résolu en jouant sur les seuils. En effet, il suffit d’augmenter le seuil de ces neurones pour qu’ils commencent à gagner.

Applications : Ce type de réseau et la méthode d'apprentissage correspondant peuvent être utilisés en analyse de données afin de mettre en évidence des similitudes entre certaines données.

Notes

S’agissant d’un modèle, les réseaux de neurones sont généralement utilisés dans le cadre de simulation logicielle. IMSL et Matlab disposent ainsi de bibliothèques dédiées 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

  • Warren Sturgis McCulloch and Walter Pitts. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5:115-133, 1943.
  • 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.
  • Y. Le Cun. Une procédure d’apprentissage pour réseau à seuil asymétrique. COGNITIVA 85, Paris, 4-7 juin 1985.
  • 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.
  • Lepage, R. & Solaiman, B., Les réseaux de neurones artificiels et leurs applications en imagerie et en vision par ordinateur, Coop ÉTS, 2003.

Notes et références

  1. Teuvo Kohonen, Content-addressable Memories, Springer-Verlag, 1987 ,ISBN 038717625X, 9780387176253, 388 pages
  2. Pribram, Karl (1991). Brain and perception: holonomy and structure in figural processing. Hillsdale, N. J.: Lawrence Erlbaum Associates. ISBN 0898599954. quote of « fractal chaos » neural network
  3. D. Levine et al, oscillations in neural systems, publié par Lawrence Erlbaum Associates, 1999, 456 pages, ISBN 0805820663, 9780805820669

Bibliographie

  • Léon Personnaz et Isabelle Rivals, Réseaux de neurones formels pour la modélisation, la commande et la classification, CNRS Editions, 2003. Cet ouvrage s'adresse aux ingénieurs et aux chercheurs, ainsi qu'aux étudiants de DEA et d'écoles d'ingénieurs. Il traite de la mise en œuvre des réseaux de neurones formels (RNFs) dans les domaines suivants : a) la modélisation statique et dynamique, pour des processus industriels, écologiques, économiques, biologiques, etc. ; b) la sélection du meilleur modèle ; c) la commande de processus industriels ; d) la classification et la reconnaissance des formes. Ces domaines recouvrent la majorité des problèmes industriels de traitement de données numériques pour lesquels l'utilisation des RNFs est pertinente. Deux annexes sont consacrées aux algorithmes d’optimisation et aux outils statistiques indispensables. Voir : http://www.esa.espci.fr/livre.html
  • Richard P. Lippman, An Introduction to Computing with Neural Nets, IEEE ASSP Magazine, avril 1987, p. 4-22 : 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, Janvier 1988 : 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 ;
  • Neural Networks : biological computers or electronic brains - Les entretiens de Lyon – (sous la direction de École normale supérieure de Lyon) - Editions Springer-Verlag 1990.
  • 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 (du LORIA de Nancy) et de la nécessité d’une architecture parallèle ;
  • Gérard Dreyfus, Jean-Marc Martinez, Mannuel Samuelides, Mirta Gordon, Fouad Badran, Sylvie Thiria, "Apprentissage statistique : réseaux de neurones, cartes topologiques, machines à vecteurs supports" Eyrolles [2008].
  • Simon Haykin, « Neural Networks : A Comprehensive Foundation (2nd Edition) », [1998] Prentice Hall. Certainement l'une des meilleures références disponibles, couvrant de manière précise la plupart des concepts nécessaires à l'utilisation et à la compréhension des réseaux de neurones.
  • Christopher M. Bishop, « Neural Networks for Pattern Recognition », Oxford University Press [1995]. Si cet ouvrage va moins loin que celui de Simon Haykin dans les détails des réseaux de neurones, il présente l'avantage de les placer dans le cadre de la reconnaissance de forme et donc de présenter d'autres techniques, parfois plus simples à mettre en œuvre.
  • Ben Krose et Patrick van der Smagt, «  An Introduction to Neural Networks » [8ème édition, 1996]

Liens externes

Voir aussi

  • Portail des probabilités et des statistiques Portail des probabilités et des statistiques
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « R%C3%A9seau de neurones ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Artificial Neural Network de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Artificial neural network — An artificial neural network (ANN), usually called neural network (NN), is a mathematical model or computational model that is inspired by the structure and/or functional aspects of biological neural networks. A neural network consists of an… …   Wikipedia

  • NETtalk (artificial neural network) — NETtalk is an artificial neural network. It is the result of research carried out in the mid 1980s by Terrence Sejnowski and Charles Rosenberg. The intent behind NETtalk was to construct simplified models that might shed light on the complexity… …   Wikipedia

  • Neural network software — is used to simulate, research, develop and apply artificial neural networks, biological neural networks and in some cases a wider array of adaptive systems. Contents 1 Simulators 1.1 Research simulators 1.2 …   Wikipedia

  • Neural network (disambiguation) — Neural network(s) may refer to: Science Neural network (NN), The cognitive processes of Neurons (biological nodes) or Neurodes (artificial nodes) These form the structure and architecture of brains, in animals and human beings. Artificial neural… …   Wikipedia

  • Neural network — For other uses, see Neural network (disambiguation). Simplified view of a feedforward artificial neural network The term neural network was traditionally used to refer to a network or circuit of biological neurons.[1] The modern usage of the term …   Wikipedia

  • neural network — 1. any group of neurons that conduct impulses in a coordinated manner, as the assemblages of brain cells that record a visual stimulus. 2. Also called neural net. a computer model designed to simulate the behavior of biological neural networks,… …   Universalium

  • neural network — /njurəl ˈnɛtwɜk/ (say nyoohruhl netwerk) noun a software simulation of the interconnecting links of the brain, used in artificial intelligence systems and research …   Australian English dictionary

  • Biological neural network — From Texture of the Nervous System of Man and the Vertebrates by Santiago Ramón y Cajal. The figure illustrates the diversity of neuronal morphologies in the auditory cortex. In neuroscience, a biological neural network describes a population of… …   Wikipedia

  • Feedforward neural network — A feedforward neural network is an artificial neural network where connections between the units do not form a directed cycle. This is different from recurrent neural networks.The feedforward neural network was the first and arguably simplest… …   Wikipedia

  • Optical neural network — An optical neural network is a physical implementation of an artificial neural network with optical components. Some artificial neural networks that have been implemented as optical neural networks include the Hopfield neural network[1][2] and… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”