quelques types de rØseaux de neurones la rØtropropagation
TRANSCRIPT
Quelques Types de Réseaux de Neurones
La Rétropropagation
Philippe Leray
INSA Rouen -Département ASI - Laboratoire PSI
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.1/52
Histoire ...
1940 : La machine de Turing1943 : Le neurone formel (McCulloch & Pitts)1948 : Les réseaux d’automates (Von Neuman)1949 : Première règle d’apprentissage (Hebb)
1958-62 : Le Perceptron (Rosenblatt)1960 : L’Adaline (Widrow & Hoff)1969 : Perceptrons (Minsky & Papert)
limites du Perceptronbesoin d’architectures plus complexes,mais comment effectuer leur apprentissage ?
1974 : Rétropropagation (Werbos)pas de succès ! ? ! ?
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.2/52
Histoire ... (suite)
1986 : Rétropropagation (Rumelhart & McClelland)nouvelles architectures de réseaux de neuronesapplications
reconnaissance de l’écriturereconnaissance et synthèse de la parolevision (traitement d’images)
1990 : Société de l’Informationnouvelles applications
recherche et filtrage d’information sur le Webextraction d’information, veille technologiquemultimedia (indexation, ...)data-mining
besoin de combiner plusieurs modèles
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.3/52
Plan
Qu’est-ce qu’un neuroneQu’est-ce qu’un réseau de neurones
Les types d’architecturesLes types d’apprentissage
Quelques réseaux de neurones usuelsMultiLayer Perceptron (MLP)Perceptron MultiCouches (PMC)Radial Basis Function Network (RBF)Réseau à fonctions de base radiale (RBR)Self-Organizing Maps (SOM)Cartes de Kohonen
Un algorithme d’apprentissage : la rétropropagation
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.4/52
Un neurone
Modélisation simplifiée d’un neurone biologique(Mc Culloch & Pitts)
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 connexionscalcul distribué et coopératif
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.6/52
Un réseau de neurones (suite)
Caractéristiques :architecture
type d’interconnexionchoix des fonctions de transferts
mode d’apprentissagecomment estimer (=apprendre) les poids
Utilisation :système de décisionapproximation de fonctionsrésolution de problèmesmémorisation et compression
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.7/52
Un réseau de neurones (suite)
Outil de représentation des connaissances :représentation distribuée : chaque neurone "participe"
Avantages :Tolérance par rapport aux fautes (élimination d’unneurone...)Apprentissage automatique des poidsCapacité de généralisation
Inconvénients :Représentation complexeParamètres difficiles à interpréter physiquement (boitenoire)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.8/52
Différentes architectures
Besoin de structurer les interconnexions entre neuronesmatrice de connectivité
Types d’architectures courantesréseaux feedforwardréseaux récurrentscartes topologiques
Besoin d’apprendre les poids des connexions
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.9/52
Réseaux feedforward
Organisation des neurones en couches successives
Le calcul de y se fait en propageant les calculs de lagauche vers la droite(avec éventuellement des connexions directes linéaires : y = a ∗ x + FW (x))
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.10/52
Réseaux récurrents
Présence d’au moins une boucle de rétroactionau niveau des neurones ou entre les couchesex : x(t − 1)
#+ Whi
YYY
,,YYYYYY
&&LLLLLLLLLLLLLL
��@@@
@@@@
@@@@
@@@@
@@@
...��
∫
Woh
CCC
!!CCCx(t − p)
22eeeeeeeeeee
,,YYYYYYYYYYY
&&LLLLLLLLLLLLLL ∫ // / // x̃(t)
bj
x̃(t − q)
22eeeeeeeeeeee
,,YYYYYYYYYYYY
88rrrrrrrrrrrrrr
...HP ∫
=={{{{{{{
x̃(t − 1)
3;
88rrrrrrrrrrrrrr22eeeeeeeeeee
??~~~~~~~~~~~~~~~~~~
Prise en compte de l’aspect temporel du phénomène,"mémoire"Modèles plus durs à mettre en œuvre (convergence)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.11/52
Réseaux récurrents
NARX (prévision)
NARMAX (identification)
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 yl’algo doit trouver W tel que y = FW (x) (avec unebonne généralisation)ex : méthodes de gradient stochastique endiscrimination linéaire
Apprentissage semi-supervisé (renforcement)on fournit des exemples et des indications sur lerésultat (vrai/faux)
Apprentissage non superviséon fournit seulement des exemples x à l’algoritmheil doit trouver W tel que les x soient correctementgroupés selon FW (avec une bonne généralisation)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.13/52
Réseaux de neurones usuels
Réseaux feedforward + apprentissage superviséMultiLayer Perceptron (MLP)Perceptron MultiCouches (PMC)Radial Basis Function Network (RBF)Réseau à fonctions de base radiale (RBR)Support Vector Machines (SVM)
Réseaux récurrents + apprentissage superviséTime Delay Neural Networks (TDNN)Réseaux de Jordan, Elman, NARMAX, ...=⇒ cf. Annexe Web Séries Temporelles
Carte topologique + apprentissage non superviséSelf-Organizing Maps (SOM)Cartes de Kohonen
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.14/52
Perceptron Multi-couches
Réseau feedforward (1986)
fonction de transfert = tanh (sauf sortie linéaire)méthode d’apprentissage supervisée classique :rétropropagation du gradient (cf. détail en fin de cours)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.15/52
Perceptron Multi-couches
Approximation de fonctionsCybenko 1989 :
Pour toute fonction saturante continue f ,alors l’espace des fonctions de la formeg(x) =
∑Nj=1 νjf(wt
jx) est dense dans C(In)
i.e. quelque soit h ∈ C(In) et ε > 0, il existe g telque | g(x)− h(x) |< ε sur In
ClassificationHornik et al. 1989 :
Pour toute fonction saturante continue f ,pour toute mesure de probabilité m sur Rn,alors l’espace des fonctions de la formeg(x) =
∑Nj=1 νjf(wt
jx) est uniformément dense surles compacts de C(Rn)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.16/52
Perceptron Multi-couches
Exemple en classification (Bennani & Gallinari 1991)identification du locuteur parmi les 102 personnesenregistrées
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.17/52
Perceptron Multi-couches
Système modulaire pour l’OCR : LeNet (LeCun 1989)utilisation, des RN pour faire de la convolution et duré-échantillonage
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.18/52
Perceptron Multi-couches
Système modulaire pour l’OCR : LeNet5 (LeCun 1995)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.19/52
Perceptron Multi-couches
Exemple en mémorisation/compression : réseau diabolo
PMC qui reconstruit au mieux les images données en entréesortie de la couche cachée = représentation compacte de l’imagepoids = algo de compression/décompression
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.20/52
Réseau à fonction de base radiale
Réseau feedforward à une couche cachée(Broomhead & Lowe 1988, Moody & Darken 1989)
fonction de transfert = gaussienneg(x,w) = exp(−‖x−w‖2
2σ2 )
(ou toute autre fonction noyau)version parcimonieuse de la régression spline
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.21/52
Réseau à fonction de base radiale
Méthode d’apprentissage classique :Nb et paramètres des gaussiennes (non supervisé)=clustering (regrouper les points en classe, UV DM)
Nb de gaussiennes = nb de clusters trouvésParamètres de chaque gaussienne = (µ, σ) dechaque cluster
LVQ, K-Means, EM, ...
Couche de sortie (supervisé)Paramètres de la combinaison linéaire : moindrecarrés
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.22/52
Réseau à fonction de base radiale
Propriétés d’approximationPark & Sandberg 1991 :
pour toute fonction d’entrée/sortie f ,il existe un RBR avec– un ensemble de centre {wi},– une largeur commune σ > 0
tel que la fonction réalisée par le RBR est prochede f(x) pour la norme Lp (p > 0)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.23/52
Apprentissage non supervisé
Inspiration biologiqueauto-organisation de certaines parties du systèmenerveuxil n’y a pas "d’enseignant"
Applicationsclustering
aucune connaissance sur les classes des points(classes inconnues ou trop compliquées à obtenir)
réduction d’informationsregroupement de points ressemblants en unvecteur représentatif.
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.24/52
Cartes Auto-organisatrices
Inspiration biologique :
les neurones du cerveau (cortex) sont organisés enrégions correspondants à des fonctions sensoriellesdifférentes
des stimuli proches vont activer des neurones ducortex qui sont eux aussi proches
⇒ Notion de topologie et de carte du cortex
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.25/52
Cartes Auto-organisatrices
Principe (Kohonen, 1990)
trouver une projection entre :l’espace des données(grande dimension)l’espace des représentations(dimension réduite)
la projection doit conserver la topologiedes données
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 duvecteur d’entrée
exemple pour les cartes topologiques :
présentation de l’exemple xk
choix du neurone gagnant i∗ tel que ‖ xk − Wi∗ ‖= min ‖ xk − Wi ‖
choix de Ni∗ voisinage de i∗ (topologie)
modification des poids : ∆Wi(k + 1) =
ε(k)(xk − Wi(k)) si i ∈ Ni∗
0 sinon
on fait décroître ε(k) et la taille de Ni(k) pendant l’apprentissage
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 carteon peut représenter des données de grandedimensionACP non-linéaire
Inconvénients :temps de convergencepas de preuve de convergence en multidimensionnelpas d’unicité de la représentation
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.28/52
Cartes Auto-organisatrices
Exemple : Websom
représentation de documents issus duWeb (http ://websom.hut.fi)
projection du contenu de 7 millions demsgs de 83 newsgroups sur une SOM
les textes ressemblants se regroupentdans des endroits proches de la carte
la couleur traduit le nb de textes proje-tés dans chaque zone
possibilité de recherche libre (projec-tion de la requête sur la carte)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.29/52
Retour sur la rétropropagation
Algorithme de gradient :-) ...Quelques rappels :
moindres carrés stochastiquesalgorithmes de gradient
Utilisation dans le cadre des réseaux de type perceptronmulticouches :
principesbatch / séquentielméthodes du premier ordre, du second ordre
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.30/52
Moindres carrés stochastiques
(Adaline, Widrow & Hoff 1960)
Fonction de décision : D(xi) = ψ(w′xi + b)
Fonction de coût :J(w, b) =
∑ni=1(Ψ(w′xi + b)− yi)
2 =∑n
i=1(Ψ(WXi)− yi)2
Pour trouver les meilleurs W , il faut minimiser J :
∆ =∂J(W )
∂W= 2
n∑
i=1
(Ψ(WXi)− yi)∂Ψ(WXi)
∂W
∆ = 2
n∑
i=1
(Ψ(WXi)− yi)Ψ′(WXi)Xi
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.31/52
Moindres carrés stochastiques
Problème : Ψ n’est pas toujours dérivable⇒ l’Adaline simplifie Ψ(WX) 'WX
Utilisation d’un algorithme de gradient itératif :
W ←WinitRépéter
W ←W − ρ∆Tant qu’il reste des Xi mal classés
ou que J n’évolue plus
⇒ D’autres approximations possibles
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.32/52
Méthodes de gradient
∆ = 2∑n
i=1(Ψ(WXi)− yi)Ψ′(WXi)Xi
AdalineApproximation linéaire∆ = 2
∑ni=1(WXi − yi)Xi
PerceptronΨ′ = 1∆ = 2
∑ni=1(Ψ(WXi)− yi)Xi
Neurone FormelΨ devient ϕ = tanh (sigmoïde)∆ = 2
∑ni=1(ϕ(WXi)− yi)ϕ
′(WXi)Xi
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.33/52
Notations Perceptron Muticouches
Le biais de chaque couche devient une "entrée"supplémentaire de la coucheex : y
(1)j = f(
∑n0
i=1 wjixi + bj) = f(∑n0
i=0 wjixi) avec x0 = 1 et wj0 = bj
couche 1 : W1 = [wji]
couche 2 : W2 = [wkj ]
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.34/52
Propagation
Calcul des sorties du réseau en propageant les valeursde x de couche en couche
a(1)j =
∑n0
i=0wjixi
x(1)j = f(a
(1)j )
a(2)k =
∑n1
j=0wkjx(1)j
yk = g(a(2)k )
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.35/52
Propagation en Matlab
Version parallélisée traitant tous les exemples à la fois :-)
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;
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.36/52
Calcul de l’erreur
On présente un exemple xξ = [xξ1 ... xξn0 ]
dont on connait la sortie "désirée" ydξ = [yd
ξ1 ... ydξn2
]
On calcule la sortie du PMC : yξ = [yξ1 ... yξn2 ]
Erreur pour cet exemple : eξ = ydξ − yξ = [eξ1 ... eξn2 ]
Coût local associé : Jξ = 12
∑n2
k=1 e2ξk
Coût global : J =∑N
ξ=1 Jξ
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.37/52
Apprentissage des paramètres
Mise à jour de wji et wkj selon une règle delta :
∆w = −η ∂J∂w
Problème : calcul de ∂J∂wji
et ∂J∂wkj
Rétropropagation = calcul intelligent de ces dérivées...
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.38/52
Couche de sortie
Calcul de ∂J∂wkj
pour un exemple fixé :
∂J∂wkj
= ∂J∂yk
× ∂yk
∂a(2)k
×∂a
(2)k
∂wkj
↙ ↙ ↙
J = 12
∑n2
k′=1(ydk′ − y′k)
2 yk = g(a(2)k ) a
(2)k =
∑n1
j=0 wkjx(1)j
↓ ↓ ↓
−(ydk − yk) g′(a
(2)k ) = 1 x
(1)j
posons Errk ≡∂J
∂a(2)k
= −(ydk − yk)g
′(a(2)k ) ∂J
∂wkj= Errk × x
(1)j
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.39/52
Couche cachée
Calcul de ∂J∂wji
pour un exemple fixé :
∂J∂wji
= ∂J
∂x(1)j
×∂x
(1)j
∂a(1)j
×∂a
(1)j
∂wji
↙ ↙ ↙
∂J
∂x(1)j
=∑n2
k=0∂J
∂a(2)k
∂a(2)k
∂x(1)j
y(1)j = f(a
(1)j ) a
(1)j =
∑n0
i=0wjixi
↓ ↓ ↓∂J
∂x(1)j
=∑n2
k=0Errkwkj f ′(a(1)j ) xi
Errj ≡∂J
∂a(1)j
= (∑n2
k=0Errkwkj)f′(a
(1)j ) ∂J
∂wji= Errj × xi
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 ;
ERRj = (w2(1:n2-1,:)*ERRk’)’ .* (1-x1.*x1) ;GradW1 = [x ones(n,1)]’ * ERRj ;
w1 = w1 - pas1 .* GradW1 ;w2 = w2 - pas2 .* GradW2 ;
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.41/52
Exemple
x = [0.5 1] ; yd = [0.5 1]W1 = [0.5 0.5 ; 0.5 0.5] (pas de biais pour simplifier)W2 = [1 1 ; 1 1]
a(1) = [0.75 0.75]
x(1) = [0.6351 0.6351]
a(2) = [1.2703 1.2703]
y = [1.2703 1.2703]
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.42/52
Exemple
ERRk = [0.7703 0.2703]GradW2 = [0.4893 0.1717 ; 0.4893 0.1717]ERRj = [0.7703 0.2703]GradW1 = [0.3104 0.3104 ; 0.6208 0.6208]
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]
Nouvelle propagation : y = [0.5242 0.6344]
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 yd = [0.5 1]
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.45/52
Gradient Batch vs. Séquentiel
2 façons d’appliquer l’algorithme de rétropropagation
Batch : mise à jour des poids après la présentation detous les exemples
calculs et stockage plus lours si trop d’exemplesmoins de 5000 exemplesoutils : Matlab, ...
Séquentiel (on line, stochastique) : mise à jour despoids après chaque exemple
besoin de tirer l’exemple au hasardproblèmes de convergenceplus de 5000 exemplesoutils : SNNS, Programmes C, Java, ...
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 solutiontrop 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
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.47/52
Premier ordre
Moment d’inertie (Rumelhart et al. 1986)∆wji(t) = −ηErrj × xi + α∆wji(t− 1) (| α |< 1)
Delta-Bar-Delta (Jacobs 1988)calcul d’un gradient moyen :
δji(t) = (1− φ)Errjxi + φδji(t− 1)
modification du pas d’apprentissage selon la directiondu gradient par rapport au gradient moyen :
ηji(t+1) =
ηji(t) + u si Errjxiδji(t− 1) > 0 (on accélère)
ηji(t)× d si Errjxiδji(t− 1) < 0 (on freine)
ηji(t) sinon
∆wji(t) = −ηji(t)Errj × xi
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.48/52
Premier ordre
Rprop (Riedmiller and Braun 1993)modification du pas d’apprentissage selon l’évolutionde la direction (signe) du gradientle pas d’apprentissage est bornéun poids n’est modifié que s’il "va dans le bon sens"
ηji(t+ 1) =
min(ηji(t)u, ηmax) si (Errjxi)(t)(Errjxi)(t− 1) > 0 (on accélère)
max(ηji(t)d, ηmin) si (Errjxi)(t)(Errjxi)(t− 1) < 0 (on freine)
ηji(t) sinon
∆wji(t+ 1) =
{−ηji(t)sgn(Errjxi) si "accélération" ou "surplace"
0 sinon
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.49/52
Second ordre
Développement de Taylor de la fonction de coût :J(w + h) ≈ J(w) + ( ∂J
∂w)′h+ 1
2h′H(w)h
H : matrice hessienne du coût
H =
∂2J∂w2
1
∂2J∂w1∂w2
· · · ∂2J∂w1∂wn
∂2J∂w1∂w2
∂2J∂w2
2
...... . . . ...
∂2J∂w1∂w2
· · · · · · ∂2J∂w2
n
calcul du gradient : ∂J∂w
(w + h) ≈ ∂J∂w
(w) + h′H(w)
on cherche h tel que le gradient soit nul (min. du coût) :∆W = h = −H−1(w) ∂J
∂w(w)
Problème : calcul de H−1
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.50/52
Second ordre
Approximation du hessien :hessien = matrice diagonale : ∆w(t) = − ∂J
∂w/ ∂2J
∂w2
Quickprop (Fahlman 1988) : on évite de calculer H :
∂2J
∂w2≈
∂J∂w
(t+ 1)− ∂J∂w
(t)
∆w(t)
∆w(t) = −∆w(t− 1)∂J∂w
(t)∂J∂w
(t)− ∂J∂w
(t−1)
Il existe d’autres méthodes qui calculent (partiellement)les informations du 2nd ordre (⇒ gradient conjugué)
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.51/52
Références
Neural Networks : a comprehensive foundation, S. Haykin, Prenctice Hall.
Neural Networks : a systematic introduction, R. Rojas, Springer.
The Handbook of Brain Theory and Neural Networks, M.A. Arbib, MIT Press.
Self-Organizing Maps, T. Kohonen, Springer.
Réseaux Neuronaux et Traitement du Signal, J. Hérault & C. Jutten, Hermès.
Backpropagator’s Reviewplein de choses sur la rétropropagation : http ://www.dontveter.com/bpr/bpr.htmlun petit tutoriel : http ://www.dontveter.com/bpr/public2.html
Quelques Types de Réseaux de NeuronesLa Rétropropagation – p.52/52