Réseaux de neurones artificiels en statistiques
Réseaux de neurones artificiels en statistiques
Professeure :
Annick VALIBOUZE Année 2018-2019
0.1
a1
0.1 0.3
0.4
w 2,4 =0.5
0.6 a2 a4 0.6
w 4,2 =0.3
0.8
0.1 0.2
a3
0.6
Couche d’entrée Couche cachée C Couche de sortie S
a5 , f 5 , h
x1 a 1 := x 1
wi
,5
a6 , f 6 , h
w
i ,6
x2 a 2 := x 2
w i ,7
a7 , f 7 , h a i := f i (h(i )) sortie ai vs désirée di
8
x3 a 3 := x 3 w i,
i ,9
a8 , f 8 , h w
x4 a 4 := x 4
a9 , f 9 , h
1
Introduction 3
Historique 5
Chapitre 1. Principes généraux 7
1. Définitions 7
2. Modèle de McColloch et Pitts (1943) 14
3. Fonctionnement et principe du réseau de neurones 16
4. Comportements dynamiques - Fonction de Lyapunov 25
5. Erreur et apprentissage 28
6. Application : Analyse des données (Data Mining) 31
Chapitre 2. Quelques modèles classiques 33
1. Règles d’apprentissages 33
2. Le Perceptron de F. Rosenblatt (1958) 34
3. Adaline 39
4. Le Perceptron Multi-Couches dit PMC 39
5. Réseaux Radial Basis Function dits RBF 43
6. Connexions symétriques 50
7. Réseaux à compétition 52
8. La Machine de Boltzmann Restreinte, RBM 54
Chapitre 3. Corrélation en cascades et neurochirurgien optimal (OBS) 55
1. Corrélation en cascades 55
2. Le neurochirurgien optimal (Optimal Brain Surgeon, OBS) 55
Chapitre 4. La Statistique et le PMC 59
1. Lien avec la statistique 59
2. Statistique et PMC 59
Chapitre 5. Apprentissage Automatique : nouvelle génération 61
Conclusion et liens utiles 63
Les logiciels 65
1. Sous R : la fonction nnet pour le PMC, les librairies neuralnet, RSNNS qui en
particulier implante le réseau RBF 65
2. Spad pour l’apprentissage non supervisé 65
3. La procédure Proc Neural pour le perceptron sous SAS 65
4. Le logiciel Tanagra 65
5. SNNS 65
6. Weka 65
7. Scilab, SageMath, Maxima 65
Bibliographie 67
Table des matières
2
Introduction
L’objectif de l’intelligence artificielle est de mettre en place des systèmes informatiques de capacités
intellectuelles calquées sur celles de l’être humain.
En 1943, Mc Culloh, un neuro-physiologiste, et Pitts, un logicien, ont proposé la notion de neurones
formels. Ces derniers étaient censés imiter les neurones biologiques et être capables de mémoriser
des fonctions booléennes simples. Les réseaux de neurones artificiels conçus à partir de ce type de
neurones furent inspirés du système nerveux. Ces réseaux doivent être capables d’apprendre, de
mémoriser, de généraliser de l’information dans les connexions entre les neurones et de traiter de
l’information incomplète. Beaucoup de travaux ont eu lieu sur ce sujet et de nos jours nous avons
des modèles performants faisant des réseaux neuronaux un des modèles de calcul les plus prisés en
Intelligence Artificielle.
Les réseaux neuronaux fournissent des outils et des algorithmes performants pour : la prédiction,
l’interpolation, la classification, la segmentation ou clustering, la reconnaissance des formes . . .
Ils trouvent leurs applications dans plusieurs domaines : codes postaux, prévision des séries
temporelles dans la finance, diagnostic médical, identification de segments de clients potentiels,
détection de fraude, modélisations des vers de spin, niveau d’ozone, sociologie, mesures biologiques
...
Leur capacité à généraliser et à apprendre des données en font les meilleurs simulateurs de la façon
dont le cerveau humain apprend de son expérience.
Seulement, l’adaptation d’un réseau à une application se réalise ”à l’aveugle” sans compréhension
structurelle de cette application ni de la raison de la validité du réseau obtenu après l’entraine-
ment.
3
Historique
- 1969 : Marvin MIinsky et Seymour Papert : Analyse théorique des capacités de calcul des
perceptrons. Exibent un contre exemple.
- 1980 et plus : Stephen Grossberg et Teuvo Kohonen : Découvertes de nouvelles voies : auto-
organisation des réseaux et processus d’adaptation. Renaissance du Connexionnisme.
5
Chapitre 1
Principes généraux
1. Définitions
Un réseau neuronal est un graphe orienté pondéré. Un noeud de ce réseau est appelé un neurone
formel ou une unité connexioniste (ou simplement neurone).
0.1
a1
0.1 0.3
0.4
w 2,4 =0.5
0.6 a2 a4 0.6
w 4,2 =0.3
0.8
0.1 0.2
a3
0.6
Chaque neurone formel est doté d’un état interne appelé l’ activation.
Notons
a 1 , . . . , a N les acti-
a1
..
vations respectives des neurones du réseau. Le vecteur a tel que a = . est le vecteur d’activa-
aN
tion.
Un arc pondéré entre deux neurones formels est appelé un lien synaptique et la pondération un
poids synaptique. Le poids synaptique du neurone j vers le neurone i sera noté w i , j (i , j ∈ [1, N])
avec w i , j = 0 s’il n’existe pas de lien du neurone j vers le neurone i . La matrice des poids
synaptiques
W = (w i , j )1≤i , j ≤N
mesure la connectivité du réseau.
1.3. Seuil.
Soit le neurone i ∈ [1, N]. Une valeur appelée seuil et notée Θi est parfois fixée.
Soit le neurone i ∈ [1, N]. Une fonction hi dite d’entrée du neurone i est donnée. En général, elle sera
identique pour tous les neurones du réseau ou ceux d’une même couche et notée alors simplement
h . Elle dépend du vecteur d’activation a et de la matrice des poids W ou plus exactement de Wi son
i -ième vecteur ligne.
Lorsque le vecteur d’activation a est binaire, la fonction h sera booléenne et pourra dépendre d’un
biais φi . Dans les cas où le vecteur a est numérique, sauf cas particuliers, la fonction h est ou bien
linéaire (cas φi = 0) :
N
X
h(i ) = h(i , a, W) := Wi . a = wi , j a j
j =1
ou bien affine :
N N
h(i ) = h(i , a, W, φi ) := w i , j a j − φi =
X X
wi , j a j ,
j =1 j =0
avec w i ,0 = φi et a0 = −1. Les biais non nuls seront donc traités avec un neurone supplémentaire.
Par la suite, nous ne considérerons donc pas les fonctions affines (sauf précision).
8
Il existe un cas particulier pour les réseaux dits RBF (voir Exemple 1.6) dans lesquels la fonction
d’entrée de la couche RBF est une distance du vecteur d’activation au (transposé du) vecteur
Wi :
h(i ) = h(i , a, W, φi ) := °a − t Wi °
° °
.
Chaque neurone i ∈ [1, N] possède une règle f i appelée aussi fonction d’activation. En général, elle
est identique à tous les neurones du réseau ou ceux d’une même “couche“, notée alors simplement
f . Elle s’applique sur le résultat de h i la fonction d’entrée, c’est-à-dire sur l’activation pondérée e i .
A l’instant t > 0, nous avons :
a i (t ) = f i (e i (t − 1), Θi ) .
Rappelons que h est la fonction d’entrée du neurone i et Θi son éventuel seuil. Nous décrivons
ci-dessous les fonctions d’activation les plus usitées.
Exemple 1.1. Fonction linéaire : f (x) = λx . D’où ai = λh(i ).
9
Exemple 1.2. Fonction de seuil ou fonction de signe. Soit un seuil Θ.
1 si x ≥ Θ
½
f (x) =
0 sinon
f (x) = k x si Θ ≤ x ≤ Θ+
−
m x < si Θ−
M
Θ−
Θ+ x
m
1
f (x) = .
1 + e −x
Sa dérivée est
d ai
(2) = a i (1 − a i ) .
d ei
0 x
Cette fonction continue monotone croissante bornée est celle souvent utilisée dans le réseau appelé
le perceptron multicouches que nous étudierons plus tard.
Exemple 1.5. La fonction sigmoïde tangentielle converge plus vite que la sigmoïde exponentielle.
1 − e −2x
f (x) = tanh(x) = et f 0 (x) = 1 − f (x)2 .
1 + e −2x
f (x) =tanh(x)
1
0 x
-1
2
/σ2 2x
f (x) = e −x avec f 0 (x) = − f (x) .
σ2
2
f g (x) = e −x , σ = 1
0 x
Ces fonctions sont utilisées dans les réseaux Radial Basis Function dits RBF. Dans le cas particulier
des réseaux RBF, la fonction d’entrée h du neurone i est donnée par la distance du vecteur a
d’activation au i -ième vecteur ligne Wi de la matrice des poids W :
v
uN
h(i ) = t (w i , j − a j )2 = °t Wi − a°
uX ° °
.
j =1
Nous verrons au paragraphe 5 du Chapitre 2 que ce réseau est “à couches“ et que les vecteurs de
poids t Wi sont en fait les “centres” ou “noyaux” notés ci du réseau RBF (voir précisément la figure
11
page 46). Soient d le nombre de neurones de la couche précédent la couche RBF et ci ∈ Rd , le
noyau du neurone i de la couche RBF. Alors la fonction
°2
ψ = f o δ où δ(x) = °ci − x° est quant à elle une fonction dite “radiale de base“ de x ∈ Rd dans
°
R.
Note : Dans la pratique, nous pourrons aussi choisir h(i )2 comme fonction d’entrée avec la fonction
2
d’activation g (x) = e −x/σ (qui n’est pas une gaussienne). En effet, afin d’éviter de considérer le
couple ( f , h) où h(i ) est une racine carrée, nous pouvons choisir le couple (g , h 2 ), ce qui revient
exactement au même puisque ai = f (h(i )) = g (h(i )2 ).
Exemple 1.8. Fonction à mémoire. Le but est de tenir compte de l’état d’activation du neurone
avant qu’il soit de nouveau activé. Soit t un entier, le vecteur d’activation a(t ) du réseau est obtenu
après avoir été activé t fois et e i (t ) est l’activation pondérée sur le neurone i au temps t . La variable
t représente des valeurs entières du temps. Définissons donc la fonction d’activation du neurone i
en fonction du temps t :
Pour tenir compte de tous les types de fonctions d’activation nous pouvons écrire que l’activation
a i (t + 1) du neurone i à l’instant t + 1 est donné par :
où f est la fonction d’activation du neurone i , h(i )(t ) la fonction d’entrée à l’instant t , Θi le seuil et
I(t ) une valeur d’entrée à l’instant t . Ce qui dans la littérature s’écrira aussi sous la forme :
dx
(4) = F(x, W, Θ, I) ,
dt
permettant d’étudier l’évolution du réseau comme un système dynamique.
12
1.7. Types de réseaux les plus utilisés.
— Automates booléens : les entrées et sorties sont booléennes ou bien les sorties sont des
fonctions booléennes des entiers.
— Automates à seuil : entrées binaires ou réelles, sorties binaires, fonction d’entrée h affine,
fonction d’activation binaire à seuil.
— Automates linéaires : entrées et sorties réelles, fonction d’entrée h linéaire et l’identité est
la fonction d’activation f .
— Automates à saturation : entrées et sorties dans un intervalle [u, v], fonction d’entrée h
linéaire et fonction d’activation à saturation ; si les entrées et sorties sont entières ce sont
des automates multi-seuils.
— Automates continus : entrées et sorties réelles, fonction d’entrée h affine, fonction d’acti-
vation sigmoïde.
— Automates probabilistes : sorties binaires, entrées quelconques, fonction d’entrée h
linéaire ou affine, fonction d’activation stochastique.
L’architecture du réseau est déterminée par la connectivité (poids w i , j nuls ou non nuls), le nombre
et le type des neurones. Elle est déterminée par les caractéristiques décrites ci-après.
— Le réseau comporte des boucles s’il existe i 1 , . . . , i p ∈ [1, N] tels que i 1 = i p et w i k ,i k+1 6= 0
pour k ∈ [1, p − 1]. S’il en est ainsi, le réseau est dit récurrent. Si le réseau est non récurrent
alors la matrice des poids W est triangularisable.
— Structuration en couches de neurones : connectivité intra-couche.
— Connectivité inter-couches. Supposons que le réseau soit organisé en couches C1 , . . . Cp
de neurones ; la connectivité inter-couches est complète si pour tout i , j ∈ [1, p] alors tout
neurone de la couche Ci est connecté à chaque neurone de la couche C j . La connectivité
est dite bijective si pour tout i , j ∈ [1, p] alors tout neurone de la couche Ci est connecté a
exactement un unique neurone de la couche C j . La connectivité est dite probabiliste si elle
est distribuée selon une probabilité ou une distribution (gaussienne).
— Symétries dans les connections comme dans le réseau de Hopfield que nous étudierons
dans l’exemple 3.1.
Un réseau multi-couches
13
2. Modèle de McColloch et Pitts (1943)
Les états d’activation sont binaires et prennent leurs valeurs dans {0, 1}. Le 0 signifie qu’il n’y a pas
d’émission et si l’activation vaut 1 alors le neurone émet.
Les valeurs de la matrice des poids sont également binaires (0 ou 1). Soient i , j ∈ [1, N]. Si le lien
d’un neurone j vers un neurone i a pour poids synaptique w i , j = 0 alors le neurone j est qualifié
d’inhibiteur et si w i , j = 1 alors il est qualifié d’excitateur.
Le neurone i est affecté d’une valeur Θi , son seuil. Sa fonction d’entrée est une variante de la
linéaire car son image n’est pas une unique valeur mais un doublet. Elle est définie par :
N N
(1 − w i , j ) a j ) ∈ [0, N]2 ;
X X
h(i ) = ( wi , j a j ,
j =1 j =1
a3 Θ
w 3,2
a2
Il nous faut définir le seuil de N3 et la matrice des poids W pour ET, OU et NON qui prend des
valeurs w i , j nulles sauf éventuellement en (i , j ) = (3, 1) ou (i , j ) = (3, 2).
Tables de vérités
ET 0 1 OU 0 1
0 0 0 0 0 1
1 0 1 1 1 1
Au temps t = 0, a3 = 0. Nous avons h(3) = (w 3,1 a1 + w 3,2 a2 , (1 − w 3,1 )a1 + (1 − w 3,2 )a2 ) = (e 3 , g 3 )
et pour modéliser une table de vérité, le réseau doit satisfaire l’équation a3 = f (e 3 , g 3 ) pour tout
couple (a1 , a2 ), où a3 est donné par le couple (a1 , a2 ) dans la table de vérité.
Pour le ET : Vérifions que w 3,1 = w 3,2 = 1 et Θ = 1.
Ici a3 = f (a1 + a2 , 0). Donc aucun neurone activé n’est inhibiteur. Si a1 = a2 = 1 (i.e. les neurones
N1 et N2 sont tous deux activés) alors a 1 + a 2 = 2 > 1 = Θ et donc a 3 = f (2, 0) = 1. Dans les trois
autres cas, a3 = f (a1 + a2 , 0) = 0 puisque a1 + a2 ≤ 1 6> Θ = 1. La table de vérité du ET est donc
modélisée par ce réseau.
Pour (a1 , a2 ) = (0, 0), nous devons avoir a3 = 0. Puisque h(3) = (0, 0), la fonction d’activation doit
satisfaire l’équation a3 = f (0, 0) = 0 ; ce qui impose e 3 = 0 ≤ Θ pour le seuil. Pour les trois autres
couples (1, 0), (0, 1) et (1, 1) de valeurs de (a1 , a2 ), la fonction f doit satisfaire respectivement
les équations f (w 3,1 , 1 − w 3,1 ) = 1, f (w 3,2 , 1 − w 3,2 ) = 1 et f (w 3,1 + w 3,2 , (1 − w 3,1 ) + (1 − w 3,2 )) = 1.
D’après la définition de f , sa seconde coordonnée y doit être nulle pour que l’image f (x, y) ne le soit
pas. D’où 1 − w 3,1 = 1 − w 3,2 = 0. Comme pour le ET, pour toutes les valeurs de (a1 , a2 ), nous avons
w 3,1 = w 3,2 = 1 et h(3) = (a 1 + a 2 , 0). Il reste à déterminer le seuil Θ. En considérant (a 1 , a 2 ) 6= (0, 0),
pour qu’à la fois f (a1 + a2 , 0) = 1 et f (0, 0) = 0, il faut et il suffit que 0 ≤ Θ < a1 + a2 ∈ {1, 2}. Il
n’existe qu’une seule valeur entière pour le seuil Θ, c’est zéro.
Tous les neurones sont inhibiteurs et a3 = f (0, a2 ). Si N2 est vrai, i.e. a2 = 1, alors a3 = f (0, 1) = 0,
i.e. N3 est faux (a2 neurone activé inhibiteur). Si a2 = 0 alors a3 = f (0, 0) = 1 car 0 > Θ = −1. Donc
15
le réseau modélise bien le NON (a2 neurone inhibiteur non activé).
— en mode de reconnaissance (voir Paragraphe 3.2.1) : le réseau est utilisé pour calculer ;
Description du réseau
Un réseau neuronal de N neurones et de matrice des poids W = (w i , j )i , j ∈[1,N] (dite aussi de transi-
tion)) est dit symétrique si les poids synaptiques w i , j vérifient : w i , j = w j ,i pour tout i , j ∈ [1, N]
(i.e. la matrice W est symétrique).
- il est booléen ; les activations des N neurones sont à valeur dans {0, 1},
2
- sa matrice symétrique des poids W ∈ {0, 1}N est de diagonale nulle : w i ,i = 0 pour tout i ∈ [1, N],
- la fonction d’entrée de chaque neurone i ∈ [1, N] à l’instant t est définie par :
N
X
h(i , t ) = w i , j a j (t )
j =1
- la fonction d’activation commune à tous les neurones du réseau est ainsi définie de N dans {0, 1} :
½
1 si x > 0
f (x) = .
0 sinon
Pour chaque instant t ∈ N, nous notons ai (t ) l’activation du neurone i , e i (t ) = h(i , t ) son activation
pondéré et a(t ) le vecteur d’activation du réseau.
N
X
(5) a i (t + 1) = f (e i (t )) où e j (t ) = w i , j a j (t ) .
j =1
a1
w 1,2 = w 2,1 =-1 1
-1
0 a2 a4 0
1
1 1
a3
Propagation synchrone :
e(t ) = W.a(t )
puis, selon l’équation (5) du réseau, l’activation du neurone i à l’instant t + 1 est donnée par
a i (t + 1) = f (e i (t )).
f
f
f , où f est la fonction d’activation. Au temps t = 1, le vecteur d’activation du réseau
Posons F =
f
est :
0 0
−1 0
a(1) = F(W.a(0)) = F
1 = 1
1 1
18
et aux temps t = 2 et t = 3, le réseau rentre dans un état stationnaire :
1
0
1 = a(3) .
a(2) = F(W.a(1)) =
1
Regardons cette évolution comme celle d’un système dynamique discret : Soit
ψ1
..
Ψ= . où a i (t + 1) = f (e i (t )) = ψi (a(t )) .
ψ4
Nous avons alors :
a(t + 1) = Ψ(a(t )) = Ψt +1 (a(0)) t ≥ 0 .
1
0
0 arrive à l’état stable v :
L’évolution de la trajectoire à partir de
0
1 0 1
0 0 2 0 t
1 = Ψ(1) = Ψ (0) = Ψ (v) ∀t ∈ N .
v :=
1 1 0
Propagation asynchrone :
Un ordre de propagation est choisi. Par exemple, commençons par le neurone N1 (activation a1 ) puis
1
0
le neurone N2 puis le neurone N3 et enfin le neurone N4 . Avec au départ (temps t = 0) a(0) = 0,
0
0
0
nous avons a 1 (1) = f (e 1 (0)) = f (0) = 0 et a i (1) = a i (0) pour i = 2, 3, 4 d’où a(1) =
0 qui est
0
nécessairement un point fixe.
Nous constatons que le comportement en synchrone diffère de celui en asynchrone. Observons les
trajectoires.
Trajectoires
En synchrone, l’équation a(t ) = Ψ(a(t − 1)) est celle d’un système dynamique discret. Les trajec-
toires en synchrone se calculent donc en appliquant ainsi Ψ à toutes les valeurs initiales possibles
a(0) :
a(t ) = Ψ(a(t − 1)) = Ψ2 (a(t − 2)) = · · · = Ψt (a(0)) .
19
Nous allons réaliser une étude complète des trajectoires en fonctionnement de propagation synchrone
puis asynchrone en partant des 24 = 16 valeurs possibles de l’état initial de l’activation a(0).
Notons b = (b 1 , . . . , b 16 ) la liste des 16 vecteurs d’états possibles du réseau suivants :
b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 b 11 b 12 b 13 b 14 b 15 b 16
1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0
0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0
0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0
0 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0
Nous distinguons les vecteurs d’activation a(t ) à l’instant t des 16 vecteurs b i de leurs valeurs
possibles.
Propagation synchrone :
Les trajectoires du réseau en propagation synchrone à partir de chacun des 16 états sont :
Trajectoires réseau de Hop-
field en synchrone.
b2 b5 b 14 b1 b 11
b7 b6 b 10
b 12 b3 b9 b4 b 13
b 16 b8 b 15
0
0
Par exemple, en partant de l’état initial a(0) = b 4 =
0, une première propagation met le réseau
1
1 1
0 0
dans l’état a(1) = b 6 = 13
1, puis une deuxième met le réseau dans l’état stable a(2) = b = 1.
0 1
13 6 2 4
Nous avons donc : b = Ψ(b ) = Ψ (b ) .
D’après les trajectoires, les 16 valeurs de a(0) forment un système dynamique discret avec :
— 4 trajectoires (i.e. non connexes),
— 3 états stables b 7 , b 13 et b 16 , i.e. Ψ(b) = b ,
— 1 cycle : {b 3 , b 12 } de longueur 2, c’est-à-dire Ψ(b 3 ) = b 12 et Ψ(b 12 ) = b 3 .
En asynchrone :
20
0
1
Avec au départ (temps t = 0) a(0) = b 2 = 16
0, la trajectoire converge vers un point fixe b alors
0
3 12
qu’en synchrone elle aboutit au cycle {b , b }. En calculant les trajectoires en fonction des 16
vecteurs d’états initiaux possibles, nous obtenons :
Trajectoires réseau de Hop-
field en asynchrone.
b1 b 12 b9 b 15
b 10
b 14
b7 b 16 b2 b3 E = 0 b 13 E = −5
b8
b4
11 5
b b b6
Il n’y a aucun cycle et les trajectoires convergent vers les 3 états stables b 7 , b 13 et b 16 .
0
0
Dans notre exemple, pour l’état a(t ) = b 3 =
1, la fonction d’énergie est E = −〈(0, 0, 1, 0), ($, $, 1 ∗
0
0 + 1 ∗ 0 + 1 ∗ 0 + 1 ∗ 0, $)〉 = 0 (où $ désigne une valeur quelconque) et, pour l’état suivant (ici un
1
0
stable) a(t + 1) = b 13 =
1, nous avons E(t + 1) = −5 < E(t ).
1
Remarquons que la fonction d’énergie est minorée : E ≥ −N(N − 1).
Supposons que e i (t − 1) = 0. Si pour tout λ ∈ [[1, N − 1]] e i +λ mod N (t − 1 + λ) = 0 alors pour tout
j ∈ [[1, N]] et s ≥ t a j (s) = 0. Le système est alors dans l’état stable correspondant au vecteur
d’activation nul. Donc ∆(E) < 0 entre deux cycles ssi il y a changement d’état. Comme la fonction
d’énergie est bornée inférieurement, E atteindra un minimum et le système sera alors dans un état
stable.
Exercice. Écrire un programme qui calcule les listes de trajectoires et les fonctions d’énergies
pour chaque état. Ce programme s’écrit rapidement dans un système de calcul formel tel Maxima,
Maple ou Sage.
Les valeurs données aux coefficients de la matrice des poids synaptiques W sont arbitraires et
ne sont sûrement pas les plus adaptées pour répondre à l’application considérée. Il faut donc les
modifier pour les adapter à cette application. Cette modification est réalisée avec un choix de règle
d’apprentissage.
Pour corriger la matrice W des poids, nous utiliserons un corpus C d’apprentissage (i.e. un échan-
tillon).
22
Remarque 1. Il faudra s’assurer que le changement d’activation soit plus rapide que l’évolution
des poids afin d’en assurer l’indépendance. Le changement d’activation est dit adiabatique par
rapport à celui des poids.
Le réseau est une boite noire avec une entrée de k neurones et une sortie de m neurones.
Dans l’apprentissage supervisé le corpus C est un ensemble de couples (x, d ) où x est le vecteur
des k entrées, le patron d’entrée, présentées au réseau et d le vecteur des m valeurs désirées en
sortie, le patron de sortie, que nous connaissons a priori.
L’entrée x est présentée au réseau. Un vecteur s de m valeurs est récupéré à la sortie du réseau. C’est
en comparant le vecteur s et la valeur désirée d que sont corrigés les poids synaptiques. L’idée est
de modifier la matrice des poids W de telle sorte qu’une fonction d’erreur E obtenue en comparant
d et s soit minimisée. La matrice finale W des poids obtenue suite à l’apprentissage doit être bien
adaptée pour la généralisation (i.e. possède de bonnes capacités d’interpolation) comme expliqué au
paragraphe 3.4.
Ce mode d’apprentissage est utilisé pour la prédiction, l’identification, la classification, . . . (voir
logiciels R, Matlab, . . .).
Couche
Couche Couche
d’entrée
cachée de sortie
de x
a5
x1 a1 w
i,
a6 wi 5
,6
x2 a2 w i ,7
a7 ai Sortie effective s i vs désirée di
x3 a3 w i ,8
,9
a8 wi
x4 a4
a9
Dans l’apprentissage non supervisé, la sortie d n’est pas connue puisqu’il s’agit de regrouper les
exemples x 1 , . . . , x n formant le corpus C et présentées successivement en entrées au réseau. Il s’agit
de modifier la matrice des poids synaptiques W afin qu’ils soient suffisamment regroupés et de
s’assurer que la généralisation est correcte (voir paragraphe 3.4).
Ce type d’apprentissage s’applique pour l’auto-classification, par exemple. Le logiciel SPAD réalise
de l’apprentissage non supervisé.
1X m
(7) E= (d i − s i )2
2 i =1
et la fonction de corrélation croisée vers laquelle s’orientent de nouvelles applications car elle
répond à l’inconvénient de la faible vitesse de convergence de la précédente :
m
X
(8) E=− (d i l n(s i ) + (1 − d i )l n(1 − s i )).
i =1
Une fois opéré l’apprentissage sur un corpus dit d’apprentissage, il faut s’assurer que le réseau réagit
correctement à la généralisation. C’est-à-dire qu’il réagit bien à des données qui n’appartiennent
pas au corpus d’apprentissage. Donc, il faut disposer d’un autre corpus, appelé le corpus test ou
corpus de généralisation. La généralisation est considérée comme correcte si le réseau se comporte
correctement sur le corpus test. Par exemple, pour l’apprentissage non supervisé, la généralisation
est considérée correcte si de nouveaux exemples, ceux du corpus test, donnés au réseau sont aussi
regroupés.
Il est important de disposer d’un troisième corpus dit de validation qui interviendra en fin d’appren-
tissage.
La méthode de validation croisée (cross-validation) suit l’algorithme suivant (voir le logiciel SPAD
pour la classification en non supervisé) :
Le réseau peut converger vers des états stables (voir le réseau symétrique de Hopfield, Exemple
3.1 ) ou des états plus complexes. Les systèmes peuvent se classer en trois classes : convergent,
oscillatoires et chaotiques.
Définition 4.1. Un point fixe est un attracteur s’il est entouré d’une région dans laquelle toutes
les trajectoires transitoires convergent sur lui. Cette région est aussi appelée bassin de l’attracteur
(c’est un bassin d’attraction).
Un système dynamique est dit convergent si chaque trajectoire approche un état d’équilibre. Plus
généralement, un système dynamique est quasiconvergent si chaque orbite approche un ensemble
d’états d’équilibre, sans converger vers un en particulier. Cela n’arrive que si l’ensemble d’équilibre
est fini. Un système lisse (ou C1 ) dissipatif (l’ensemble des états est le bassin d’au moins un
attracteur) est approximable par des systèmes avec un nombre fini d’états d’équilibre.
Un système est dit oscillatoire si chaque ensemble limite est une orbite périodique (éventuellement
stationnaire). Par exemple, le pendule sans friction ou les réseaux neuronaux biologiques. De même
que pour les systèmes convergents, il se définit également les systèmes quasioscillatoires. Un
tel système peut être modélisé en couplant adroitement des systèmes convergents. Les réseaux
neuronaux oscillatoires ont été étudiés par Cowan et Ermentrout (1988), Li et Hopfield (1989),
Crossberg et Elias (1975). Ils sont spécialement étudiés par des biologistes. Kopell et Ermentrout
(1988) ont modélisé le système nerveux de la lamproie avec des réseaux neuronaux d’oscillateurs
couplés.
Un système est dit chaotique s’il est difficile de faire une prédiction fiable à long terme. La faisabilité
de l’utilisation de systèmes oscillatoires ou chaotiques à travers des réseaux neuronaux particuliers
pour la reconnaissance (pattern recognition) est démontrées dans Baird, Troyer et Eeckman.
A part de très rares cas, les réseaux neuronaux sont en majorité convergents ou supposés l’être.
La fonction d’erreur que nous étudierons dans la rétropropagation, celles d’autres méthodes
d’apprentissage ou l’entropie négative des systèmes mécaniques statistiques sont des fonctions de
Lyapunov.
Un état a sera un point d’équilibre du système si c’est un point critique d’une fonction de Lyapunov
L du système. C’est-à-dire que le gradient de L s’annule en a .
25
Exemple 4.3. Prenons un exemple issu du site Mathworld (http ://mathworld.wolfram.com/LyapunovFunction.html).
Soit le système :
y0 = z
z 0 = −y − 2z
et la fonction de Lyapunov L (y, z) = (y 2 + z 2 )/2 définie positive en tout point (x, y) 6= (0, 0) ; le
long de la courbe, nous obtenons :
0
L (y, z) =< gradL , (y 0 , z 0 ) >= y z + z(−y − 2z) = −2z 2
qui est décroissante dans toute région contenant l’origine,. La solution nulle est donc stable.
Les systèmes les plus naturels possédant une fonction L de Lyapunov sont les systèmes de gradients.
De tels systèmes sont engendrés par des équations différentielles de la forme :
d xi ∂L
(9) =−
dt ∂x i
où L est supposée de classe C1 et possède une borne inférieure. La fonction L est une fonction
de Lyapunov du système décrit par l’évolution des x i puisque le long de la courbe décrite par
l’équation (9), nous avons : ∂L
∂t
= − ∂L
d xi
∂x i d t
= −( dd L
xi
)2 ≤ 0.
Plus vectoriellement, prenons le système décrit par d x/d t = −gradL , où L est supposée de classe
C1 . Le long de la courbe de solution x(t ), nous avons :
L 0 (x(t )) =< gradL , d x/d t >= −|gradL |2 ≤ 0 .
(iii) Le système est convergent dans chacun des deux cas suivant :
(1) gradL = 0 en un nombre fini ou dénombrable d’états ; ou
(2) le système est le gradient d’une fonction réelle analytique.
Mais il existe peu de moyens pour prouver l’existence d’une fonction de Lyapunov d’un système
et ensuite de la calculer. Le théorème suivant de Cohen et Lyapunov (1983) est inclus dans de
nombreux modèles de réseaux neuronaux :
T HÉORÈME 4.5. Pour tout système de la forme :
d xi X
(10) = a i (x)[b i (x) + w i , j g j (x j )] ,
dt j
26
il existe une fonction de Lyapunov L si
(1) les fonctions ai sont positives,
(2) les dérivées g 0j sont positives et
(3) la matrice W = (w i , j ) est symétrique. Une fonction de Lyapunov du système est alors donnée
par :
XZ xi 1X
(11) L (x) = b i (s)g i0 (s)d s − w i , j g j (x j )g i (x i ) .
i 0 2 i,j
Pour un réseau neuronal, les conditions suivantes sont connues pour être suffisantes à l’existence
d’un point fixe :
— la matrice W des poids synaptiques est triangulaire avec une diagonale nulle (c’est un réseau
nécessairement non récurrent) ;
— la matrice W est symétrique à diagonale positive comme dans les réseaux de Hopfield en
asynchrone et les machines de Boltzmann (voir Section 6 et Exemple 3.1) ;
—
X 1
wi , j < ;
i,j maxi ∈N | f i0 |
donc, comme pour une sigmoïde exponentielle, il est judicieux de choisir une fonction
d’activation f i dont la dérivée est bornée ;
— la diagonale de la matrice Jacobienne de l’activation du réseau est dominante ; en général
Ji , j = δi , j − w i , j . f i0 (e i ) où δi , j est symbole de Kronecker.
Exemple 4.6. Dans l’exemple 3.1, avec Hopfield choisissons la fonction d’énergie :
N
X
E(t ) = − e i (t )a i (t ) ,
i =1
d ai ∂E(t )
= −a i (t ) + f (− ) , i ∈ [1, N] ,
dt ∂a i (t )
modélisé par le réseau en fonctionnement asynchrone puisqu’au temps t , un seul état i est modifié
et que nous avons alors :
d ai ∂E(t )
= a i (t + 1) − a i (t ) = −a i (t ) + f (e i (t )) = −a i (t ) + f (− ) .
dt ∂a i (t )
27
4.2. Comportements dynamiques plus complexes.
Comme nous l’avons vu, il peut y avoir des cycles limites, des trajectoires chaotiques, des trajectoires
transitoires (i.e. celles qui ne se stabilisent pas).
Ce qui est alors recherché est de contraindre le réseau à suivre une trajectoire donnée. Cela relève
de la prédiction et du contrôle de systèmes dynamiques.
5. Erreur et apprentissage
Une règle d’apprentissage est une règle qui permet d’adapter un réseau à l’application concernée.
Cette règle porte le plus souvent sur la matrice des poids synaptiques.
L’objectif est de calculer la "meilleure" matrice des poids W . Soit un réseau de N neurones avec k
neurones en entrée et m en sortie. Nous supposons disposer de
— x , un patron d’entrée codé sous forme d’un vecteur (x 1 , . . . , x k ),
— s = (s 1 , . . . , s m ), un patron de sortie calculé en présentant l’entrée x au réseau,
— si l’apprentissage est supervisé : d = (d 1 , . . . , dm ) un patron de référence (ou de sortie
désirée) correspondant à la valeur que devrait prendre s comme valeur si le réseau était
parfaitement adapté à l’application.
Soit E(s, d ), une fonction d’erreur entre la sortie effective s et la sortie désirée d . Par exemple,
l’erreur quadratique
1X m
(12) E(s, d ) = (s i − d i )2 .
2 i =1
Comme E est la fonction de Lyapunov du système dynamique continu et que le système dynamique
de correction des poids est discret, un coefficient correctif multiplicatif λ appelé pas d’apprentis-
sage est inséré dans l’équation du système.
L’équation d’apprentissage, i.e. de la correction des poids, se présentera donc usuellement (presque
toujours) sous la forme :
∂E
(13) ∆W = W(t + 1) − W(t ) = −λ .
∂W
Ainsi le pas d’apprentissage λ de (13) permet d’adapter une équation d’un système dynamique dans
laquelle la variable de temps t varie continuement dans R+ à un cas dans lequel t varie de manière
discrète dans N. L’exemple 5.1 illustre la nécessité du pas d’apprentissage même dans un cas des
plus élémentaires.
Exemple 5.1. Soit un réseau modélisant l’équation y = 3x . L’architecture du réseau est constituée
de deux neurones dont les activations respectives sont a , prenant la valeur d’entrée x , et b , celle du
neurone de sortie. La matrice W des poids synaptiques est de dimension 2 × 2 :
µ ¶
0 0
W= , avec w ∈ R
w 0
La fonction d’entrée du neurone b de sortie est h(b) = w · a et sa fonction d’activation est l’identité.
Entrée Sortie
Nous disposons d’un jeu d’essai (un corpus C , ici infini) : (x, d ) = (1, 3), (2, 6), (3, 9), . . . afin d’adap-
ter la matrice des poids W (i.e. la valeur w ) à l’application (i.e. apprendre) ; i.e. on cherche à
modifier w afin d’approcher la valeur de la sortie effective de celle de la sortie désirée d après que
la valeur x ait été présentée en entrée au réseau. Les valeurs successives de w aux temps t = 0, 1, ...
seront successivement notées w(0), w(1), . . . ; la trajectoire des poids formant ainsi un système
dynamique discret de l’apprentissage des poids.
Comment les poids peuvent-ils être modifiés pour apprendre ? En fait l’apprentissage en supervisé
(i.e. on connait la sortie désirée) consiste en ce qu’une fonction d’erreur E(t ) donnée entre la sortie
effective et la sortie désirée atteigne en t = t 0 un “minimum local’ ’ (zéro si possible) le long de la
trajectoire décrite par le système dynamique (discret) w(t ). Dans l’idéal, l’objectif est de parvenir
à décrire un système dynamique w(t ) tel qu’à partir d’une valeur initiale w(0), la trajectoire des
poids atteigne en un temps fini t = t 0 un poids stable w(t 0 ) satisfaisant E(t 0 ) = 0.
29
Nous choisissons cette fonction d’erreur (le 1/2 de l’erreur quadratique est omis délibérément) :
E(t ) = (d − w(t ) · x)2 ≥ 0
Or, comme nous l’avons vu précédemment, une fonction L définie positive, donc L := E, est
naturellement la fonction de Lyapunov du système dynamique continu (9) qui pour le cas discret se
“traduit” par cette équation :
w(t + 1) − w(t ) dE dE
= −λ · où = −2x(d − w · x)
(t + 1) − t dw dw
où λ est le pas d’apprentissage. Donc la règle d’apprentissage décrivant la trajectoire des poids et
que nous allons appliquer est la suivante :
(14) w(t + 1) = w(t ) + 2x · λ · (d − w(t ) · x) .
La valeur de λ est choisie souvent assez petite pour discrétiser plus finement. Si λ = 1, il est possible
d’osciller longtemps autour d’un point d’équilibre avant de l’atteindre ou pas du tout. Choisissons
tout de même λ = 1 pour notre exemple.
Au départ (t = 0), choisissons w = w(0) = 4 et (x, d ) = (1, 3) et décrivons le début de la trajectoire
suivie par w(t ) selon l’équation w(t + 1) = w(t ) + 2x(d − w(t ) · x) . Avec x = 1 en entrée le réseau
ressort la valeur w · x = 4 au lieu de la valeur désirée d = 3. D’où :
w(1) = w(0) + 2 · 1 · (3 − 4) = 2 .
Maintenant avec w = w(1) = 2, étudions le comportement avec (x, d ) = (2, 6). Le réseau sort w ·x = 4
et donc
w(2) = w(1) + 2 · 2 · (6 − 4) = 2 + 8 = 10.
Puis avec (x, d ) = (3, 9) et w(2) = 10 les choses empirent. Le réseau sort w · x = 30 et donc :
w(3) = w(2) + 2 · 3 · (9 − 30) = −116.
Nous constatons que le pas λ = 1 est trop important pour trouver l’état stable de la courbe des poids
où l’erreur E prend son minimum. Ce qui est vrai en continue ne l’est pas nécessairement en discret.
Choisissons λ = 1/2. L’équation de changement des poids devient : w(t +1) = w(t )+ x(d − w(t )· x)
ou, exprimé, autrement :
w(t + 1) = w(t ) · (1 − x 2 ) + d · x .
Avec (x, d ) = (1, k) dans le corpus (ici on cherche à apprendre la multiplication par k quelconque),
pour toute valeur de w(0), nous obtenons :
w(1) = k , la valeur recherchée pour w .
Au temps t = 2, pour tout couple (x, d ) tel que d = k · x , dans la règle d’apprentissage (14), nous
aurons d − w(1) · x = 0 et donc w(2) = w(1) avec E(1) = E(2) = 0. La courbe des poids est arrivée
dans un état stable en une étape avec E qui a atteint son minimum 0. Ainsi le réseau avec w = k
appris avec λ = 1/2 est parfaitement adapté à l’application qui est la multiplication par k .
Cet exemple montre clairement l’importance du choix de la valeur du pas de correction (apprentis-
sage) λ. Ce que font les praticiens est de choisir λ assez petit pour descendre doucement vers l’état
d’équilibre plutôt que d’osciller autour. Nous verrons qu’il est également possible d’apprendre le
pas d’apprentissage.
30
5.2. La corrélation en Cascade. Due à Fahlman et Lebière (1990) cette méthode consiste à
rajouter des neurones. ll utilise le QuickProp (Fahlman, 1988) (voir 1.2) et cherche à maximiser,
pour un certain neurone supplémentaire, la covariance entre son activation et l’erreur des neurones
de sortie.
5.3. Le neurochirurgien optimal (Optimal Brain Surgeon OBS). Elle est l’inverse de la
corrélation en cascade (voir Le Cun et al., 1990 ; Hassibi et al., 1993).
L’idée est de retrancher des neurones à un réseau déjà entrainé en développant la fonction d’erreur
E en série de Taylor jusqu’à l’ordre 2 (le premier ordre étant nul par hypothèse). Le problème de
cette méthode est le calcul de la matrice inverse de la hessienne
H = ∂2 E/∂W 2 .
Cette partie du cours émane du cours de Monsieur Fabrice Rossi (Université Paris-IX Dauphine,
http ://apiacoa.org//contact.html).
Les domaines concernés sont : la reconnaissance des formes ; la classification ; la prédiction et le
contrôle de processus (finance, prédiction temporelle comme la consommation électrique, contrôle
de processus dynamiques).
L’analyse des données classique consiste en des méthodes d’exploration des données (ACP, régres-
sion, ...). Elle s’étend à l’organisation des données. L’apprentissage supervisé s’applique à :
— la discrimination : affectation de nouvelles données à des groupes donnés ; exemples :
pour un diagnostic médical, disposer de mesures biologiques (tension artérielles, numération
sanguine, . . .) pour des personnes saines et des personnes malades ; reconnaître un code
postal ...
— la régression : modélisation de relations fonctionnelles ; exemples : niveau d’ozone
demain en fonction du niveau d’aujourd’hui et de mesures météo comme la vitesse du vent,
cours d’une action , interpolation ...
Les réseaux neuronaux ne sont pas efficaces pour comprendre la relation observations/cible. L’ob-
jectif est d’estimer la cible.
L’apprentissage non supervisé s’applique à :
— la classification : découverte de groupes dans des données ; exemples : regroupement de
profils de consommateurs, groupes d’individus pour l’analyse sociologique.
Ce cours étant destiné à des statisticiens éclairés nous ne nous étendrons pas plus sur cette par-
tie.
31
Chapitre 2
Dans ce chapitre, nous conservons les notations précédentes. Nous débuterons par des règles
d’apprentissage usuelles puis nous décrirons des réseaux particuliers.
1. Règles d’apprentissages
Afin d’illustrer ce que peuvent être des règles d’apprentissage, nous en présentons ici de trois sortes
: la première agissant sur les liens au paragraphe 1.1, la deuxième sur la matrice des poids au
paragraphe 1.2 (voir aussi la règle DELTA, Paragraphe 2.4) et la troisième sur le pas d’apprentissage
au paragraphe 1.3.
L’idée est la suivante : si deux neurones connectés entre eux sont activés de la même manière (au
même moment) alors la connexion qui les relie doit être renforcée. Sinon, elle doit rester inchangée
ou être affaiblie.
1.2. Le QuickProp.
33
Cette règle est due à Fahlman (1988). L’idée est d’augmenter le pas d’apprentissage lorsque les
dérivées de la fonction d’erreur E gardent le même signe entre deux cycles d’apprentissage :
S it , j
∆w it, j = ∆w it,−1
j
S it ,−1
j
− S it , j
où
∂E t
S it , j = .
∂w it, j
∂E
∆w i , j = −λi , j .
∂w i , j
Le règle est la suivante : loin du point d’équilibre le pas d’apprentissage doit être augmenté et
inversement ; ce qui se traduit par :
t
∂E
µ si S it , j ∂w t >0
i,j
∆λit , j =
t
∂E
(15) −Φλit , j si S it , j ∂w t <0
i,j
0 sinon
où
∂E t
S it , j = (1 − Θ) + Θ.S it ,−1
j
∂w i , j
et µ, Φ et Θ sont des constantes petites ; Par exemple, 0,05 ; 0,7 et 0,7. En général, λ0i , j = 0, 1.
2.1. Description.
Couche Couche
d’entrée de sortie
x1 a1
a5 Sortie effective s 5 vs désirée d 5
x2 a2
a6 Sortie effective s 6 vs désirée d 6
x3 a3
a7 Sortie effective s 7 vs désirée d 7
x4 a4
La fonction d’activation est l’identité et la fonction d’entrée des neurones de la couche de sortie est
donnée par les N − k dernières lignes du vecteur W.a, où a est le vecteur d’état.
Le perceptron est utilisé pour la classification. En fait, il permet de séparer linéairement l’espace à
l’aide d’hyperplans.
Posons p = N − k , le nombre de neurones en sortie et notons M la sous matrice (w i , j )k+1≤i ≤N;1≤ j ≤k
de dimension p × k de W constituée de ses colonnes 1 à k et de ses lignes k + 1 à N.
Pour tout (e, d ) du corpus, nous cherchons à approcher une matrice inconnue Λ := (λi , j ) par M
afin de minimiser l’erreur entre la sortie M · e du réseau et la sortie désirée d qui s’identifierait à
Λ · e.
Toutes les fonctions ne sont pas linéairement séparables, c’est-à-dire, séparables par des hyperplans,
comme le montre l’exemple suivant.
35
Exemple 2.1. Un exemple classique est celui du XOR (le ou exclusif) dont la table de vérité est la
suivante :
XOR 0 1
0 0 1
1 1 0
Supposons que le XOR soit modélisable par un Perceptron. Nous avons un réseau avec 2 neurones
en entrée d’activations respectives a1 et a2 et un de sortie d’activation a3 . Comme il n’y a qu’un
neurone en sortie, nous cherchons les coefficients w 3,1 et w 3,2 de la droite w 3,1 a1 + w 3,2 a2 = a3 qui
modéliserait le XOR. Pour modéliser XOR, il faut simultanément avoir :
— la sortie a3 = 1 (i.e. vrai) pour les entrées (a1 , a2 ) = (1, 0) et (0, 1). L’équation de la droite
serait alors a1 + a2 = 1 avec w 3,1 = w 3,2 = 1 ;
— la sortie a3 = 0 (i.e. faux) pour les entrées (0, 0) et (1, 1). L’équation de la droite serait alors
a 1 − a 2 = 0 avec w 3,2 = −1. Comme, il y a contradiction entre w 3,2 = 1 et w 3,2 = −1, le XOR
n’est pas modélisable par un Perceptron.
a2
0
=
2
a
−
1
a
(0,1)
? (1,1)
(0,0) (1,0) a1
a1
+
a2
=
1
Cet exemple classique montre les limites du perceptron. L’idée fut donc d’utiliser des couches
cachées. Voyons ci-après ce qu’il en est.
Comme la matrice W est très creuse et que nous fonctionnons par couches, nous considérons
Ate = (a 1 , . . . , a k ) le vecteur des activations en entrée et Ats = (a k+1 , . . . , a N ) celui des sorties. En
posant
Ws,e := (w i , j )k+1≤i ≤N;1≤ j ≤k
la sous-matrice de W constituée des colonnes 1 à k et des lignes k +1 à N (i.e. la matrice M introduite
plus haut), nous obtenons :
A s = Ws,e .Ae .
36
De même, supposons qu’il existe une couche cachée C, de vecteur d’activation Ac , telle qu’il n’y ait
pas de connection entre les neurones de cette couche, qu’elle reçoive des activations de la couche
d’entrée avec les poids d’une matrice de poids Wc,e et qu’elle active les neurones de sortie avec
une matrice des poids Ws,c . Si on se contente d’un couche cachée avec une fonction d’activation
toujours égale à l’identité pour tous les neurones alors le problème reste inchangé puisque :
Le perceptron est utilisé pour la classification. La règle d’apprentissage du perceptron est la règle
DELTA. Nous avons une couche d’entrée et une de sortie.
Soit la sortie s i du neurone i de sortie et di sa sortie désirée. Alors la règle d’apprentissage du poids
w i , j entre le neurone j (de la couche précédente) et le neurone i est la suivante :
(16) ∆w i , j = λ · a j (d i − s i )
Pour établir la règle DELTA d’apprentissage, nous nous référons au paragraphe 5.1, Chapitre
1.
Notons S l’ensemble des indices des neurones de sortie.
La règle DELTA d’apprentissage effectue une descente en gradient sur cette fonction d’erreur :
(a s − d s )2 .
X
E = 1/2
s∈S
Comme E est une somme de carrés, le minimum sera unique. La correction des poids sera donnée
par l’équation
∂E
∆w i , j = −λ
∂w i , j
où λ est le pas d’apprentissage.
∂E
Nous cherchons à calculer ∂w i , j où i ∈ S est un neurone de sortie. Nous avons
∂E ∂E ∂h(i )
= . .
∂w i , j ∂h(i ) ∂w i , j
37
Afin de réutiliser ces calculs ultérieurement pour le PMC, oublions pour le moment que la fonc-
tion f d’activation est l’identité et considérons l’identité plus générale ai = f (h(i )). Nous avons
alors :
d’où :
∂E
(17) = (a i − d i ). f 0 (h(i )) et
∂h(i )
∂h(i )
(18) = aj ,
∂w i , j
P
puisque h(i ) = w i ,k a k .
∂E
(19) = a j (a i − d i ) f 0 (h(i ))
∂w i , j
(20) ∆w i , j = λ a j (d i − a i ) f 0 (h(i ))
Cet algorithme fut élaboré pour L’AdaLine par Windrow et Hoff (1960) (voir Paragraphe 3). Il
applique la règle d’apprentissage DELTA après chaque passage d’un élément du corpus d’ap-
prentissage. Cet algorithme s’est avéré plus efficace que celui qui consiste à accumuler toutes
les modifications (via la règle DELTA) avec tous les éléments du corpus d’apprentissage pour ne
modifier les poids qu’ensuite.
Dans l’algorithme suivant, nous nous focalisons sur un seul neurone i de la couche de sortie et cher-
chons à modifier la i -ème ligne w de la matrice des poids : w i , j = w j où j parcourt les k neurones de
la couche d’entrée. Nous supposons que le corpus d’apprentissage C est formé de couples (x, d ) où d
est la sortie désirée (du neurone i ) lorsque x est le vecteur des k valeurs données en entrées au réseau.
38
Algorithme de Windrow-Hoff
ENTREES : Le vecteur w des k poids,
un corpus d’apprentissage C,
le pas d’apprentissage lambda.
SORTIE : La vecteur des poids w obtenu par la REGLE DELTA.
Pour tout (x,d) de C Faire
Pour j=1 A k Faire
s := w·x ; la sortie effective
w[j] := w[j] + lambda*(d-s)*x[j]
Retourner w
3. Adaline
Comme application en traitement du signal, nous pouvons citer les antennes adaptatives et les
modems à haute vitesse (voir Windrow et Stearns en 1985).
Les PMC sont des “approximateurs universels de fonctions”. Un PMC, comportant une couche
cachée avec une fonction de transfert non linéaire et une couche de sortie linéaire, suffit à ap-
proximer toute fonction continue à support borné (voir [4]). Ses applications sont nombreuses :
reconnaissance des formes, la classification, le contrôle automatique de processus.
4.1. Architecture.
Le PMC se présente en 3 (ou plus) couches : la couche d’entrée, une couche cachée (ou des couches
cachées) et la couche de sortie.
39
Couche d’entrée Couche cachée C Couche de sortie S
a5 , f 5 , h
x1 a 1 := x 1
wi
,5
a6 , f 6 , h
w
i ,6
x2 a 2 := x 2
w i ,7
a7 , f 7 , h a i := f i (h(i )) sortie ai vs désirée di
8
x3 a 3 := x 3 w i,
i ,9
a8 , f 8 , h w
x4 a 4 := x 4
a9 , f 9 , h
L’activation se propage de l’entrée vers la couche cachée puis de la couche cachée vers la couche de
sortie.
La fonction d’entrée du neurone i est linéaire pour la couche cachée et la couche de sortie :
N
X
h(i ) = wi , j a j
j =1
et la fonction d’activation f i pour la couche cachée est une sigmoïde afin que les couches cachées
soient utiles (voir le paragraphe sur le perceptron) et que l’on puisse dériver. La couche de sortie est
plutôt linéaire (i.e. f i = i d ).
Pour la correction des poids synaptiques lors de l’apprentissage, le parcours se fera en sens inverse :
correction des poids w i , j pour les neurones de sortie i et les neurones cachés j puis correction
des poids w i , j pour les neurones cachés i et les neurones d’entrée j . Pour connaître l’erreur des
couches cachées, il faut connaître celles des neurones auxquels elles sont reliées. Cette méthode de
propagation des corrections des poids synaptiques est appelée la rétropropagation.
Comme il n’y a pas de boucle (réseau non récurrent), ces parcours sont réalisés en une passe et les
temps sont alors proportionnels au nombre de liens synaptiques.
4.2. Apprentissage.
40
La règle de modification des poids reste
∂E
(21) ∆w i , j = −λ
∂w i , j
où j désigne donc un neurone de la couche précédente à celle du neurone i . La fonction d’erreur E
calculée sur les neurones de la couche de sortie S est identique à celle du perceptron, c’est l’erreur
quadratique :
(a i − d i )2 .
X
E = 1/2
i ∈S
De sorte que, pour chaque neurone de sortie i ∈ S , la règle dite règle delta généralisée d’apprentis-
sage est donnée par (voir Identité (20) du paragraphe sur le perceptron) :
Maintenant cherchons la règle d’apprentissage sur les neurones d’une couche cachée C. Pour
appliquer la modification des poids (21), il n’y a qu’à calculer ∂w∂Ei , j où i ∈ C en fonction de nos
données. Nous procédons de la même manière que pour le calcul sur la couche de sortie décrit dans
le paragraphe sur le perceptron :
∂E ∂E ∂h(i ) ∂E
= . = aj .
∂w i , j ∂h(i ) ∂w i , j ∂h(i )
∂E
Nous devons donc calculer les dérivées ∂h(i )
de l’erreur sur les neurones i de la couche cachée C.
Modifions la variable de sommation de notre fonction d’erreur calculée sur la couche de sortie afin
de rendre la présentation plus claire :
(a k − d k )2
X
E = 1/2
k∈S
∂(a k − d k )2 ∂E
1/2 = .
∂h(k) ∂h(k)
∂E
= (a k − d k ) f 0 (h(k)) pour tout k ∈ S,
∂h(k)
41
nous obtenons finalement :
∂E
f 0 (h(i )) (a k − d k ) f 0 (h(k)) w k,i
X
= .
∂h(i ) k∈S
P
car h(k) = j ∈C w k, j a j .
et par conséquent :
∆w i , j = λ.a j . f 0 (h(i )) w k,i (d k − a k ). f 0 (h(k))
X
(24) .
k∈S
La démonstration permet de généraliser à plusieurs couches. Pour tout couple (i , j ), où le neurone j
appartient à la couche précédente de celle à laquelle appartient le neurone i :
(25) ∆w i , j = λ.a j er r i
où
Note Lors de ce cours, sera expliqué le problème des minimas locaux. Le choix du nombre de
neurones de la couche cachée sera traité lors de la séance sur machine.
La fonction la plus utilisée est l’erreur quadratique. Pourtant elle possède un inconvénient majeur
qui est d’avoir une dérivée qui s’annule en plusieurs autre valeur de ai que la valeur désirée par le
patron. Par exemple, pour la sigmoïde exponentielle comme fonction d’activation, en sortie nous
obtenons la correction (voir Identité (22)) :
42
(29) ∆w i , j = λ.a j .(d i − a i ).a i .(1 − a i )
provenant de la dérivée de l’erreur qui s’annule en les trois valeurs 0,1,d i de ai . Or seule la dernière
valeur pour laquelle ai = d i présente un intérét pour l’apprentissage.
Lorsque les données en sortie ne sont pas binaires, dans la pratique la fonction de corrélation croisée
l’emporte souvent sur la quadratique (voir aussi Paragraphe 3.3 Chapitre 1). En effet, la fonction de
corrélation croisée sur la sortie du réseau :
X
(30) E=− (d i l n(a i ) + (1 − d i )l n(1 − a i ))
i ∈S
∂E di − ai
(31) =
∂a i a i (a i − 1)
puisque
∂E di 1 − di d i (1 − a i ) − (1 − d i )a i
= −( − )= .
∂a i ai 1 − ai a i (a i − 1)
Les réseaux RBF furent développés par Powell en 1985 et les premières utilisations réalisées par
Broomhead et Lowe en 1988.
Ce modèle fait parti des réseaux de neurones supervisés et la mise en place de son premier algo-
rithme d’apprentissage est devenu une alternative au PMC. Il est connu pour être plus rapide et
souvent plus efficace que ce dernier. Ses paramètres sont plus aisés à ajuster que ceux du PMC. Il
comporte moins de risque que le PMC de convergence vers un minimum local de la fonction d’erreur.
Les réseaux RBF perdent néanmoins de leur efficacité lorsque les données vivent dans des espaces
de grande dimension (ci-dessous : d grand) ou sur des données très bruitées. Ils ont de moins bonnes
capacité de généralisation que le PMC, surtout si le corpus ne recouvre pas tous les cas.
Si au début ils ont été conçus pour des applications de classification, nous pouvons les retrouver
dans des domaines comme l’interpolation de fonctions, reconnaissance de la parole, prévision de
signal, classification, etc
Architecture
L’architecture du réseau comporte trois couches :
— une couche d’entrée formée de d neurones avec, comme pour le PMC, la fonction d’activa-
tion identité,
— une couche cachée formée de m neurones RBF opérant avec des fonctions radiales de base,
43
— et une couche de sortie linéaire (ou affine) formée de s neurones.
Couche linéaire
Couche d’en-
Couche RBF m = 5 sortie du neurone
trée d = 4
i ∈ [[10, s + 9]]
a5
x1 a 1 := x 1
w5
:=
wi
a6 w
,5
6 :=
w
i ,6
x2 a 2 := x 2
w 7 := w i ,7
a7 a i := 5j =1 w i , j a j
P
Sortie effective ai vs désirée y i
8
x3 a 3 := x 3 w i,
8
:=
w
i ,9
a8
w
:=
9
w
x4 a 4 := x 4
a9
Avertissement au lecteur : Afin d’alléger les notations et de les uniformiser avec les centres, plutôt
que de noter ai +d , i ∈ [[1, m]], les activations pour la couche cachée et a j +d +m , j ∈ [[1, s]], (ou bien
a j , j ∈ [[1+d +m, s +d +m]]) celles de la couche de sortie (voir Dessin ci-dessus), par abus, nous les
noterons désormais simplement ai , i ∈ [[1, m]] pour la couche cachée, et ai , i ∈ [[1, s]] pour la couche
de sortie, tout en précisant la couche pour éviter les confusions. Nous ferons de même pour les poids.
Nous considérons des fonctions à noyaux locales qui apportent des réponses utiles pour un champ
récepteur. Un tel champ est défini autour d’un point, appelé le noyau. La réponse du réseau doit être
maximale au noyau et décroître monotonement avec la distance.
Pour chaque neurone i de la couche RBF (i ∈ [[1, m]]), notons ci ∈ Rd son noyau et pour tout x ∈ Rd ,
notons
v
u d
δi (x) := t (x j − c ij )2 = ||x − ci || .
uX
j =1
la distance de x au noyau ci .
Définition 5.1. Une ψ une fonction de Rd dans R est dite radiale de base (“radial basic function”
en anglais) si elle est symétrique par rapport à un point de Rd pour la norme euclidienne, c’est-à-dire
44
qu’il existe un point c de Rd :
La fonction radiale de base de Rd dans R la plus utilisée en réseau RBF provient des fonctions
gaussiennes sur R. A une facteur multiplicatif prés, elles prennent la forme de la fonction radiale de
base suivante :
δi (x)2
−
σ2
(32) ψi (x) := e i , x ∈ Rd ,
où σi est la taille du champ récepteur, la largeur de la fonction. Pour une entrée donnée, la sortie
du neurone RBF est la hauteur de la gaussienne en ce point. La fonction gaussienne permet aux
neurones de ne répondre qu’à une petite région de l’espace d’entrée, région sur laquelle la gaussienne
est centrée. Elle permet d’estimer la densité de probabilité des données d’entrées.
Ainsi,comme nous l’avons vu dans l’exemple 1.6 du chapitre 1, nous pouvons considérer que le
vecteur x de Rd est le vecteur ae des activations a1 , . . . , ad des d neurones de la couche d’entrée du
réseau auxquels ces valeurs sont affectées et que c i est le vecteur des valeurs des poids w i , j := c ij ,
j ∈ [[1, d ]] partant des d neurones de la couche d’entrée et arrivant au neurone i de la couche RBF.
La fonction d’entrée h(i ) du neurone i nous est donnée par la distance δi avec h(i ) := δi (a e ) :
v
u d ° °
i°
uX
i
h(i ) = (a j − c ) = °a e − c °
t °
j
j =1
2
− x2
σ
f i (x) = e i , x ∈R .
45
Entrée de x ; d = 4 RBF i ∈ [[1, m]]
x1 a 1 := x 1
wi
,1 := c i
1
w i ,2 := c 2i 2
− h(i2)
P4
x2 a 2 := x 2 σ où h(i )2 = j =1 (a j − c ij )2
i a i := e i
,3
:= c 3
wi
i
c4
x3 a 3 := x 3 :=
i ,4
w
x4 a 4 := x 4
°2
Note (Rappel) : Dans la pratique, nous pourrons aussi choisir h(i )2 = °a − c i ° comme fonction
°
2
d’entrée avec la fonction d’activation g (x) = e −x/σ (qui n’est pas une gaussienne). En effet, afin
d’éviter de considérer le couple ( f , h) où h(i ) est une racine carrée, nous pouvons choisir le couple
(g , h 2 ), ce qui revient exactement au même puisque a i = f (h(i )) = g (h(i )2 ).
Apprentissage
(xr , yr ) ∈ Rd × Rs , r = 1, . . . n .
Nous devons adapter notre réseau à ce corpus en rentrant successivement comme pour le PMC les
d valeurs de chaque vecteur xr et en comparant la sortie aux s valeurs attendues du vecteur yr pour
appliquer la règle d’apprentissage choisie sur les poids.
après avoir vu l’architecture générale du réseau, nous avons encore à règler les paramètres variables
dans notre réseau qui sont :
46
1. et 2. Nombre m de neurones RBF dans la couche cachée et position des centres
Rappelons que les centres sont en fait les poids de la couche d’entrée vers la couche RBF.
Si le nombre n d’exemples du corpus n’est pas trop élevé, on prend autant de neurones RBF que
d’exemples, i.e. m = n ,les gaussiennes sont alors centrées sur les exemples donnés en entrée ;
c’est-à-dire que ci := xi où xi est extrait du i -ème vecteur (xi , yi ) du corpus .
Dans le cas contraire, nous prenons m << n et déterminer m devient un véritable problème. Il
n’existe pas vraiment de méthodes pour proposer une bonne valeur. Une fois une décision prise, il
va falloir calculer les centres. Pour cela différentes options s’offrent à nous :
— un choix aléatoire des centres parmi les exemples avec un risque de mauvais choix,
— utiliser des méthodess plus performantes comme l’algorithme des K-moyennes, la quantifi-
cation vectorielle (LVQ),
— d’autres proposent aussi d’utiliser les cartes de Kohonen.
Pour la classification, les centres sont choisis avec l’algorithme des K-moyennes. Cet algorithme
sépare les n vecteurs d’entrées xi du corpus en m différents “clusters”, chacun représenté par un
centre. L’algorithme des K-moyennes, avec ici K = m est le suivant :
Une fois les centres “appris“, nous pouvons déterminer les largeurs des gaussiennes qui en dé-
pendent.
Les 2 règles connues pour affecter des valeurs à ces largeurs sont :
47
d ° °
σ= p où d =max1≤i , j ≤m °ci − c j °
° °
m
1 X n ° °
° i
σj = p °x − c j ° .
°
n 8 i =1
Maintenant que nous avons déterminé les centres et les largeurs des gaussiennes, nous pouvons
passer au choix des poids reliant les neurones RBF et ceux de sortie.
Fixons un neurone de sortie, disons le i -ème, avec i ∈ [[1, s]].
w1
Soit le vecteur w = ... des poids arrivant à notre neurone i de la couche de sortie (i.e. w j := w i , j ,
wm
i ∈ [[1, s]]). Ce sont ces valeurs que le réseau doit apprendre (pour chaque neurone de sortie) afin de
s’adapter à l’application, c’est-à-dire au corpus.
Soit (x, y) ∈ C , un doublet du corpus. Lorsque x est donné en entrée, l’activation du i -ème neurone
en sortie prend pour valeur
Notons Yi = ... le vecteur des i -èmes coordonnées des n vecteurs yr des doublets (xr , yr ) du
y in
corpus C ⊂ Rd × Rs (nous généralisons cette notation aux s autres coordonnées).
Soit encore la matrice n × m représentant la partie RBF des n simulations (expériences) sur le
réseau à partir des n exemples du corpus :
ψ1 (x1 ) . . . ψm (x1 )
i.e. pour l’entrée xr de la r -ième expérience, ψ1 (xr ) est l’activation du neurone 1 de la couche
cachée, . . . , ψm (xr ) est celle de m -ième ; la r -ième ligne est le transposée du vecteur d’activation
de la couche cachée.
48
Les n expériences produisent en sortie le vecteur A.w sur le neurone i qu’il s’agit de comparer au
vecteur Yi attendu. Pour trouver le vecteur w des poids partant de la couche RBF et arrivant au
neurone i , il s’agirait donc de résoudre l’équation
A · w = Yi ;
ce qui revient à inverser la matrice A. La matrice A n’étant pas nécessairement inversible, il va
falloir passer par l’apprentissage sur les neurones de sortie décrite pour les PMC.
Remarquons qu’il s’agit de déterminer colonne par colonne la matrice des poids W qui satisfait
l’équation matricielle :
A · W = (Y1 , . . . , Yn )
où chaque Y j , faisant référence au j -ième neurone en sortie, est défini de la même manière que
Yi .
Puisque la dernière couche est linéaire, il s’agit donc d’appliquer la règle DELTA dans l’algorithme
de Windrow-Hoff vu au paragraphe 2.5 à adapter à la couche RBF. Prenons encore (x, y) ∈ C . La
correction du poids w j = w i , j partant du neurone j de la couche RFB et arrivant au neurone i de
sortie est
w j (t + 1) = w j (t ) + λ (y i − a i ) a j
où ai = (ψ1 (x), . . . , ψm (x)).w et a j = ψ j (x) sont les valeurs calculées des activations respectives
des neurones i et j calculées par le réseau avec x en entrée associé au vecteur désiré y dans le
corpus.
Cas d = s = 1.
j 2
− (x−c2 ) j
σ 2
où ψ j (x) = e j = g ( x−c
σ
) avec g (x) = e −x (nous modifions légèrement nos notations pour
j
d = s = 1).
yj
Notons que dans le cas particulier n = m , c j := x j , σ j = σ et w j = Pm ψ (x)
pour j = 1, . . . , m = n .
j =1 j
Nous retrouvons alors l’estimateur de type Nadaraya-Watson :
49
j
g ( x−x
Pn j
j =1 y σ
)
F̂(x) = P j
.
n x−x
j =1 g ( σ )
6. Connexions symétriques
Nous nous intéressons ici au travail de Hopfield (1982) pour modéliser les “verres de spin de Ising ”
(physique statistique). Le lecteur pourra aussi s’intéresser au travail de Ackley, Seijnouski et Hinton
(1985) sur la machine de Boltzmann.
Nous avons déjà abordé les réseaux symétriques dans l’exemple 3.1 du chapitre 1.
Le réseau est supposé comporter N neurones. Pour chaque neurone i ∈ [1, N], l’activation ai
représente le spin de l’atome i et sa valeur est 0 ou 1. Pour chaque i ∈ [1, N], la relation qui relie s i
la valeur du spin (ou le moment magnétique) et sa représentation par ai est donnée par
s i = 2a i − 1 ;
et s i prend les valeurs -1 et 1 l� où ai prend respectivement les valeurs 0 et 1. Un seuil Θi est
attribué au neurone i .
La matrice des poids synaptiques W est symétrique. Chacun de ses coefficients w i , j (avec i , j ∈
[1, N]) représente l’effet de l’atome i sur l’atome j avec w i ,i = 0 et aussi, de part la symétrie,
w i , j = w j ,i .
La
P
contribution de l’atome i au champ est représentée par la fonction d’entrée linéaire h(i ) =
j ∈[1,N] w i , j a j .
Les fonctions d’activation de tous les neurones sont toutes identiques à la fonction d’activation
binaire f qui s’applique sur h(i ) définie par :
½
1 si x > 0
f (x) =
0 sinon
p p p
Le réseau peut se retrouver dans 2N états (s 1 , . . . , s N ) avec s i = -1 ou 1.
50
6.1. La règle d’apprentissage de Hebb.
La règle d’apprentissage de Hebb (1949) (voir Paragraphe 1.1) s’applique pour aboutir à un état
stable pourvu que les patrons du corpus P ne soient pas biaisés et soient décorrélés. C’est-à-dire que
pour tous patrons p et q du corpus P :
N N
X p X p q
(33) s i = 0 et, pour p 6= q , si si = 0 .
i =1 i =1
Cette règle s’applique de deux manières : (1) pour calculer directement les poids et (2) par pas
successif avec la règle w i ,i = 0 et :
1
∆w i , j (t ) = s i (t )s j (t ) avec i , j ∈ [1, N] , i 6= j .
N
Montrons que lorsque la stabilité sera atteinte alors s i .h(i ) ≥ 0 pour tout i ∈ [1, N]. Avec la règle de
Hebb nous avons :
1 X N X
p p
h(i ) = ( s i s j )a j .
N j =1 p∈P
q q
Supposons que le réseau soit dans un état appris q : a j := a j pour j ∈ [[1, N]] (de même s i := s i ).
Puisque 2a j = s j + 1, nous avons
N X
q X p p q
2N.s i .h(i ) = s i ( s i s j ).(s j + 1)
j =1 p∈P
N X
X q p p q
= s i s i s j .(s j + 1)
j =1 p∈P
N
X q p X p q
= (s i s i s j .(s j + 1)) .
p∈P j =1
p
puisque ∀i ∀p s i 6= 0.
51
7. Réseaux à compétition
Il en existe de trois types importants : LVQ (Kohonen, 1984), SOM (Kohonen) et le réseau ART de
Grossberg. Ils interviennent en analyse des données et en classification.
Pour qu’une couche soit de compétition, elle doit répondre à trois critères :
1. les neurones répondent différement aux diverses entrées
2. les fonctions d’activation sont bornées
3. il existe un mécanisme de concurrence entre les neurones réalisé par des connexions inhibi-
trices.
Les poids inhibiteurs sont égaux pour une bonne compétition.
L’utilisation est la suivante :
— présenter le patron d’entrée et récupérer la sortie,
— compétition entre les neurones de sortie,
— les plus activés sont les vainqueurs.
En dehors de deux exceptions, dont SOM, ce sont les vainqueurs qui sont entraînés et en général
l’apprentissage est non supervisé (règle de Hebb, par exemple).
La capacité de discrimination dépend de la distribution des données à apprendre et à interpréter. Si
elles ne se regroupent pas en nuage, la méthode ne marchera pas.
Nous expliquons le principe de ces réseaux sur un réseau simple constitué de deux couches : une
d’entrée E et une de compétition S .
Soit {x j | j ∈ E} un ensemble de valeurs présentées à cette couche d’entrée qui constitue le patron
(passif) :
a j := x j pour j ∈ E .
Pour i un neurone de la couche de compétition, l’activation pondérée est donnée par
X
e i = h(i ) = w i , j a j =| x | . | Wi | . cos(θi )
j ∈E
où θi est l’angle entre x , le vecteur d’entrée, et Wi , le vecteur des poids arrivant au neurone i . En
normalisant les données avec | x |=| Wi |= 1 pour tout i ∈ S , nous obtenons e i = cos(θi ).
Si la fonction d’activation est monotone croissante alors le gagnant est ac = max i ∈S (ai ).
Le neurone vainqueur agit comme un détecteur de certains types d’entrées. Une des règles due a
Grossberg (1976) est la suivante : il s’agit de redistribuer les poids Wc d’entrée du vainqueur c de
façon à le rapprocher de chaque entrée x j , j ∈ E : pour i 6= c ∆w i , j = 0 et
xj
∆w c, j = λ( P − w c, j ) .
k∈E x k
P
L’effet est de réduire l’angle entre Wc et x . Si la somme j ∈E w c, j des poids d’entrée du neurone c
est 1, elle reste à 1. En effet, dans ce cas :
52
xj
P
k∈E x k
∆w c, j λ( P − w c, j ) = λ( P
X X X
= − w c, j ) = 0 .
j ∈E j ∈E k∈E x k k∈E x k j ∈E
53
8. La Machine de Boltzmann Restreinte, RBM
Une RBM (”Restricted Boltzmann Machine”) est un réseau neuronal stochastique génératif destiné
à apprendre une distribution de probabilité sur ses entrées.
Architecture :
C’est un réseau composé de couches ”visibles‘” et ”cachées”. Il est symétrique (la propagation est
dirigée dans un sens ou dans l’autre avec le même poids), entièrement connecté sous la restriction
suivante : nous ne permettons pas à toutes les couches d’être ainsi inter-connectées (sinon ce serait
une Machine de Bolzmann non restreinte).
Fonctions d’entrée h et d’activation f :
Nous considérons le RBM à unités binaires sous une distribution de Bernouilli : f (x) :=Prob(X =
x) = p x (1 − p)1−x , pour x ∈ {0, 1}. La fonction d’entrée possédant un seuil : au-dessus du seuil
h(i ) = 1, en dessous, h(i ) = 0.
Le corpus : C .
Apprentissage : non supervisé.
Nous choisissons 2 couches : 1 visible et 1 cachée.
Nous présentons x ∈ C à la couche visible. Soit s = Ψ1 (x) la sortie de la couche cachée. Nous
renvoyons s vers la couche visible : x 1 := Ψ2 (s) = Ψ2 oΨ1 (x). Puis x 1 est renvoyé vers la couche
cachée pour obtenir s 1 := Ψ1 (x 1 ). Soit w le vecteur de poids entre les deux couches (nous rappelons
que les connexions sont symétriques). La correction des poids est donnée par la règle d’apprentissage
suivante : : 0 0
∆(w (t )) = λ(< x, s > − < x 1 , s 1 >)
où λ est le pas d’apprentissage. Cet algorithme d’apprentissage non supervisé est dit à divergence
contrastive.
54
Chapitre 3
Comme nous l’avons évoqué au chapitre 1, la corrélation en cascades est due à Fahlman et Lebière
(1990). Cette méthodes consiste à réduire l’erreur en rajoutant des neurones. Le neurochirurgien
optimal est l’inverse de la corrélation en cascade (voir Le Cun et al., 1990 ; Hassibi et al., 1993).
L’idée est de retrancher des neurones à un réseau déjà entrainé.
1. Corrélation en cascades
Elle utilise le QuickProp (Fahlman, 1988) (voir 1.2 chapitre 2) et cherche à maximiser, pour un
certain neurone supplémentaire, la covariance entre son activation et l’erreur .
On choisit le neurone à ajouter dans une famille de candidats. Le critère pour sélectionner ce
candidat est la maximisation de la covariance, sur le corpus d’apprentissage, entre la sortie du
neurone candidat (i.e. son activation) et la fonction d’erreur des neurones de sortie. Soit x un
individu du corpus d’apprentissage et :
(E x, j − E j )(a x − a)
XX
C=
x j
L’opération peut ensuite être répétée en rajoutant un autre neurone dans une couche cachée.
Le neurochirurgien optimal (ou OBS) est l’inverse de la corrélation en cascade (voir Le Cun et
al., 1990 ; Hassibi et al., 1993). Outre un gain de vitesse pour le fonctionnement du réseau, il
permet d’éviter les risques de sur-apprentissage (augmentation des performances en généralisation)
en réduisant la complexité du réseau de neurones par la suppression de certaines connections
synaptiques. L’algorithme OBS minimise la sensibilité d’un critére d’erreur sous la contrainte de
nullité des paramètres ce qui correspond à la suppression de ce paramètre.
Supposons qu’un réseau soit entrainé jusqu’à un minimum de la fonction d’erreur.
55
Considérant le système dynamique dont les points ont pour coordonnées les poids, nous représentons
les poids sous forme d’un vecteur w et non plus de la matrice W , en ordonnant par exemple ses
lignes une à une les unes derrière les autres dans w (i.e. le q -ième élément w q de w est un élément
w i , j de W ).
On développe la fonction d’erreur E en série de Taylor jusqu’à l’ordre 2, le premier ordre étant nul
par hypothèse. Le problème de cette méthode est le calcul de la matrice inverse de la hessienne
∂2 E ∂2 E
H = ∂2 E/∂w 2 = ( )1≤i ,k≤m,1≤ j ,l ≤d = ( )1≤q,p≤d .m
∂w i , j ∂w k,l ∂w q ∂w p
dont la dimension est élevée : (d .m)2 où d et m sont les nombres de neurones respectifs des
couches concernées.
Soit le développement de l’erreur E en série de Taylor :
∂E 1 t
∂E = ∂w . + ∂w .H.∂w + O(k∂w k3 ) .
∂w 2
∂E
En négligeant l’ordre 3 et en supposant nulle ∂w
(puisque le réseau est bien entrainé), nous avons à
étudier :
1t
∂E = ∂w .H.∂w .
2
Revenons à notre réseau. Eliminer un lien w q = w i , j de j vers i signifie que w q (t + 1) = 0 ;
c’est-à-dire que 0 = w q (t ) + (w q (t + 1) − w q (t )) = w q (t ) + ∆w q . Soit t e q .(w + ∂w ) = 0, où t e q =
(0, . . . , 0, 1, 0, . . . 0) est le transposé du vecteur canonique e q .
La suppression du lien q doit conduire à un accroissement minimal de l’erreur E. Il nous faut donc
trouver q et modifier les poids des autres liens telle que l’erreur soit la plus petite possible. Nous
nous retrouvons avec le problème de minimisation suivant :
1t
min [min ( ∂w .H.∂w ; t e q .(w + ∂w ))].
q ∂w 2
Soit le lagrangien :
1t
L := ∂w .H.∂w + λ(t e q .(w + ∂w ))) .
2
∂L ∂L
On calcule ses dérivées partielles ∂w q et ∂λ . La minimisation de ce Lagrangien conduit à la variation
du vecteur des paramètres :
wq
∂w = − H−1 .e q
H−1
qq
où H−1 −1
q q est le q -ième terme diagonal de H . Et on obtient que l’augmentation de l’erreur si on
supprime w q est :
2
1 wq
Lq = .
2 H−1
q,q
56
Si le lien q qui minimise L q le minimise ”assez”, on retirera ce lien. Cette méthodes évite de
recommencer l’apprentissage. L’erreur se distribuera sur les autres liens. Seulement, il faut inverser
la matrice H de grande dimension et la méthodes n’a pas de test d’arrêt.
57
Chapitre 4
La Statistique et le PMC
Supposons que X1 , . . . , X n soient des valeurs observées et que l’on cherche φ(X1 , . . . , Xn ) telle
que
E(X n+1 |X 1 , . . . , X n ) = φ(X 1 , . . . , X n ) .
Toute fonction φ(x 1 , . . . , x n ) suffisamment régulière peut être approchée par une fonction de la
forme :
n
X
g( ai xi + bi ) .
i =1
Ce qu’il faut chercher est l’estimation statistique ĝ (X1 , . . . , X n ) de g s’exprimant sous la forme :
n
aˆi x i + bˆi )
X
ĝ = g (
i =1
où, pour i ∈ [1, n], les valeurs aˆi et bˆi sont respectivement des valeurs approchées des ai et bi . (Voir
[2] et [3] pour une vitesse d’approximation ).
Ce type de problème classique de la statistique est résolu dans des cas très généraux. L’intérêt des
réseaux neuronaux intervient dans les cas de grandes dimensions.
2. Statistique et PMC
Nous avons x 1 , . . . , x n des variables observées et nous cherchons x n+1 . Pour i = 1, . . . , n + 1, notons
X i la variable aléatoire de la i -ième valeur. Posons X = (X 1 , . . . , X n ) et Y = (X n+1 ). Pour approcher Y ,
nous cherchons à construire un réseau qui approxime au mieux l’espérance E[Y|X] par une fonction
f W (X), où W est une matrice de poids synaptiques.
Qui dit estimer, sous-entend choisir une fonction d’erreur π(Y, f W (X)) entre la sortie obtenue f W (x)
avec x = (x 1 , . . . , x n ) et celle désirée Y = (x n+1 ).
Une fois cette fonction d’erreur choisie, nous désirons qu’elle soit aussi petite que possible. Donc
nous cherchons f W qui minimise au mieux l’espérance E[π(Y, f W (X))] de la fonction d’erreur
π.
59
La question est de savoir si approcher Y permet de trouver E[Y|X]. Cela dépend de la fonction
d’erreur choisie.
Exemple 2.1. Choisissons π(Y, f W (X)) = (Y − f W (X))2 . Avec cette fonction d’erreur, nous calculons
de manière classique
E[(Y − f W (X))2 |X] = E[(Y − E[Y|X])2 |X] + E[(E[Y|X] − f W (X))2 |X] .
(l’erreur totale est la somme de l’erreur de prédiction et de l’erreur statistique de prédiction). Donc
minimiser l’erreur entre la sortie du réseau f W (X) et la valeur désirée Y revient à minimiser celle
entre f W (X) et l’espérance E[Y|X], ce qu’on cherche à estimer.
D’autres fonctions d’erreur entre la sortie du réseau f W (X) et la valeur désirée Y partagent cette pro-
priété d’estimation optimale. Par exemple, la Cross Entropy souvent employée dans les PMC :
Yl og ( f W (X)) + (1 − Y)l og (1 − f W (X)) .
Comme nous l’avons étudié dans le PMC, nous savons que les poids optimaux sont obtenus en
minimisant l’espérance d’erreur entre les calculs du réseau et les valeurs désirées obtenues à partir
d’un corpus.
60
Chapitre 5
DNN Les réseaux de neurones profonds (Deep Neural Networks). Ce sont les réseaux PMC (Per-
ceptron Multi-Couches) avec plusieurs de couches cachées que nous avons étudiés.
CNN Les réseaux de neurones convolutionnels ( Convolutional Neural Networks). Ils sont utili-
sés pour la reconnaissance d’images. Le problème est divisé en zones reflétant des sous-
problèmes locaux. Localement, pour chaque zone, un noyau (cluster) de neurones est créé.
DBN La machine de Boltzmann profonde (Deep Belief Network). Les algorithmes fonctionnent
suivant une première phase non supervisée, suivie de l’entrainement classique PMC su-
pervisé. La première étape non-supervisée facilite l’apprentissage supervisé sur tout le
réseau.
Les réseaux de neurones sont bons pour la prédiction et l’estimation seulement quand : les entrées
et les sorties sont bien comprises, l’expérience est disponible pour un nombre “suffisant“ d’exemples
à utiliser pour entraîner le réseau. Ils ne peuvent faire mieux que les exemples qui lui sont fournis.
Etant statiques, ils doivent être régulièrement mis à jour avec les nouveaux exemples.
Ils sont remarquables quant à leur aptitude à modéliser des structures complexes et des données
irrégulières. En particulier, pour les relations, interactions, non linéaires entre les variables. Ils
offrent une robustesse satisfaisante aux données bruitées Ils s’appliquent à une grande variété de
problèmes.
Ils requièrent un pré-traitement sur les données aberrantes auxquelles ils sont sensibles. Pour les
PMC, les données doivent être normalisées (i.e. appartenir à [[0, 1]]).
Leurs faiblesses sont le caractère non explicite des résultats, lors de la convergence qui ne se réalise
pas toujours vers la meilleure solution globale, l’apprentissage qui requiert au préalable un choix
peu guidé de l’architecture (nombre de couches, nombre de neurones par couche) et du taux d’ap-
prentissage. Ils sont également sensibles à un trop grand nombre de variables discriminantes.
Liens utiles
Le lecteur est invité à écouter le cours de Yann LeCun (au Collège de France) et pourra ainsi
s’intéresser aux réseaux dit convolutifs dont il est l’inventeur :
http ://deeplearning.net/tutorial/lenet.html.
Il est également invité à lire une traduction de l’article original et limpide de Brandon Rohrer (Senior
Data Scientist à Facebook), ”How Convolutional Neural Networks Work” : ”Comment les réseaux
de neurones à convolution fonctionnent” :
https ://medium.com/@CharlesCrouspeyre/
comment-les-réseaux-de-neurones-à -convolution-fonctionnent-b288519dbcf8
Pour votre projet
Voici l’adresse du serveur sage de l’UPMC (sous Jupiter) :
https ://sage.math.upmc.fr/hub/login
Pour se connecter, il faut utiliser les identifiants UPMC avec peut-être ”pN” comme login où N est
votre numéro d’étudiant (c’est le CAS qui gère cela).
Il vient en complément du Cloud de SageMath : https ://cocalc.com.
63
Les logiciels
Traité en cours
1. Sous R : la fonction nnet pour le PMC, les librairies neuralnet, RSNNS qui en
particulier implante le réseau RBF
4. Le logiciel Tanagra
5. SNNS
6. Weka
65
Bibliographie
[1] J.A. Anderson et E. Rosenfeld Eds. , Neurocomputing, Fondations of research, MIT Press Cambridge,
Massachusetts, Vol. I et II, 1989.
(contient d nombreux articles de référence).
[2] A.R. Baron Universal approximation bounds for superposition of a sigmoïde function IEEE Trans. on Inf.
Theory, vol. 39, N. 3, 930-945 (Rap. interne 56, Stat. Dep. Univ. of Illinois, 1991)
[3] A.R. Baron Approximation and Estimation Bounds for Artificial Neural Networks, Machine Learning, vol.
14, 115-133.
[4] Cybenko G. (1989) Approximation by Superposition of a sigmoïde function, Mathematics and control,
Signals, and Systems, 2, 303-314.
[5] Fahlman S.E. (1988) Faster learning variations on back-propagation : an empirical study, Processing of
Connexionist Models. Summer School, Morgan Kaufmann, CA, 38-51
[6] Fahlman S.E and C. Lebière, The cascade correlation learning architecture, Neural Information Processing
Systems, 2, pp. 524-532, 1990.
[7] Funahashi K, On the approximate realisation of continuous mapping by neural networks, Neural Networks,
2, pp. 183-192, 1989.
[8] Hassibi B. and D.G. Stork, Second order derivatives for network pruning : optimal brain surgeon, Advances
in Neural Information Processing Systems, S.H. Hanson, J.D. Cowan and C.L. Gilles (Eds.), Morgan
Kaufmann, San Mateo, CA, 5, pp. 164-171, 1993.
[9] Jodouin (livre dont une grande partie de ce cours est tiré)
[10] Jollife I.T., Principal Component Analysis, Springer, 1986.
[11] J.J. Hopfield (1982) Neural networks and physical system with emergent collective computational Abilities,
Proc. Natl. Acac. Sci. USA 79 2554-2558.
[12] D.O. Hebb, The organization of behavior, Wiley, 1949.
[13] T. Kohonen (1974), An adaptative associative memory principle, IEEE Transaction on Computers, 444-445.
[14] Kwok T.Y. and D.Y. Yeung, Constructive Algorithms for structure learning in feedforward neural networks
for regression problems, IEEE Trans. on Neural Network, 8(3), pp. 630-645, 1997.
[15] Ljung L., System identification : theory for the users, Prentice-Hall, Englewood Cliffs, N.J., 1987.
[16] , W.S. McColloch et W. Pitts (1943), A logical Calculus of the ideas immanent in nervous activity, Bull.
Math. Biophysics 5, 115-133.
[17] F. Rosenblatt (1957), The perceptron, A perceiving and recognizing automation, Cornell Aeronautical
Laboratory Report 85-460-1.
[18] Ruck D.W., S.K. Rogers and M. Kabrisky, Feature selection using a multilayer perceptron, Neural Network
Computing, 2(2), pp. 40-48, 1990.
[19] M.C. Mozer et D.E. Rumelhard, Lawrence Erlbaum, Mathematical perspectives on neural network, ed.
P. Smolensky Associates, (1996).
[20] Tarr G., Multilayered feedforward networks for image segmentation, PhD Air Force Inst. Technol. Whright-
Patterson AFB, 1991.
67