Les rseaux de neurones pour lapprentissage ESSEC le

  • Slides: 30
Download presentation
Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 Réseaux de neurones

Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 Réseaux de neurones artificiels « la rétropropagation du gradient » S. Canu, laboratoire PSI, INSA de Rouen équipe « systèmes d’information pour l’environnement » asi. insa-rouen. fr/~scanu

Histoire … • • 1940 1943 1948 1949 1958 -62 1960 1969 Les réseaux

Histoire … • • 1940 1943 1948 1949 1958 -62 1960 1969 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 : La machine de Turing : Le neurone formel (Mc. Culloch & Pitts) : Les réseaux d'automates (Von Neuman) : Première règle d’apprentissage (Hebb) : Le perceptron (Rosenblatt) : L'adaline (Widrow & Hoff) : Perceptrons (Minsky & Papert) les limites du Perceptron besoin d'architectures + complexes, Comment effectuer l'apprentissage ? On ne sait pas ! • 1974 : Rétropropagation (Werbos) pas de succès !? !?

Histoire … • 1986 (suite) Les réseaux de neurones pour l’apprentissage ESSEC, le 28

Histoire … • 1986 (suite) Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 : Rétropropagation (Rumelhart & Mc. Clelland) nouvelles architectures de Réseaux de Neurones applications : - reconnaissance de l’écriture - reconnaissance/synthèse de la parole - vision (traitement d’images) • 1990 : « Société de l’Information » nouvelles applications - recherche/filtrage d’information dans le Web - extraction d’information / veille technologique - multimedia (indexation, …) - data mining besoin de combiner différents modèles

Plan Les réseaux de neurones pour l’apprentissage • Rappels : – Moindres carrés stochastiques

Plan Les réseaux de neurones pour l’apprentissage • Rappels : – Moindres carrés stochastiques – Algorithmes de gradient – Perceptron Multicouches • Principe de la rétropropagation • Algorithmes de rétropropagation ESSEC, le 28 Juin 2002

Moindres carrés « stochastiques » Les réseaux de neurones pour l’apprentissage ESSEC, le 28

Moindres carrés « stochastiques » Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 ADALINE (Widrow Hoff 1960) impossible ( ’ ! ) méthode itérative : winit Algorithme itératif de gradient Répéter wnew = wold - Tant qu ’il reste des mals classés ou que le coût n’évolue plus

Algorithme de gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Algorithme de gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Illustration dans le plan (w 1 , w 2) Minimum du coût w 2 Lignes d’iso-coût : J(W) = constante + Direction du gradient J’(W) Le gradient est orthogonal aux lignes d’iso-coût : argument à la « Taylor » w 1

Algorithme de gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Algorithme de gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Illustration dans le plan (J(w), w) : la « descente » de gradient J(w) Direction du gradient J’(W) Minimum du coût w

3 solutions Le gradient : • Approximation linéaire (Adaline) • Perceptron : ’=1 •

3 solutions Le gradient : • Approximation linéaire (Adaline) • Perceptron : ’=1 • Neurone formel : on remplace par une fonction dérivable ex : (x)=th(x) fonction sigmoïde Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Perceptron Multi-Couches Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 •

Perceptron Multi-Couches Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Réseau feedforward (1986) x 1 xi y xn 0 • Fonction de transfert tanh(. ) (sauf couche de sortie linéaire) • Méthode d’apprentissage (supervisé) usuelle : – rétropropagation du gradient

Notations Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Biais

Notations Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Biais : – avec x 0=1 – idem pour toutes les couches (ex : PMC à une couche cachée) (1) x 0=1 – W 1=[wji] – W 2=[wkj] x 0 = 1 xi yk wji i=1: n 0 wkj j=1: n 1 k=1: n 2

Propagation Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Calcul

Propagation Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Calcul des sorties du réseau en propageant les valeurs de x de couche en couche : 1 2 1 wji wkj xi yk xj(1) i=1: n 0 j=1: n 1 k=1: n 2 2

