les réseaux de neurones (artificiels = ann)

62
1 Les réseaux de neurones (artificiels = ANN) J.Schwindling CEA Saclay

Upload: hanae-ross

Post on 30-Dec-2015

121 views

Category:

Documents


10 download

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 Presentation

TRANSCRIPT

Page 1: Les réseaux de neurones (artificiels = ANN)

1

Les réseaux de neurones(artificiels = ANN)

J.SchwindlingCEA Saclay

Page 2: Les réseaux de neurones (artificiels = ANN)

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

Page 3: Les réseaux de neurones (artificiels = ANN)

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

Page 4: Les réseaux de neurones (artificiels = ANN)

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

Page 5: Les réseaux de neurones (artificiels = ANN)

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

Page 6: Les réseaux de neurones (artificiels = ANN)

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

Page 7: Les réseaux de neurones (artificiels = ANN)

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

Page 8: Les réseaux de neurones (artificiels = ANN)

8

La vision neurobiologique

Page 9: Les réseaux de neurones (artificiels = ANN)

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

Page 10: Les réseaux de neurones (artificiels = ANN)

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

Page 11: Les réseaux de neurones (artificiels = ANN)

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)

Page 12: Les réseaux de neurones (artificiels = ANN)

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

Page 13: Les réseaux de neurones (artificiels = ANN)

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

Page 14: Les réseaux de neurones (artificiels = ANN)

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

Page 15: Les réseaux de neurones (artificiels = ANN)

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

Page 16: Les réseaux de neurones (artificiels = ANN)

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

Page 17: Les réseaux de neurones (artificiels = ANN)

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 »)

Page 18: Les réseaux de neurones (artificiels = ANN)

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.

Page 19: Les réseaux de neurones (artificiels = ANN)

19Les réseaux de neurones

Un autre exemple

•Avec un réseau 2-20-1, taux d’erreur = 2.5%

cours/classify_square

Page 20: Les réseaux de neurones (artificiels = ANN)

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

Page 21: Les réseaux de neurones (artificiels = ANN)

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

Page 22: Les réseaux de neurones (artificiels = ANN)

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 (%)

Page 23: Les réseaux de neurones (artificiels = ANN)

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

Page 24: Les réseaux de neurones (artificiels = ANN)

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

Page 25: Les réseaux de neurones (artificiels = ANN)

25

La vision mathématique

Page 26: Les réseaux de neurones (artificiels = ANN)

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)

Page 27: Les réseaux de neurones (artificiels = ANN)

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

Page 28: Les réseaux de neurones (artificiels = ANN)

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)

Page 29: Les réseaux de neurones (artificiels = ANN)

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 »

Page 30: Les réseaux de neurones (artificiels = ANN)

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

Page 31: Les réseaux de neurones (artificiels = ANN)

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

Page 32: Les réseaux de neurones (artificiels = ANN)

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

Page 33: Les réseaux de neurones (artificiels = ANN)

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

Page 34: Les réseaux de neurones (artificiels = ANN)

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

Page 35: Les réseaux de neurones (artificiels = ANN)

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.

Page 36: Les réseaux de neurones (artificiels = ANN)

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

Page 37: Les réseaux de neurones (artificiels = ANN)

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

Page 38: Les réseaux de neurones (artificiels = ANN)

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

Page 39: Les réseaux de neurones (artificiels = ANN)

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

Page 40: Les réseaux de neurones (artificiels = ANN)

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

Page 41: Les réseaux de neurones (artificiels = ANN)

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

Page 42: Les réseaux de neurones (artificiels = ANN)

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

Page 43: Les réseaux de neurones (artificiels = ANN)

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

Page 44: Les réseaux de neurones (artificiels = ANN)

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

Page 45: Les réseaux de neurones (artificiels = ANN)

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

Page 46: Les réseaux de neurones (artificiels = ANN)

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

Page 47: Les réseaux de neurones (artificiels = ANN)

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

Page 48: Les réseaux de neurones (artificiels = ANN)

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

Page 49: Les réseaux de neurones (artificiels = ANN)

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

Page 50: Les réseaux de neurones (artificiels = ANN)

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

Page 51: Les réseaux de neurones (artificiels = ANN)

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

Page 52: Les réseaux de neurones (artificiels = ANN)

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

Page 53: Les réseaux de neurones (artificiels = ANN)

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.

Page 54: Les réseaux de neurones (artificiels = ANN)

54

Conseils d’utilisation

Page 55: Les réseaux de neurones (artificiels = ANN)

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…

Page 56: Les réseaux de neurones (artificiels = ANN)

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%

Page 57: Les réseaux de neurones (artificiels = ANN)

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

Page 58: Les réseaux de neurones (artificiels = ANN)

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)

Page 59: Les réseaux de neurones (artificiels = ANN)

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

Page 60: Les réseaux de neurones (artificiels = ANN)

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 »

Page 61: Les réseaux de neurones (artificiels = ANN)

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

Page 62: Les réseaux de neurones (artificiels = ANN)

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