2. 1. Introduction ___________________________________________________________ 3
Historique ____________________________________________________________________ 4
Analogie neurone formel et neurone biologique _____________________________________ 5
Exemple de réseaux de neurones __________________________________________________ 6
Applications ___________________________________________________________________ 7
2. Caractéristiques des réseaux de neurones artificiels ___________________________ 8
2.1. Poids (w) et biais (b) d’un neurone__________________________________________ 8
2.2. La fonction de sommation _________________________________________________ 8
2.3. La fonction de transfert__________________________________________________ 10
2.4. Réseaux statiques (Apprentissage par « paquet ») et Réseaux dynamiques
(Apprentissage « séquentiel ») ___________________________________________________ 11
3. Les différents types de réseaux de neurones et leurs applications ________________ 12
3.1. Le perceptron __________________________________________________________ 12
3.1.1. Description _________________________________________________________________ 12
3.1.2. Loi d’apprentissage du perceptron _______________________________________________ 12
3.2. Les réseaux (filtres) linéaires _____________________________________________ 13
3.2.1. Description _________________________________________________________________ 13
3.2.2. Algorithme d’apprentissage (LMS ou Windrow-Hoff algorithme)_______________________ 13
3.3. Le perceptron multicouche _______________________________________________ 15
3.3.1. Description _________________________________________________________________ 15
3.3.2. La rétro propagation ou algorithme d’apprentissage de « Backpropagation » ______________ 15
3.3.3. Amélioration de la généralisation (ou le dilemme biais/variance) _______________________ 16
3.3.4. Applications ________________________________________________________________ 17
3.4. Les réseaux de neurones à fonctions radiales de base (Radial Basis Network) _____ 23
3.4.1. Description _________________________________________________________________ 23
3.4.2. Les réseaux de neurones à régression généralisée (Generalized Regression Networks) _______ 24
3.4.3. Les réseaux de neurones probabilistes (Probabilistic Neural Networks)___________________ 25
3.5. Les réseaux de neurones compétitifs ou cartes auto organisatrices ______________ 26
3.5.1. Réseaux de neurone compétitif ou réseaux de Kohonen (loi d’apprentissage de Kohonen) ____ 26
3.5.2. Les cartes auto organisatrices ___________________________________________________ 27
3.5.3. Les LVQ réseaux de neurones___________________________________________________ 29
3.6. Les réseaux récurents ___________________________________________________ 30
3.6.1. Réseaux de Elman ____________________________________________________________ 30
3.6.2. Réseaux de Hopfield __________________________________________________________ 31
3. 1. Introduction
Les réseaux de neurones sont composés d’éléments simples (ou neurones) fonctionnant en
parallèle. Ces éléments ont été fortement inspirés par le système nerveux biologique. Comme
dans la nature, le fonctionnement du réseau (de neurone) est fortement influencé par la
connections des éléments entre eux. On peut entraîner un réseau de neurone pour une tâche
spécifique (reconnaissance de caractères par exemple) en ajustant les valeurs des connections
(ou poids) entre les éléments (neurone).
En général, l’apprentissage des réseaux de neurones est effectué de sorte que pour une entrée
particulière présentée au réseau corresponde une cible spécifique. L’ajustement des poids se
fait par comparaison entre la réponse du réseau (ou sortie) et la cible, jusqu’à ce que la sortie
corresponde (au mieux ?) à la cible. On utilise pour ce type d’apprentissage dit supervisé un
nombre conséquent de pair entrée/sortie.
L’apprentissage « par paquet » (batch training) du réseau consiste à ajuster les poids et biais
en présentant les vecteurs d’entrée/sortie de tout le jeu de données.
L’apprentissage « pas à pas ou séquentiel » (incremental training) consiste à ajuster les poids
et biais en présentant les composantes du vecteur d’entrée/sortie les unes après les autres. Ce
type d’apprentissage est souvent qualifié d’apprentissage « en ligne » (« on line » training) ou
« adaptatif » (« adaptive » training).
L’apprentissage permet aux réseaux de neurones de réaliser des taches complexes dans
différents types d’application (classification, identification, reconnaissance de caractères, de
la voix, vision, système de contrôle…). Ces réseaux de neurones peuvent souvent apporter
une solution simple à des problèmes encore trop complexes ne pouvant être résolus
rapidement par les ordinateurs actuels (puissance de calcul insuffisante) ou par notre manque
de connaissances.
La méthode d’apprentissage dite supervisé est souvent utilisée mais des techniques
d’apprentissage non supervisé existent pour des réseaux de neurones spécifiques. Ces réseaux
peuvent, par exemple, identifier des groupes de données (réseaux de Hopfield).
Les réseaux de neurones ont une histoire relativement jeune (environ 50 ans) et les
applications intéressantes des réseaux de neurones n’ont vu le jour qu’il à une vingtaine
d’année (développement de l’informatique).
L’objectif de ce cours (de 2 heures) est de présenter (sommairement) les grands types de
réseaux de neurones, leurs applications et éventuellement les règles et algorithmes
d’apprentissage. On s’attardera un petit peu plus sur le perceptron multicouche. Les figures de
ce cours sont issus du livre Neural Network Toolbox fournit par le logiciel Matlab et des
recherches effectuées au Laboratoire de Météorologie Physique.
4. Historique
Le champ des réseaux neuronaux va démarrer par la présentation en 1943 par W. McCulloch
et W. Pitts du neurone formel qui est une abstraction du neurone physiologique. Le
retentissement va être énorme. Par cette présentation, ils veulent démontrer que le cerveau est
équivalent à une machine de Turing, la pensée devient alors purement des mécanismes
matériels et logiques.
Une machine de Turing se résume à une tête de lecture comportant un nombre fini d’états
internes et à un ruban. La puissance de l’analyse de Turing (1912-1954) tient au fait que sa
tête de lecture ne lit qu’un seul symbole à la fois, et que cette lecture, associée à la table
d’états adéquate, suffit à effectuer toutes les opérations possibles. La Machine de Turing est
toutefois une machine imaginaire, abstraite, et idéale. Elle n’a pu être construite. Son
fonctionnement implique en effet d’avoir un ruban extensible à volonté donc infini! La
combinaison de cette mémoire infinie et d’un nombre d’états fini a cependant apporté la
preuve que, si un problème est calculable, alors il existe une machine pour le résoudre. Dès
lors, une MACHINE, reprenant les règles de toutes les autres, est UNIVERSELLE ».)
En 1949, D. Hebb présente dans son ouvrage « The Organization of Behavior » une règle
d’apprentissage. De nombreux modèles de réseaux aujourd’hui s’inspirent encore de la règle
de Hebb.
En 1958, F. Rosenblatt développe le modèle du perceptron. C’est un réseau de neurones
inspiré du système visuel. Il possède deux couches de neurones : une couche de perception et
une couche liée à la prise de décision. C’est le premier système artificiel capable d’apprendre
par expérience.
Dans la même période, Le modèle de L’Adaline (ADAptive LINar Element) a été présenté
par B. Widrow et Hoff. Ce modèle sera par la suite le modèle de base des réseaux multi-
couches.
En 1969, M. Minsky et S. Papert publient une critique des propriétés du Perceptron. Cela va
avoir une grande incidence sur la recherche dans ce domaine. Elle va fortement diminuer
jusqu’en 1972, où T. Kohonen présente ses travaux sur les mémoires associatives et propose
des applications à la reconnaissance de formes.
C’est en 1982 que J. Hopfield présente son étude d’un réseau complètement rebouclé, dont il
analyse la dynamique.
6. Exemple de réseaux de neurones
Réseau entièrement bouclé (carte Réseaux avec connections arrière (réseaux
topologique) récurrent ou feedback
7. Réseau « ordonné » sans connexion arrière (réseau feed-forward)
Applications
• Aérospatial : pilotage automatique, simulation du vol…
• Automobile : système de guidage automatique,…
• Défense : guidage de missile, suivi de cible, reconnaissance du visage, radar, sonar,
lidar, traitement du signal, compression de données, suppression du bruit…
• Electronique : prédiction de la séquence d’un code, vision machine, synthétiseur
vocal, modèle non linéaire,…
• Finance : Prévision du coût de la vie
• Secteur médical : Analyse EEC et ECG
• Télécommunications : Compression de données …
8. 2. Caractéristiques des réseaux de neurones artificiels
2.1. Poids (w) et biais (b) d’un neurone
2.2. La fonction de sommation
9. L’entrée d’un neurone contient le biais et la somme des ses poids. La sortie d’un neurone
dépend de l’entrée du neurone et de sa fonction de transfert f .
10. 2.3. La fonction de transfert
Fonction à seuil Tangente hyperbolique Fonction Gaussienne
Pas unitaire
Sigmoïde
Linéaire Seuillée
Gaussienne
Identité f (x) = x
11. 2.4. Réseaux statiques (Apprentissage par « paquet ») et Réseaux dynamiques
(Apprentissage « séquentiel »)
Le format des données d’entrée va affecter l’évolution des poids et biais des réseaux de
neurones lors de leur apprentissage.
Un réseau dit statique est un réseau qui ne contient pas de connexion arrières (feedback or
delay). Par conséquent, on peut lui présenter les données en entrée dans n’importe quel ordre,
cela n’influencera pas l’évolution de ses poids lors de la phase d’apprentissage. Il est alors
préférable de lui donner tout le jeu de donnée en un seul coup lors de la phase
d’apprentissage. On parle alors d’apprentissage par paquet (« batch training »). Les réseaux
« feedforward » ne peuvent pas simuler des processus dépendant du temps.
Par contre, si l’on veut simuler un processus qui dépend du temps, alors on pourra utiliser un
réseau de neurones contenant des connections arrières. L’ordre de présentation du jeu de
données au réseau de neurone sera alors primordial. On parle alors d’apprentissage séquentiel.
12. 3. Les différents types de réseaux de neurones et leurs applications
3.1. Le perceptron
3.1.1. Description
3.1.2. Loi d’apprentissage du perceptron
Soient p et t les vecteurs d’entrée et sortie cible utilisés pour l’apprentissage du perceptron et
a est réponse du perceptron. L’évolution de la valeur des poids W et des biais b du perceptron
vont varier, à chaque fois (nombre de epoch) que les vecteurs d’entrée sont présentés au
perceptron, selon la règle
∆W = (t − a ) p T = ep T et ∆b = (t − a )(1) = e ,
donc on aura :
W new = W old + ep T
b =b +e
new old
13. Exercice : Déterminez un ensemble de poids (et une valeur de seuil) qui va produire la
classification suivante :
x1 x2 sortie
-0.2 0.5 0
0.2 -0.5 0
0.8 -0.8 1
0.8 0.8 1
3.2. Les réseaux (filtres) linéaires
3.2.1. Description
3.2.2. Algorithme d’apprentissage (LMS ou Windrow-Hoff algorithme)
Soient p et t les vecteurs d’entrée et sortie cible utilisés pour l’apprentissage du réseau et a est
la réponse du réseau. L’objectif des de minimiser la fonction coût F (erreur quadratique
moyenne entre entrées et réponses du réseau) définie comme :
2 2
1 Q Q
F= ∑ [t (k ) − a(k )] = 1 ∑ [e(k )] ,
Q k =1 Q k =1
Q étant le nombre d’exemples. Cette minimisation se fait selon une règle delta :
14. ∂F
∆W = −α .
∂W
L’algorithme LMS (Least Mean Squared) estime à la kième itération l’erreur quadratique
moyenne e 2 en calculant la dérivée des erreurs quadratiques moyennes par rapport au poids
et biais du réseau. Ainsi :
∂e 2 (k ) ∂e(k )
= 2e(k )
∂w j ∂w j
2 pour j = 1...R
∂e (k ) = 2e(k ) ∂e(k )
∂b
∂b
or
R
∂ ∑ wi pi (k ) + b
∂e(k ) ∂[t (k ) − a(k )] ∂[t (k ) − (Wp(k ) + b )] ∂t (k )
= = = − i =1
∂w j ∂w j ∂w j ∂w j ∂w j
donc on peut simplifier par
∂e(k )
∂w = − p j (k )
j pour j = 1...R
∂e(k )
= −1
∂b
Cela veut dire que les poids et les biais du réseau doivent changer de
2αe(k ) p (k ) et 2αe(k ) ,
où α est le taux d’apprentissage. Pour le cas de plusieurs neurones, on peut écrire
W (k + 1) = W (k ) + 2αe(k ) p T (k )
b(k + 1) = b(k ) + 2αe(k )
Cela revient au postulat (règle) de Hebb : « si des neurones, de part et d’autre d’une synapse,
sont activés de manière synchrone et répétée, la force de la connexion synaptique va aller
croissant ».
15. 3.3. Le perceptron multicouche
3.3.1. Description
3.3.2. La rétro propagation ou algorithme d’apprentissage de « Backpropagation »
La rétro propagation a été crée en généralisant la loi d’apprentissage de Widrow-Hoff à des
réseaux de neurones multicouches constitués de fonctions de transfert différentiables. Les
vecteurs d’entrées et les vecteurs cibles correspondant sont utilisés pour apprendre le réseau.
Les réseaux de neurones constitués de biais et de fonctions de transfert « sigmoïdale » et une
couche de sortie constituée de fonctions de transfert linéaires sont capables d’approximer
n’importe qu’elle fonction possédant un nombre fini de discontinuité.
∂F
La règle delta impose toujours ∆W = −α . La difficulté réside toujours dans le calcul
∂W
∂F
de .
∂W
La rétro propagation standard est un algorithme de descente du gradient, comme la loi
d’apprentissage de Widrow-Hoff, dans lequel les poids du réseaux sont ajustés dans le sens du
gradient négatif de la fonction coût. Le terme de rétro propagation veut dire que le gradient est
calculé pour des réseaux multicouches non linéaires. De nombreuses techniques existent, plus
ou moins rapides, performantes et gourmandes en mémoire vive. Il apparaît que la technique
de Levenberg-Marquardt est un algorithme très rapide.
16. 3.3.3. Amélioration de la généralisation (ou le dilemme biais/variance)
Un problème qui apparaît lors d’un apprentissage est le problème du sur apprentissage. Si le
réseau de neurone apprend par cœur, il donnera de mauvais résultats quand on lui présentera
des données un peu différentes. Des méthodes existent pour optimiser la phase
d’apprentissage afin que le phénomène de sur ou sous apprentissage disparaisse, dont la
technique de l’early stopping et de la régularisation.
3.3.3.1.Régularisation
La technique de régularisation consiste à imposer des contraintes, donc à apporter une
information supplémentaire, sur l’évolution des poids du réseau de neurones. Par exemple, on
peut volontairement pénaliser les poids trop grands selon la formule :
1 1
∑ (e ) ∑ (wi ) donc on impose
2 2
Ferreur = i et F poids =
N n
Fnew = γFerreur + (1 − γ )FPoids
où γ est un paramètre d’optimisation. Mais le problème réside dans le choix de la valeur de
ce paramètre.
La régularisation bayesienne, qui suppose que les poids et les biais suivent des distributions
spécifiques (les paramètres sont estimés au fur et à mesure de l’apprentissage) donne en
général des résultats très satisfaisants.
+ Vecteur d’entrées
Généralisation : Levenberg-Marquardt
Levenberg-Marquardt + régularisation bayesienne
17. 3.3.3.2. Early stopping
Cette technique consiste à diviser les données disponibles en trois lots distincts. Le premier lot
sert à entraîner le réseau de neurone. Le second lot sert à la validation du réseau. L’erreur de
validation doit normalement diminuer au cours du processus d’apprentissage (la variance
diminue). Mais quand le réseau commence à apprendre par cœur (le biais augmente, alors
l’erreur de validation recommence à croître), on arrête alors la phase d’apprentissage. Le
troisième lot sert vérifier que la généralisation est correcte.
3.3.3.3. Normalisation des données
Afin d’améliorer la performance des réseaux neuronaux multicouches, il est préférable de
normaliser les données d’entrée et de sortie de telle sorte qu’elles se trouvent dans l’intervalle
[-1 1].
3.3.3.4. Recherche de l’information
Avant de vouloir utiliser un réseau de neurones en tant qu’approximation de fonction, il est
nécessaire de faire des études de sensibilités afin de déterminer les paramètres pertinents qui
doivent être gardés, et de supprimer les autres, qui ne ferait que diminuer la performance du
réseau. Une autre solution peut aussi consister à faire une analyse en composante principale
sur le jeu de données (réduction de l’information).
3.3.4. Applications
3.3.4.1.Restitution de paramètres nuageux à partir d’image satellite
Champ 2D de l’épaisseur optique d’un nuage hétérogène (modèle gaussien) et le champ de
radiance simulé par un code radiatif 3D
20. 3.3.4.2.Simulation de radiances au sommet d’un nuage hétérogène
Interactions rayonnement visible - hétérogénéités nuageuses
Grande échelle Petite échelle
Longueur/Hauteur > 20 Longueur/Hauteur < 0.2
21. z View
Valeur des poids de 1 neurone Solar (θ;
(θ0=0°; θ
en fonction de la distance (m) φ0=60°)
θ0
à partir du pixel central y
φ
x
22. Cibles
Radiances
SHDOM
Réseau de neurones
Entrée incluant des connexions Sortie
(appelées poids) Compa
entre les neurones Radiance -
Radiance MNN raison
IPA
Ajustement
des poids
Observation
au nadir
Technique du pixel Modèle de transfert
indépendant radiatif 3D Perceptrons multicouche
Observation
θ = 60°
ϕ =0
Epaisseur optique moyenne =10; Rayon effectif=10µm
Incidence solaire=60°; albédo terrestre=0; couverture fractionnaire = 50 %
23. 3.4. Les réseaux de neurones à fonctions radiales de base (Radial Basis Network)
3.4.1. Description
Ici, la fonction de transfert est une exponentielle. L’opérateur sommation disparaît au profit de
l’opération multiplication (élément par élément des matrices).
Les réseaux à bases radiales nécessitent beaucoup plus de neurones qu’un réseau feedforward.
24. 3.4.2. Les réseaux de neurones à régression généralisée (Generalized Regression
Networks)
Dans un réseau à régression généralisée (GRNN), il y a un réseau à base radiale auquel on
ajoute une couche de sortie constituée d’une fonction de transfert linéaire. nprod signifie une
multiplication élément par élément, moralisé par la somme des éléments de a.
Ces réseaux sont aussi utilisés en tant qu’approximation de fonction, mais sont plus lourds
d’utilisation que les perceptrons multicouches.
25. 3.4.3. Les réseaux de neurones probabilistes (Probabilistic Neural Networks)
Ces réseaux sont généralement utilisés pour des problèmes de classification. La première
couche qui est un réseau à base radiale, donne une information sur la ressemblance entre la
donnée d’entrée et le jeu de données utilisé lors de l’apprentissage. La deuxième couche
produit comme sortie un vecteur de probabilité. Finalement, une fonction de transfert
compétitive produit 1 ou 0.
26. 3.5. Les réseaux de neurones compétitifs ou cartes auto organisatrices
Ces réseaux peuvent détecter des régularités et des corrélations dans les données d’entrées et
peuvent adapter leurs réponses en fonction de ces entrées.
Les neurones de ces réseaux peuvent reconnaître des groupes dans les vecteurs d’entrée. Les
cartes auto organisatrices peuvent apprendre à reconnaître des groupes de vecteurs similaires,
ce qui entraîne que les neurones physiquement proches les uns des autres dans la couche de
neurones à répondre à ces vecteurs d’entrée similaires.
La LVQ méthode (Learning Vector Quantization) permet d’entraîner les réseaux de neurones
compétitifs de manière supervisée. Comme la classification se fait par le calcul de distance
entre les poids des vecteurs d’entrée, il n’y a pas de mécanisme strict qui permettent de définir
si les vecteurs d’entrés sont dans la mêmes classe ou non. Celles-ci peuvent être imposées par
l’utilisateur.
3.5.1. Réseaux de neurone compétitif ou réseaux de Kohonen (loi d’apprentissage de
Kohonen)
27. Les poids des neurones vainqueurs sont ajustés suivant la loi de Kohonen qui impose que le
poids d’un neurone qui est proche des données d’entrée sera ajusté à la prochaine étape. Ainsi,
ce type de réseau est capable d’apprendre à catégoriser des vecteurs d’entrée.
L’évolution de la colonne i de la matrice des poids du réseau est dictée par la règle de
Kohonen :
W (q )= iW (q − 1) + α [ p(q )− iW (q − 1)]
i
Ainsi, s’il y a assez d’exemples et de neurones, il se peut même que la sortie des neurones
vainqueurs soit 1 et celle des autres 0.
3.5.2. Les cartes auto organisatrices
Les cartes auto organisatrices apprennent à classifier des vecteurs d’entrée selon la façon dont
ils sont groupés dans l’espace. Ceci diffère des réseaux compétitifs où les neurones et leurs
voisins apprennent à reconnaître des groupements dans l’espace d’entrée. En effet, la règle
d’évolution des poids des neurones suit la règle de Kohonen sauf qu’au lieu d’activer l’unique
neurone vainqueur, tous les neurones se trouvant au voisinage (inférieur à une distance d par
exemple), seront eux aussi activés.
Ces réseaux sont très utilisés pour l’analyse de données. Ils permettent de cartographier en
deux dimensions et de distinguer des groupes dans des ensembles de données (Voir l’exemple
graphique ci-dessous).
27
29. 3.5.3. Les LVQ réseaux de neurones
Les réseaux LVQ ont une première couche de neurones compétitifs et une seconde constituée
de neurone à fonction de transfert linéaire. Ce type de réseaux apprend à classifier mais grâce
à la seconde couche, ce réseau classera selon les critères de classification imposés par
l’utilisateur.
29
30. 3.6. Les réseaux récurents
3.6.1. Réseaux de Elman
Le réseau de Elman à des neurones tansig dans sa couche cachée récurrente et un neurone
linéaire dans sa couche de sortie. Ce type de réseau peut aussi approximer n’importe qu’elle
type de fonction pourvu que la couche cachée ait assez de neurones.
Puisque ce réseau peut enregistrer de l’information pour une référence future, il est capable
d’apprendre des associations aussi bien temporelles que spatiales.
30
31. 3.6.2. Réseaux de Hopfield
Ces réseaux sont des réseaux récursifs, un peu plus complexes que les perceptrons
multicouches. Chaque cellule est connectée à toutes les autres et les changements de valeurs
de cellules s’enchaînent en cascade jusqu’à un état stable. Ces réseaux sont bien adaptés à la
reconnaissance de formes.
31