Professional Documents
Culture Documents
La Rétropropagation
Philippe Leray
Philippe.Leray@insa-rouen.fr
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.1/52
Histoire ...
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.2/52
Histoire ... (suite)
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.3/52
Plan
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.5/52
Un réseau de neurones
Principe :
graphe orienté : interconnexion d’élements simples
(les neurones)
échange d’information via les connexions
calcul distribué et coopératif
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.6/52
Un réseau de neurones (suite)
Caractéristiques :
architecture
type d’interconnexion
choix des fonctions de transferts
mode d’apprentissage
comment estimer (=apprendre) les poids
Utilisation :
système de décision
approximation de fonctions
résolution de problèmes
mémorisation et compression
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.7/52
Un réseau de neurones (suite)
Avantages :
Tolérance par rapport aux fautes (élimination d’un
neurone...)
Apprentissage automatique des poids
Capacité de généralisation
Inconvénients :
Représentation complexe
Paramètres difficiles à interpréter physiquement (boite
noire)
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.8/52
Différentes architectures
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.9/52
Réseaux feedforward
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.10/52
Réseaux récurrents
NARX (prévision)
NARMAX (identification)
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.12/52
Différents types d’apprentissage
Apprentissage supervisé
on fournit une série d’exemples x et de résultats y
l’algo doit trouver W tel que y = FW (x) (avec une
bonne généralisation)
ex : méthodes de gradient stochastique en
discrimination linéaire
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.15/52
Perceptron Multi-couches
Approximation de fonctions
Cybenko 1989 :
Pour toute fonction saturante continue f ,
alors l’espace des fonctions de la forme
PN
g(x) = j=1 νj f (wjt x) est dense dans C(I n )
i.e. quelque soit h ∈ C(I n ) et > 0, il existe g tel
que | g(x) − h(x) |< sur I n
Classification
Hornik et al. 1989 :
Pour toute fonction saturante continue f ,
pour toute mesure de probabilité m sur R n ,
alors l’espace des fonctions de la forme
PN
g(x) = j=1 νj f (wjt x) est uniformément dense sur
les compacts de C(Rn )
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.16/52
Perceptron Multi-couches
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.17/52
Perceptron Multi-couches
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.18/52
Perceptron Multi-couches
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.19/52
Perceptron Multi-couches
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.20/52
Réseau à fonction de base radiale
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.22/52
Réseau à fonction de base radiale
Propriétés d’approximation
Park & Sandberg 1991 :
pour toute fonction d’entrée/sortie f ,
il existe un RBR avec
– un ensemble de centre {wi },
– une largeur commune σ > 0
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.23/52
Apprentissage non supervisé
Inspiration biologique
auto-organisation de certaines parties du système
nerveux
il n’y a pas "d’enseignant"
Applications
clustering
aucune connaissance sur les classes des points
(classes inconnues ou trop compliquées à obtenir)
réduction d’informations
regroupement de points ressemblants en un
vecteur représentatif.
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.24/52
Cartes Auto-organisatrices
Inspiration biologique :
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.25/52
Cartes Auto-organisatrices
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.26/52
Cartes Auto-organisatrices
Apprentissage compétitif :
principe = encourager le neurone "vainqueur"
les poids du neurone gagnant sont rapprochés du
vecteur d’entrée
présentation de l’exemple xk
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.27/52
Cartes Auto-organisatrices
Avantages :
l’espace de sortie est un espace de représentations
⇒ on peut visualiser les sorties de la carte
on peut représenter des données de grande
dimension
ACP non-linéaire
Inconvénients :
temps de convergence
pas de preuve de convergence en multidimensionnel
pas d’unicité de la représentation
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.28/52
Cartes Auto-organisatrices
Exemple : Websom
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.29/52
Retour sur la rétropropagation
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.30/52
Moindres carrés stochastiques
Fonction de
Pncoût : 0 Pn
J(w, b) = i=1 (Ψ(w xi + b) − yi ) = i=1 (Ψ(W Xi ) − yi )2
2
n
X
∆=2 (Ψ(W Xi ) − yi )Ψ0 (W Xi )Xi
i=1
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.31/52
Moindres carrés stochastiques
W ← Winit
Répéter
W ← W − ρ∆
Tant qu’il reste des Xi mal classés
ou que J n’évolue plus
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.32/52
Méthodes de gradient
Pn 0
∆=2 i=1 (Ψ(W X i ) − y i )Ψ (W Xi )Xi
Adaline
Approximation linéaire
Pn
∆ = 2 i=1 (W Xi − yi )Xi
Perceptron
Ψ0 = 1 P
∆ = 2 ni=1 (Ψ(W Xi ) − yi )Xi
Neurone Formel
Ψ devient ϕ = tanh (sigmoïde)
Pn
∆ = 2 i=1 (ϕ(W Xi ) − yi )ϕ0 (W Xi )Xi
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.33/52
Notations Perceptron Muticouches
couche 1 : W1 = [wji ]
couche 2 : W2 = [wkj ]
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.34/52
Propagation
(1) Pn0
aj = i=0 wji xi
(1) (1)
xj = f (aj )
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.35/52
Propagation en Matlab
Function y = propag(x,w1,w2)
n = size(x,1) ; % nb d’exemples
a1 = [x ones(n,1)]*w1 ;
x1 = tanh(a1);
a2 = [x1 ones(n,1)]*w2 ;
y = a2;
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.36/52
Calcul de l’erreur
PN
Coût global : J = ξ=1 Jξ
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.37/52
Apprentissage des paramètres
Problème : calcul de ∂J
∂wji
et ∂J
∂wkj
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.38/52
Couche de sortie
Calcul de ∂J
∂wkj
pour un exemple fixé :
(2)
∂ak
∂J
∂wkj
= ∂J
∂yk
× ∂yk
(2) × ∂wkj
∂ak
. . .
1
Pn2 d (2) (2) Pn1 (1)
J= 2
(y
k =1 k0
0 − yk0 )2 yk = g(ak ) ak = j=0 wkj xj
↓ ↓ ↓
(2) (1)
−(ykd − yk ) g 0 (ak ) = 1 xj
(2) (1)
posons Errk ≡ ∂J
(2) = −(ykd − yk )g 0 (ak ) ∂J
∂wkj
= Errk × xj
∂ak
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.39/52
Couche cachée
Calcul de ∂J
∂wji
pour un exemple fixé :
(1) (1)
∂xj ∂aj
∂J
∂wji
= ∂J
(1) × (1) × ∂wji
∂xj ∂aj
. . .
∂J
Pn2 ∂J ∂ak
(2)
(1) (1) (1) Pn0
(1) = k=0 ∂a(2) ∂x(1) yj = f (aj ) aj = i=0 wji xi
∂xj k j
↓ ↓ ↓
∂J
Pn2 (1)
(1) = k=0 Errk wkj f 0 (aj ) xi
∂xj
∂J
Pn2 0 (1) ∂J
Errj ≡ (1) =( k=0 Err k w kj )f (aj ) ∂wji
= Errj × xi
∂aj
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.40/52
Propagation en Matlab
Function y = retropropag(x,yd,w1,w2)
...
a1 = [x ones(n,1)]*w1 ; x1 = tanh(a1);
a2 = [x1 ones(n,1)]*w2 ; y = a2;
ERRk = -(yd-y);
GradW2 = [x1 ones(n,1)]’ * ERRk ;
w1 = w1 - pas1 .* GradW1 ;
w2 = w2 - pas2 .* GradW2 ;
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.41/52
Exemple
x = [0.5 1] ; y d = [0.5 1]
W1 = [0.5 0.5 ; 0.5 0.5] (pas de biais pour simplifier)
W2 = [1 1 ; 1 1]
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.42/52
Exemple
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.43/52
Exemple
Mise à jour de W1 et W2 :
W1 = [0.3448 0.3448 ; 0.1896 0.1896]
W2 = [0.7554 0.9142 ; 0.7554 0.9142]
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.44/52
Exemple
Evolution de y1 et y2 ...
On converge bien vers le résultat y d = [0.5 1]
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.45/52
Gradient Batch vs. Séquentiel
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.46/52
Pas d’apprentissage
Problème de réglage :
trop petit : convergence "lente" vers la solution
trop grand : risque d’oscillations
Heuristiques courantes :
diminuer le pas d’apprentissage au fur et à mesure
"à la main"
en fonction de la forme de la surface d’erreur
approximations :
Premier ordre :
– Rétropropagation avec moment d’inertie
– Delta-Bar-Delta, Rprop, ...
Second ordre :
– Quickprop
– Levenberg Marquard
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.47/52
Premier ordre
as
Architecture des Systèmes d’Information
∆wji (t) = −ηji (t)Errj × xi
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.48/52
Premier ordre
ηji (t + 1) =
min(ηji (t)u, ηmax ) si (Errj xi )(t)(Errj xi )(t − 1) > 0 (on accélère)
max(ηji (t)d, ηmin ) si (Errj xi )(t)(Errj xi )(t − 1) < 0 (on freine)
ηji (t) sinon
−ηji (t)sgn(Errj xi ) si "accélération" ou "surplace"
∆wji (t + 1) =
0 sinon
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.49/52
Second ordre
H : matrice hessienne
du coût
∂2J ∂2J ∂2J
∂w12 ∂w1 ∂w2
··· ∂w1 ∂wn
..
∂2J ∂2J
.
∂w1 ∂w2 ∂w22
H= .. ..
...
. .
∂2J ∂2J
∂w1 ∂w2
··· ··· 2
∂wn
calcul du gradient : ∂w
∂J ∂J
(w + h) ≈ ∂w (w) + h0 H(w)
on cherche h tel que le gradient soit nul (min. du coût) :
∂J
∆W = h = −H −1 (w) ∂w (w)
as
Architecture des Systèmes d’Information
Problème : calcul de H −1
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.50/52
Second ordre
Approximation du hessien :
∂J ∂ 2 J
hessien = matrice diagonale : ∆w(t) = − ∂w / ∂w2
Quickprop (Fahlman 1988) : on évite de calculer H :
∂J ∂J
∂2J ∂w
(t + 1) − ∂w (t)
2
≈
∂w ∆w(t)
∂J
(t)
∆w(t) = −∆w(t − 1) ∂J
∂w
(t)− ∂J
(t−1)
∂w ∂w
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.51/52
Références
The Handbook of Brain Theory and Neural Networks, M.A. Arbib, MIT Press.
Backpropagator’s Review
plein de choses sur la rétropropagation : http ://www.dontveter.com/bpr/bpr.html
un petit tutoriel : http ://www.dontveter.com/bpr/public2.html
as
Architecture des Systèmes d’Information Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.52/52