Algorithme de propagation Les réseaux de neurones pour l’apprentissage Function y = propag(x, w

Algorithme de propagation Les réseaux de neurones pour l’apprentissage Function y = propag(x, w 1, w 2) a 1 = x 1 = a 2 = y = [x ones(n, 1)]*W 1; tanh(a 1); [x 1 ones(n, 1)]*W 2; a 2; Parallélisé sur les exemples (si x est une matrice, ça marche !) ESSEC, le 28 Juin 2002

Calcul de l ’erreur Les réseaux de neurones pour l’apprentissage • Fonction de coût

Calcul de l ’erreur Les réseaux de neurones pour l’apprentissage • Fonction de coût : – on présente un exemple x=[x 1. . . xn 0] (avec ydes sortie désirée) – on calcule la sortie correspondante y =[y 1. . . yn 2] – erreur : – coût associé à l ’exemple : – coût global : ESSEC, le 28 Juin 2002

Calcul du gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Calcul du gradient Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Mise à jour de wji et wkj selon une règle delta: • Problème = calcul de et

Couche de sortie Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Couche de sortie Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Calcul de pour un exemple fixé xj(1) j=1: n 1 wkj yk k=1: n 2

Couche cachée Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 •

Couche cachée Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Calcul de pour un exemple fixé wji xi i=1: n 0 j=1: n 1

Algorithme de rétropropagation Les réseaux de neurones pour l’apprentissage Function grad = retropropag(x, yd,

Algorithme de rétropropagation Les réseaux de neurones pour l’apprentissage Function grad = retropropag(x, yd, w 1, w 2). . . a 1 = [x ones(n, 1)]*W 1; x 1 = tanh(a 1); a 2 = [x 1 ones(n, 1)]*W 2; y = a 2; ERRk = Grad. W 2 ERRj = Grad. W 1 -(yd-y). *(1 -y. *y); = [x 1 ones(n, 1)]'* ERRk ; (w 2(1: n 2 -1, : )*ERRk')'. *(1 -x 1. *x 1); = [x ones(n, 1)]'* ERRj ; w 1 = w 1 - pas 1. * Grad. W 1; w 2 = w 2 - pas 2. * Grad. W 2; ESSEC, le 28 Juin 2002

Exemple 1/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 •

Exemple 1/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • x = [0. 5 1] ydes = [0. 5 1] • W 1=[0. 5 ; 0. 5] (pas de biais) (1) x y 1 = 1. 2703 x 1= • 0. 5 W 2=[1 1 ; 1 1 1] x 2= 1 y 2 = 1. 2703 x 2(1) n 0=2 n 1 =2 n 2 =2 a(1)=[0. 75] x(1)=[0. 6351] a(2)=[1. 2703] y = [1. 2703]

Exemple 2/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 ERRk

Exemple 2/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 ERRk = [0. 7703 0. 2703] Grad. W 2 = [0. 4893 0. 1717 ; 0. 4893 0. 1717] ERRj = [0. 6208] Grad. W 1 =[0. 3104 ; 0. 6208] x 1(1) x 1= 0. 5 err 1 = 0. 7703 x 2= 1 err 2 = 0. 2703 x 2(1) n 0=2 n 1 =2 n 2 =2

Exemple 3/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 w

Exemple 3/4 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 w 1 =[0. 3448 ; 0. 1896] w 2 =[0. 7554 0. 9142 ; 0. 7554 0. 9142] • MAJ de W 1 et W 2 y = [0. 5242 0. 6344] (1) y 1 = 0. 5242 x 1= • 0. 5 Nouvelle propagation, etc. . . x 2= 1 y 2 = 0. 6344 x 2(1) n 0=2 n 1 =2 n 2 =2

Exemple Les réseaux de neurones pour l’apprentissage 4/4 ESSEC, le 28 Juin 2002 •

Exemple Les réseaux de neurones pour l’apprentissage 4/4 ESSEC, le 28 Juin 2002 • Evolution de y 1 et y 2 1. 3 1. 2 1. 1 y 2 1 0. 9 0. 8 0. 7 y 1 0. 6 0. 5 0 5 10 15

Gradient batch / séquentiel Les réseaux de neurones pour l’apprentissage • 2 façons d

Gradient batch / séquentiel Les réseaux de neurones pour l’apprentissage • 2 façons d ’appliquer l’algorithme de rétropropagation : – « batch » : mise à jour des poids après la présentation de tous les exemples • calculs et stockage plus lourds si trop d ’exemples – séquentiel : (on-line, stochastique) mise à jour des poids après chaque exemple • besoin de tirer l ’exemple au hasard • problèmes de convergence ESSEC, le 28 Juin 2002

Gradient batch / séquentiel Les réseaux de neurones pour l’apprentissage • 2 façons d

Gradient batch / séquentiel Les réseaux de neurones pour l’apprentissage • 2 façons d ’appliquer l’algorithme de rétropropagation : – « batch » : mise à jour des poids après la présentation de tous les exemples • calculs et stockage plus lourds si trop d ’exemples Moins de 5000 exemples, Matlab – séquentiel : (on-line, stochastique) mise à jour des poids après chaque exemple • besoin de tirer l ’exemple au hasard • problèmes de convergence plus de 5000 exemples SNNS, SN, du C ESSEC, le 28 Juin 2002

Pas d’apprentissage Les réseaux de neurones pour l’apprentissage • Pas d’apprentissage : – trop

Pas d’apprentissage Les réseaux de neurones pour l’apprentissage • Pas d’apprentissage : – trop petit = convergence « lente » vers la solution – trop grand = risque d’oscillations… 1. heuristiques courantes : – diminuer le pas d’apprentissage au fur et a mesure • « à la main » • en fonction de la forme de la surface d ’erreur 1. approximations : • premier ordre Rétropropagation avec un moment d’inertie Delta-Bar-Delta, Rprop, . . . • second ordre 1. Quickprop 2. Levenberg Marquard ESSEC, le 28 Juin 2002

Premier ordre 1/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Premier ordre 1/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Moment d’inertie (Rumelhart et al. 1986) avec | |<1 • Delta-Bar-Delta (Jacobs 1988) – calcul d ’un « gradient moyen » – modification du pas d’apprentissage selon la direction du gradient par rapport au gradient moyen on accélère on freine

Premier ordre 2/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Premier ordre 2/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Rprop (Riedmiller and Braun 1993) – modification du pas d’apprentissage selon la direction du gradient par rapport au gradient précédent – on borne le pas d ’apprentissage on accélère on freine – un poids n’est modifié que s ’il va « dans le bon sens »

Second ordre 1/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002

Second ordre 1/2 Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Développement de Taylor de la fonction de coût : – H = matrice Hessienne, « le Hessien » de du coût – Calcul du gradient : – on cherche h / le gradient soit nul Problème = calcul de H-1

Second ordre 2/2 Les réseaux de neurones pour l’apprentissage • Approximation du Hessien :

Second ordre 2/2 Les réseaux de neurones pour l’apprentissage • Approximation du Hessien : – hessien = matrice diagonale – Quickprop (Fahlman 1988) • on évite de calculer H – Il existe d’autres méthodes qui calculent (partiellement) les informations du 2 nd ordre méthodes de gradient conjugué ESSEC, le 28 Juin 2002

Conclusion Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 – La

Conclusion Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 – La rétropropagation est une méthode de gradient – on a un problème d’optimisation à résoudre, …. Et tous les coups sont bon ! – On a un problème d’optimisation non linéaire convexe si la fonction coût est quadratique – Soft : matlab (petits problèmes) - SN (gros problèmes)

Bibliographie Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • Neural

Bibliographie Les réseaux de neurones pour l’apprentissage ESSEC, le 28 Juin 2002 • 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 review : – des informations sur la rétropropagation • http: //www. dontveter. com/bpr. html – un petit tutoriel : • http: //www. dontveter. com/bpr/public 2. html