les réseaux de neurones (artificiels = ann)
DESCRIPTION
Les réseaux de neurones (artificiels = ANN). J.Schwindling CEA Saclay. Introduction. Introduits dans notre domaine il y a juste 20 ans Pendant ~ 10 ans, souvent considérés avec méfiance (boîte noire) Mieux compris (et utilisés) depuis 10 ans - PowerPoint PPT PresentationTRANSCRIPT
1
Les réseaux de neurones(artificiels = ANN)
J.SchwindlingCEA Saclay
2Les réseaux de neurones
Introduction
•Introduits dans notre domaine il y a juste 20 ans
•Pendant ~ 10 ans, souvent considérés avec méfiance (boîte noire)
•Mieux compris (et utilisés) depuis 10 ans
•De nombreuses applications des réseaux de neurones dans notre domaine
– http://www.slac.stanford.edu/spires/find/hep/wwwcitesummary?rawcmd=FIND+T+NEURAL+NETWORK&FORMAT=www&SEQUENCE=ds%28d%29
– http://cdsweb.cern.ch/search?cc=Articles+%26+Preprints&ln=fr&jrec=11&p=neural+network
3Les réseaux de neurones
Avertissement
•Ce cours ne parlera que d’un type d’ANN: le perceptron multi-couches (MLP = Multi-Layer Perceptron)
– Simple… mais permet de résoudre de nombreux problèmes
– Le plus utilisé (je crois)
– … le seul que je connaisse
Perceptron49%
RBF13%
Récurrent2%
Neuro-flou3%
Hopfield5%
Kohonen5%
Autres23%
IEEE Transactions on Neural Networks1995 - 1998
4Les réseaux de neurones
Les deux visions des MLP
•La vision neurobiologique:
– Historiquement à l’origine des ANN
– Souvent la seule décrite dans les livres / articles
– Parfois utile comme « image » du fonctionnement d’un ANN
•La vision mathématique:
– Assez simple
– Beaucoup plus précise
– Permet de répondre à un certain nombre de questions
•Pour chacune de ces visions, je décrirai:
– Ce qu’est un MLP
– Ce qu’est l’ apprentissage
– Conséquences / applications
5Les réseaux de neurones
Vrai ou faux ?
•Les MLP sont utilisés pour la classification de données
•La sortie d’un MLP est binaire (0 / 1)
•Pour certains problèmes, il est nécessaire d’utiliser 2 couches cachées
•Un MLP est entraîné par la méthode de rétro-propagation des erreurs
Incomplet
Faux
Faux
Charabia
6Les réseaux de neurones
Pour ceux qui veulent essayer…
•… les exemples (simples) montrés dans ce cours sont disponibles dans /afs/cern.ch/user/s/schwind/public/sos2008/cours_mlp.tgz
(12 Mo)
– Définir le chemin vers root (cf source setup.csh dans cours/ )
– Dans chaque répertoire, compiler avec gmake
•Ils utilisent MLPfit comme librairie MLP et root pour la partie graphique
– On peut probablement utiliser aussi TMultiLayerPerceptron dans root directement
•Les transparents du cours + les films sont dans cours.zip
7Les réseaux de neurones
Lectures conseillées
•Neural Networks for Pattern Recognition
Christopher M. BishopClarendon Press Oxford (1995)
•Practical Methods of Optimization
R.Fletcher
2nd edition, Wiley (1987)
•Sur le web:
ftp://ftp.sas.com/pub/neural/FAQ.html
8
La vision neurobiologique
9Les réseaux de neurones
Qu’est-ce qu’un réseau de neurones artificiel ?
•Ensemble d’unités de calcul simples (les neurones) reliées de façon complexe (cerveau humain 1011 neurones, 104 connexions par neurone)
•Imaginés dans les années 40 (Mac Culloch et Pitts, Turing, …)
•Comprendre comment le cerveau peut réaliser certaines tâches qu’un ordinateur à du mal à réaliser
•Un modèle simple de neurone peut réaliser des fonctions logiques de base (ET, OU, NON)
W.S. McCulloch & W. Pitts (1943). “A logical calculus of the ideas immanent in nervous activity”, Bulletin of Mathematical Biophysics, 5, 115-137.
x y x&y
0 0 0
0 1 0
1 0 0
1 1 1
entr
ées
po
ids
som
me
sort
ie
x * +1
y * +1
1 * -2x + y -2
Si somme < 0: 0Sinon : 1
10Les réseaux de neurones
Le perceptron multi-couches•Neurones organisés en couches
– 0, 1, 2… couches cachées– Réseau n1 – n2 – n3
•Information se propage dans un seul sens (« feed-forward »)
•La fonction A(x) (fonction d’activation) est
– linéaire ou non pour le (ou les) neurone(s) de la couche de sortie
– non-linéaire pour les neurones cachés, de type 1/(1+e-x) (« sigmoïde »)
•Les paramètres w s’appellent les poids (« weight »)
•y = mlp(x, w)
Couched’entrée
Couche(s)cachée(s)
Couchede sortie
j
wjki kx1
wij
xk = w0k + jwjkyj
yk = A(xk)
xn
11Les réseaux de neurones
La détermination des poids w
•Les paramètres w sont déterminés de façon itérative durant une phase d’apprentissage afin de résoudre un problème donné
•Méthode:
1. Boucler sur les exemples d’un lot d’apprentissage (= 1 époque)
2. Comparer pour chaque exemple la sortie du réseau et la sortie désirée (« apprentissage supervisé »)
3. Modifier après chaque exemple les poids du réseau (cf transparent suivant)
4. Recommencer en 1 « plusieurs fois »
•Après la phase d’apprentissage, le réseau doit être capable de généraliser (donner une réponse correcte sur un exemple nouveau)
12Les réseaux de neurones
Modifier les poids du réseau
•La méthode pour modifier les poids du réseau est (malheureusement) souvent appelée « méthode de la rétropropagation de l’erreur »
– Sans doute dû à Learning representations by back-propagating errors, D.E.Rumelhart et al., Nature vol. 323 (1986), p. 533
13Les réseaux de neurones
La rétropropagation de l’erreur
i
jkwij wjk
yk = A(xk)xk = jwjkyj
wij
kwjk
k
j
w ij = w ij
– j y ij
1. Présenter un exemple au réseau, calculer la sortie yk,
comparer à la réponse attendue dk k = A’(xk)(yk – dk)
2. Calculer j = A’(xj) k k wjk
« Rétropropagation de l’erreur »
3. Modifier les poids selon la formule: wij
+1 = wij – j yi
P.Werbos, thèse de l’université de Harvard (1974), publiée dansThe Roots of Backpropagation, Wiley-IEEE (1994)
Learning representations by back-propagating errorsD.E.Rumelhart et al., Nature vol. 323 (1986), p. 533
Learning processes in an assymetric threshold networkY. le Cun, Disordered Systems and Biological Organization, Springer Verlag, Les Houches, France (1986), p. 233
Poids initiaux aléatoires petits autour de 0 (dans nos exemples uniformes entre -0.5 et 0.5)
Paramètre d’apprentissage < 1, à optimiser selon le problème
14Les réseaux de neurones
Le perceptron multi-couches ..sans couche cachée…
•F. Rosenblatt (1960)
•La surface w0 + iwijxi = 0 est un hyperplan dans l’espace des n variables d’entrée le réseau réalise donc une séparation linéaire discrimante
•Remarques:
– Le vecteur w = (w1, …, wn) est orthogonal à l’hyperplan
– La distance de l’hyperplan à l’origine est – w0 / ||w||
– Un réseau sans couche cachée ne peut donc pas résoudre des problèmes non linéairement séparables (ex: xor)
1
x = w0 + iwixi
y = A(x)
cours/linear
x1
x2
Hyperplanw0 + iwijxi = 0
Vecteur w = (w1, … wn)
i
n
w1
wi
wn
:
:
1
1 0
0
15Les réseaux de neurones
Classification dans plusieurs catégories
•Dans le cas où l’on souhaite classer des événements dans plusieurs catégories K:
– K neurones de sortie, dont la réponse est yk
– On entraîne le réseau à répondre yk = 1 si l’exemple appartient à la catégorie k, 0 sinon
•Après entraînement du réseau, on associe à un événement la classe du neurone qui donne la plus grande sortie
•Dans le cas d’un réseau sans couche cachée, on peut montrer que le réseau divise l’espace en k régions convexes:
yk(x) = yk(xA) + (1-) yk(xB) > yj(x) pout tout j ≠ k
•Rq: en réalité K-1 neurones sont suffisants
ikwik
Rk
xA xB
x = xA + (1-) xB
avec 0 ≤ a ≤ 1
Rj
16Les réseaux de neurones
Classification de données (la vision traditionnelle)
•Chaque neurone de la 1ere couche cachée sépare l’espace des variable par un hyperplan
•Les neurones de la (ou des) couche(s) suivante(s) réalisent une fonction logique quelconque de ces ½ espaces
•Exemple 1: reproduction de 2 coupures simples
– Réseau 2-10-1, 2000 exemples
– Mauvaise classification (coupure à 0.5) = 0.4% (dépend de la taille du réseau, du nombre d’exemples, de la durée de l’apprentissage)
cours/classify_square
17Les réseaux de neurones
Exemple du « xor »
100 exemples, 2-3-1 100 exemples, 2-5-1
Un très petit réseau réalise une assez bonne séparation du petit
lot d’exemples
Trop de paramètres, trop peu d’exemples des zones où le réseau se trompe
cours/xor
Courbemlp(x, w) = 0.5
(« decision boundary »)
18Les réseaux de neurones
Exemple du xor (2)
1000 exemples, 2-5-1 1000 exemples, 2-10-1
…solution: augmenter le nombre d’exemples en
peuplant au mieux l’espace des variables
…puis augmenter la taille du réseau.
19Les réseaux de neurones
Un autre exemple
•Avec un réseau 2-20-1, taux d’erreur = 2.5%
cours/classify_square
20Les réseaux de neurones
Un danger: le sur-apprentissage
•Apparaît lorsqu’il y a trop de paramètres
•Attention:
– Il peut ne pas y avoir sur-apprentissage même si le nombre de paramètres est > nombre d’exemples
– il peut y avoir sur-apprentissage même si le nombre d’exemples est > nombre de paramètres
•Solutions:
– Augmenter le nombre d’exemples
– Tester la performance du réseau sur un lot indépendant (lot de test)
Modèle trop simple Modèle correct Sur-apprentissage
Lot de test
Lot d’apprentissage
p(mlp(xp,w) – dp)2
21Les réseaux de neurones
Un exemple grandeur nature: un réseau qui apprend à lire
•Reconnaissance de chiffres manuscrits
•Base de données de 60000 + 10000 chiffres manuscrits (taille 28 x 28 pixels) disponible sur: http://yann.lecun.com/exdb/mnist/
•Entrées = 784 pixels, valeurs entre 0 et 255 (ramenées entre 0 et 1 en entrée du réseau)
•Classification dans 10 catégories 10 neurones de sortie
cours/digits
22Les réseaux de neurones
Résultats
•Exemple: réseau 784 – 300 – 10 ~ 238000 paramètres !
•Taux d’erreur:
– On attribue à chaque exemple de test la classe du neurone de sortie qui donne la plus grande valeur
– Taux d’erreur ~ 3.6% après 50 époques (~ 2.5 heures)
– Erreurs sur des cas difficiles, mais aussi sur des exemples faciles…
Taux d’erreur (%)
Des exemples de chiffres mal classés
3.6 (%)
23Les réseaux de neurones
Résultats (2)
•Classification linéaire: taux d’erreur = 12%
•MLP: 2.5 – 5%
•Réseaux spécifiques (utilisent le caractère 2d du problème): 0.7 – 1%
Remarque: ce genre de techniques est utilisé par les banques pour la lecture automatique des chèques, la poste pour la lecture des adresses, …
Gradient-Based Learning Applied to Document RecognitionIntelligent Signal Processing, 306-351, IEEE Press, 2001 Y. LeCun, L. Bottou, Y. Bengio and P. Haffner
http://yann.lecun.com/exdb/publis/index.html
24Les réseaux de neurones
En résumé
•Un perceptron multi-couches peut être entraîné à « reconnaître » des formes (écriture manuscrite, signal / bruit de fond, …)
•Il sélectionne un sous-espace de l’espace des variables par combinaison logique de demi-espaces
•Les poids sont fixés de façon itérative pendant la phase d’apprentissage
25
La vision mathématique
26Les réseaux de neurones
Qu’est-ce qu’un perceptron multi-couches ?
•Un MLP avec une couche cachée et un neurone de sortie linéaire est une combinaison linéaire de fonctions sigmoïdes
•Théorème: toute fonction continue de Rn R peut être approximée, à une précision quelconque, par une combinaison linéaire de sigmoïdes
•Remarques:– Généralisation à Rn Rm immédiate– Vrai avec toute fonction croissante
bornée (« squashing function ») vous pouvez utiliser atan, tanh si vous préférez
– Ne dit pas combien de neurones sont nécessaires
– Une couche cachée suffisante– Justifie d’utiliser un neurone de sortie
linéaire
j
wjki
k
x1
wij
yk = A(xk)xk = w0 + jwjkyj
xn
Multilayer Feedforward Networks are Universal ApproximatorsK.Hornik et al., Neural Networks, Vol. 2, pp 359-366 (1989)
27Les réseaux de neurones
Exemple de sin(x)/x
•Approximation de la fonction f(x) = sin(x)/x par un réseau 1-6-1 dans le domaine 0 – 20
•Lot d’apprentissage = 100 points équidistants, lot de test = 100 points décalés des précédents
•On constate que:
– L’ajustement commence par le plus haut pic (le réseau « apprend » d’abord le trait le plus caractéristique)
– Il y a des paliers dans l’apprentissage (« ravins » dans la fonction d’erreur)
Noir: f(x) = sin(x)/xBleu: mlp(x)Rouge: 10 * (mlp(x) – f(x))
cours/fun1d
28Les réseaux de neurones
Application: mesure de la position des photons dans ATLAS
•Mesure de la position des photons dans le calorimètre électromagnétique par barycentre de l’énergie déposée dans 3x3 cellules
•Taille finie des cellules la position reconstruite est biaisée vers le centre des cellules forme en « S » (S-shapes)
•La forme exacte des S-shapes dépend de la position dans le détecteur et de la profondeur de la gerbe f(*, , p)
29Les réseaux de neurones
Mesure de la position des photons dans ATLAS: résultats
•Réseau ~ 3-10-1 entraîné avec quelques milliers de photons simulés à différents
•La résolution en position obtenue est environ 10-15% meilleure que les corrections « manuelles »
30Les réseaux de neurones
Et la classification de données ?
•Préliminaire:– On a déjà vu (fit des s-shapes) qu’un
réseau approxime la fonction f(x) = <yi>(x)
– Démonstration:
i(mlp(xi) – yi)2
= i(mlp(xi) - <yi> + <yi> - yi)2
= i(mlp(xi) - <yi>)2 +
i(<yi> - yi) 2 +
2 i(mlp(xi) - <yi>)(<yi> - yi)
– Exemple:• Exemples = 200 points sin(x)/x +
rand(-0.05, +0.05)• Variance = 0.159• Test: 200 points sans smearing le réseau apprend bien la fonction sous-jacente
Lot de test
Lot d’apprentissage
variance
tend vers 0
cours/fun1d_smear
31Les réseaux de neurones
Rq: ajustement de mlp(x) sur des mesures avec erreurs
•Si votre package MLP permet de pondérer les exemples:
E = p p (mlp(xp,w)- dp)2
alors vous pouvez ajuster la fonction mlp(x, w) sur des mesures (xp, p) en posant p = 1 / p
2
32Les réseaux de neurones
Oui mais… la classification de données ?
•Entraîné avec dp(x) = 1 quand l’exemple S et dp(x) = 0 quand l’exemple B, le fonction ajustée par le réseau est la probabilité p(S | x) de signal sachant x
•En effet, <dp>(x) = 1 x p(S | x) + 0 x p(B | x)
•Exemple à une variable:
– Signal gaussien (1, 1) x 30%
– Bdf gaussien (0, 1) x 70%
– Réseau 1-2-1, 500 époques
cours/classify
70% Bruit de fond
30% Signal
P(x | B) * P(B)
P(x | S) * P(S)
P(S | x)
mlp(x)Sortie du réseau
33Les réseaux de neurones
Attention
•La fonction mlp(x, w*) approxime la « vraie » (= dans les données) valeur de p(S|x) uniquement si les probabilités a priori P(S) et P(B) sont exactes (section efficaces).
•En général (recherche d’un signal rare), ce n’est pas possible (besoin de couvrir tout l’espace des entrées avec un nombre suffisant d’événements)
•Mais on peut recalculer la vraie valeur de p*(S|x) par la formule:
p*(S|x) / (1-p*(S|x)) = P*(S) / P*(B) * P(B) / P(S) * p(S|x) / (1-p(S|x))
Vraies prob. a priori
Prob. a prioriutilisées pendantl’apprentissage
34Les réseaux de neurones
Quelques conséquences
•La sortie du réseau n’est pas binaire, ni nécessairement comprise strictement entre 0 et 1 (approximation de la probabilité)
•Une sortie différente de 0 ou 1 n’indique pas que le réseau n’a pas convergé (zones de l’espace ou le signal et le bdf se superposent)
•En particulier, une sortie toujours différente de 1 pour le signal (par exemple) est possible (pas de région ou il y a seulement du signal)
• Insister sur les exemples mal classés après une première phase fait perdre la propriété d’approximation de p(S|x)
•Classification dans K catégories: kmlpk(x, w*) = 1
35Les réseaux de neurones
Utilisation de la sortie du réseau
• Minimiser le taux d ’erreur:
– Si le réseau est entraîné avec les probabilité a priori attendues, une coupure à 0.5 (ou attribuer à l’exemple considéré la classe du neurone de sortie le plus grand) minimise le taux d’erreur
• Minimiser le risque:
– Prendre du signal pour du bruit de fond ou inversement n’a pas forcément les mêmes conséquences on peut choisir une coupure différente
• Seuil:
– Dans certains cas, on n’attribue l’exemple à une certaine classe que si la valeur du neurone correspondant est > seuil. Si aucun neurone ne donne une sortie > seuil, traitement particulier.
36Les réseaux de neurones
Estimation de l’erreur
•La fonction mlp(x, w*) (w* = poids après apprentissage) est une estimation de la fonction ajustée par la réseau
•L’erreur sur cette estimation peut:– Se calculer analytiquement (voir par
exemple Confidence Interval Prediction for Neural Network Models, George Chryssoloiuris et al., IEEE Transaction on Neural Networks, Vol. 7, No. 1, January 1996)
– Etre estimée expérimentalement, par exemple par une méthode de bootstrap:
1. Tirer N exemples au hasard parmi les N exemples d’apprentissage
2. Entraîner le réseau3. Calculer la sortie du réseau sur les
exemples de test4. Retourner en 1, faire B expériences5. Calculer la moyenne et la variance
des B résultats
cours/fun1d_bootstrap
37Les réseaux de neurones
La vision mathématique de l’apprentissage
•Trouver les poids w consiste à minimiser l’erreur E(w) sur le lot d’apprentissage
•On pourrait essayer de minimiser E(w) avec Minuit mais:
– Grand nombre de paramètres (réseau 2-3-1 = 13 paramètres, 784-300-10 238510 paramètres)
– On peut calculer la dérivée de E par rapport aux wij (= le gradient )
p
p
P
p
eppE dy1
2
P exemplesep = erreur sur l’exemple p
38Les réseaux de neurones
Le calcul du gradient
•Pour la couche de sortie:
•Pour la couche précédente:
• La « rétropropagation des erreurs » n’est autre que le calcul du gradient• E minimum gradient = 0
p ij
p
ij we
wE
jk
jk
kkkk
jk
kkk
jk
y
w
xxydy
w
ydy
w
e
)(')()(
ij
ijjkk
k
ij
k
kk
ij
k
kkk
ij
y
yxyw
w
x
w
ydy
w
e
)('
)(
w ij = w ij
– j y i
j
39Les réseaux de neurones
La méthode de Robbins-Monro
•But: trouver le 0 d’une fonction f inconnue à partir de mesures de f(x) entachées d’erreur
•Solution: mesurer f en des points successifs xt+1 = xt - t f(xt)
•Méthode de minimisation appelée « minimisation stochastique »: remplacer:
– Trouver le 0 d’une fonction f par 0 du gradient de E(w)
– Estimation de f par f(xt) par
A Stochastic Approximation Method
H.Robbins et S.Monro, Annals of Math. Stat. 22 (1951), p. 400
Edeeestimation p
40Les réseaux de neurones
Minimisation stochastique: conditions de convergence
•mesures successives non corrélées -> mélanger les exemples
• assurer la décroissance de l’erreur:
•tout en laissant le temps aux erreurs de se moyenner:
•donc t = 0 / tk avec 1/2 < k < 1 convient
•en pratique, t souvent pris constant: pas de garantie de convergence
On Stochastic Approximation, A.Dvoretsky, Proc. 3rd Berkeley Sym. on Math. Stat. and Prob., J.Neyman (ed.) (Berkeley: University of California Press, 1956), p. 39
1tt
1
20limt
ttt
avec
41Les réseaux de neurones
Minimisation stochastique: vitesse de convergence
•Méthode lente, connu depuis longtemps:– «This method does not converge as rapidly as methods which
make use of second derivatives, but is much simpler and can be easily implemented by local computations in parallel hardware»
D.E.Rumelhart et al., Nature
– «L’erreur due au hasard a essentiellement pour effet de diminuer la vitesse à laquelle on peut conduire une recherche tout en gardant la certitude de trouver finalement l’optimum. En l’absence d’erreur expérimentale, il importe donc de ne pas utiliser les méthodes stochastiques, trop lentes, et de recourir aux techniques déterministes, plus rapides. C’est là un point qu’on n’a pas très bien compris dans le passé, et l’application de méthodes stochastiques à des problèmes déterministes à parfois donné des résultats décevants»
D.J. Wilde: Méthodes de recherche d’un optimum, Dunod, 1966
42Les réseaux de neurones
Exemple de l’ajustement d’une droite
•But: trouver les paramètres a et b de la droite y = 2 x + 1 à partir de 10 points (xi, yi) sur [0, 1]
•Fonction à minimiser: E(a, b) = (a xi +b – yi)2
– Remarque: quadratique en a et b (problème linéaire)
– Une époque = boucler sur tous les exemples = 10 pas dans l’animation
•On calcule donc pour chaque exemple i de/db = axi + b – yi, de/da = xi * de/db, et on modifie a et b selon
a a – de/da
b b – de/db
( = 0.5 dans le film)
cours/minim/fit_droite_stoch
43Les réseaux de neurones
Un exemple non quadratique
•Ajustement de la fonction
•Sur 10 points (xi sur [-1,1], yi = f(xi; a = 0.3, b=4)
•Départ de a = 5, b = 2, ajusté pour permettre une convergence pas trop lente
)(1
1)(
axbexf
44Les réseaux de neurones
Minimisation stochastique: des variantes
•Terme de moment
ne pas défaire ce qui a été fait sur l ’exemple précédent
•Ne modifier les poids qu’après avoir vu tous les exemples (« batch » ou « offline » backpropagation)
cumule tous les défauts: mauvaise direction et mauvaise longueur des pas
•Adaptation de la longueur des pas (« adaptive step size method »)– Attribué à F.M. Silva, L.B. Almeida:
Acceleration techniques for the backpropagation algorithm, Neural Networks, ed.: L.B.Almeida, C.J.Wellekens (1990) Springer.
Speeding up backpropagation, Advanced Neural Computers, Ed: R.Eckmiller (1990) Elsevier
– Idée plus ancienne:
H.Kesten: Accelerated Stochastic Approximation, Annals of Math.Stat. 29 (1958), pp. 41-59
1)( tij
ij
ptij w
w
etw
45Les réseaux de neurones
Les méthodes de minimisation sans contrainte
•Utilisent toutes le calcul du gradient de l’erreur totale, noté g(w) dans la suite
•Méthodes itératives– calculer le gradient g(wt)– en déduire une direction dt
– trouver * qui minimise E(wt + dt)– faire wt+1 = wt + * dt
•Sont construites et convergence démontrée pour des formes quadratiques q(x) = xT A x + bT x + c
– approximation locale de E(w)– peut nécessiter de réinitialiser la
direction de temps en temps (> Nw)
– la recherche le long de la direction garantit la décroissance
Practical Methods of Optimization R.Fletcher, 2nd edition, Wiley (1987)
Programmation MathématiqueM.Minoux, Dunod (1983)
Une époque
Choix de la direction:
• plus grande pente• gradients conjugués• Méthode(s) quasi-Newton
46Les réseaux de neurones
La méthode de la plus grande pente (steepest descent)
• dt = -g(wt)
•Recherche du minimum le long de la direction dt
•Les pas successifs sont donc perpendiculaires oscillations
Méthode générale pour la résolution des systèmes d’équations simultanées A.L. Cauchy, Comptes Rendus Acad. Sc. Paris, XXV, (1847), p.536
0.)( ttt dEdwEd
d
Vallée étroite et presque horizontale
47Les réseaux de neurones
Méthode des gradients conjugués
•Définition: si A est une matrice définie positive, on dit que deux vecteurs u et v sont conjugués par rapport à A si uT A v = 0
•Pour une forme quadratique q(x) = xT A x + bT x + c avec A définie positive (minimum local), on peut montrer que:
– Si on part d’un point w0 et que, à chaque étape t, on sait générer une direction dt conjuguée par rapport aux directions précédentes (d0 = -gradient, par
exemple) – Si de plus les points wt successifs sont
obtenus par minimisation le long de dt-1
– Alors, à chaque étape t, le gradient en tout point wt + dt est perpendiculaire à l’espace engendré par les di , i<t
– Conséquence: à n dimensions, on arrive au minimum en n étapes
Methods of conjugate gradients for solving linear systems M.R.Hestenes, E.Stiefel, J. Res. Nat. Bureau of Standards,49, (1952), p.409
Choix des directions conjuguées:
dt+1 = -gt + t dt
• équivalentes pour problème quadratique• non équivalente en général
StiefelHestenes
ggd
ggg
ttTt
ttTt
t
1
11
RibierePolak
gg
ggg
tTt
ttTt
t
11
ReevesFletchergg
gg
tTt
tTt
t 11
48Les réseaux de neurones
Méthode de Newton
•Idée: approximer localement l’erreur par une forme quadratique q(x) = xT A x + bT x + c
•Pour une forme quadratique dont le minimum est x*:
– g(x) = A x + b
– g(x*) = 0 = A x* + b
– D’où x* = x – A-1 g
•Si la matrice H des dérivées secondes (le Hessien) est connue, on peut utiliser la méthode de Newton dt = H-1 gt
•Dans le cas des MLPs, le Hessien est en principe calculable, mais calcul de H-1 difficile (n3 opérations, stabilité numérique), d’où méthodes quasi-Newton
49Les réseaux de neurones
BFGS = Broyden Fletcher Goldfarb Shanno
•Idée: approximer H-1 itérativement par Gt
en partant d’une matrice G0 définie positive (l’identité, par exemple)
•Formule de Broyden, Fletcher, Goldfarb, Shanno: si t = wt+1 - wt, t = gt+1 - gt
•Propriétés:
– si les wt sont obtenus par recherche unidimensionnelle, alors Gt reste définie positive
– pour une fonction quadratique avec A définie positive, Gt -> A-1 en n itérations
tTt
Ttttt
Ttt
tTt
Ttt
tTt
ttTt
tt
GGGGG
11
The Convergence of a Class of Double-rank Minimization AlgorithmsBroyden, C. G. Journal of the Institute of Mathematics and Its Applications 1970, 6, 76-90
A New Approach to Variable Metric AlgorithmsFletcher, R. Computer Journal 1970, 13, 317-322
A Family of Variable Metric Updates Derived by Variational Means
Goldfarb, D., Mathematics of Computation 1970, 24, 23-26
Conditioning of Quasi-Newton Methods for Function MinimizationShanno, D. F.Mathematics of Computation 1970, 24, 647-656
50Les réseaux de neurones
Illustration de la convergence de ces méthodes
•Gradients conjugués ou BFGS (pas de différence sur ces petits exemples)
Potentiel quadratique à 2d converge en 2 itérations
51Les réseaux de neurones
Comparaison des méthodes sur un problème réel
•Correction des S-shapes dans l’expérience ATLAS
•Pour un même temps CPU, la méthode BFGS a donné un résultat ~ 10% meilleur que la méthode stochastique
– Rq: différence limitée par la résolution en position ultime
•Mais attention: la méthode stochastique peut être meilleure sur des problèmes avec beaucoup d’exemples redondants
– Contrairement aux autres méthodes, elle n’est pas affectée par la redondance
– A essayer toujours
52Les réseaux de neurones
Minima locaux ?
•Minimum ≠ apprentissage lent car gradient nul (à la précision numérique près)
•Toutes les méthodes de minimisation décrites sont des méthodes de descente du gradient peuvent aboutir à un minimum local plutôt qu’au minimum global
•Solutions:
– Essayer plusieurs jeux de poids initiaux
– Méthodes hybrides « évolutionnaire + gradient »:
• Un individu = un ensemble w de poids, Population = grand nombre d’individus
• Entraîner chaque individu et une mutation de cet individu
• Conserver les meilleurs
• Recommencer
Exemple: • fit de sin(x)/x• méthode BFGS• ≠ poids initiaux
cours/fun1d_initw
Evolving Artificial Neural Networks Xin Yao, Proceedings of the IEEE, vol. 87, no 9, 1999
53Les réseaux de neurones
En résumé
•Un perceptron avec une couche cachée est une combinaison linéaire de sigmoïdes il peut approximer toute fonction continue à une précision quelconque
•Des applications utiles de ce théorème existent !
•La classification de données n’est qu’un cas particulier d’approximation de fonction
•L’apprentissage n’est autre qu’un problème de minimisation. Sur les « petits » problèmes, il peut souvent être effectué de façon efficace par les méthodes de type Gradients Conjugués, BFGS…
•La méthode « traditionnelle » de modification des poids après chaque exemple s’appelle minimisation stochastique. Elle est souvent performante sur les « gros » problèmes.
54
Conseils d’utilisation
55Les réseaux de neurones
Choix des variables pour la classification de données
•Un réseau de neurones ne peut pas inventer une différence entre le signal et le bruit de fond si elle n’existe pas ! choisir des variables discriminantes quand on les connait
•Mais…
x1
x2
Signal
Bdf
La variable x1 est beaucoup plus discriminante que x2, mais l’utilisation des 2 est encore meilleure…
Un autre exemple familier: aucune des 2 variables n’est discriminante…
56Les réseaux de neurones
Pre-processing des variables
•Tout pre-processing pertinent des variables est utile (= utilisation de connaissances a priori).
•Exemples
– si la variable discriminante est E1/E2, donner ce rapport au réseau de neurones plutôt que E1 et E2
– Reconnaissance de caractères manuscrits: centrer, normaliser la taille, redresser…
Exemple: Y.LeCun et al., MLP 784-300-10Exemples par défaut: taux d’erreur = 4.7% Exemples « redressés » (deslanted): 1.6%
57Les réseaux de neurones
Nombre d’exemples
•Les exemples doivent couvrir tout l’espace des variables. Un réseau de neurones n’est pas un devin: il peut avoir du mal à extrapoler (voire à interpoler) dans des zones sans exemple.
•« malédiction dimensionnelle » (the curse of dimensionality): le nombre d’exemples nécessaires croît comme Adim
•Les performances s’améliorent avec le nombre d’exemples
•Au besoin, on peut générer des exemples en « bruitant » les exemples dont on dispose
Zones sans exemples où le
réseau se trompe
Taux d’erreur (%)
Nombre d’exemples
Exemple de la reconnaissance de chiffres
manuscrits• minimisation stochastique• Népoques * Nexemples = 3 106
58Les réseaux de neurones
Nombre de couches cachées
•Nous avons vu qu’en principe une couche cachée suffit pour approximer toute fonction, à une précision quelconque
•En pratique, un réseau avec 2 couches cachées nécessite parfois moins de paramètres
Réseau 2-20-1(81 paramètres)
Réseau 2-50-1(201 paramètres)
Réseau 2-10-2-1(55 paramètres)
59Les réseaux de neurones
Nombre de neurones
•Il n’existe pas de règle (même pifométrique) pour le nombre de neurones dans la (ou les) couche(s) cachée(s)
– Dépend entièrement de la forme de la fonction à ajuster
•La seule méthode: essayer des réseaux de différentes tailles
Taux d’erreur (%)
Nombre de neurones
Exemple de la reconnaissance de chiffres manuscrits
• minimisation stochastique• Réseau 784 – N – 10
60Les réseaux de neurones
« Normaliser » les entrées
•La dérivée de la fonction sigmoïde devient négligeable quand |x| augmente
gradient plus important près de 0 convergence plus rapide
problèmes de précision pour les grandes valeurs d’entrées
•Solution: avoir des variables d’entrée « proches de 0 »
61Les réseaux de neurones
En guise de conclusion
•Les MLP sont utilisés pour la classification de données
•La sortie d’un MLP est binaire (0 / 1)
•Pour certains problèmes, il est nécessaire d’utiliser 2 couches cachées
•Un MLP est entraîné par la méthode de rétro-propagation des erreurs
Incomplet
Faux
Faux
Charabia
62Les réseaux de neurones
Radial Basis Function (RBF) networks (1988)
– Également approximation universelle
– Classification de données– 2 méthodes d’apprentissage:
• Supervisé comme pour les MLPs
• Ou en 2 étapes:– Non-supervisé pour la
détermination de , (algorithmes de clustering)
– Supervisé (problème linéaire) pour la détermination de w
– Également bases mathématiques (« régression par noyau »)
– Également problème du nombre de neurones cachés
j
wjki kx1
yk = w0 + jwjkj
xn
k = exp(-||x – j||2 / 2j2)
MLP = hyperplans RBF = hypersphères