440 likes | 1.38k Views
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 : La machine de Turing 1943 : Le neurone formel (McCulloch & Pitts)
E N D
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 : La machine de Turing • 1943 : 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) 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 … (suite) • 1986 : Rétropropagation (Rumelhart & McClelland) 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 • Rappels : • Moindres carrés stochastiques • Algorithmes de gradient • Perceptron Multicouches • Principe de la rétropropagation • Algorithmes de rétropropagation
Moindres carrés « stochastiques »ADALINE (Widrow Hoff 1960) impossible (’ ! ) méthode itérative : winit Répéter wnew = wold - Tant qu ’il reste des mals classés ou que le coût n’évolue plus Algorithme itératif de gradient
Algorithme de gradient Minimum du coût Lignes d’iso-coût : J(W)= constante • Illustration dans le plan (w1 ,w2) w2 + Direction du gradient J’(W) Le gradient est orthogonal aux lignes d’iso-coût : argument à la « Taylor » w1
Algorithme de gradient • Illustration dans le plan (J(w),w) : la « descente » de gradient J(w) Direction du gradient J’(W) w Minimum du coût
3 solutions Le gradient : • Approximation linéaire (Adaline) • Perceptron : ’=1 • Neurone formel : on remplace par une fonction dérivableex : (x)=th(x) fonction sigmoïde
Perceptron Multi-Couches x1 • Réseau feedforward(1986) • Fonction de transfert tanh(.) (sauf couche de sortie linéaire) • Méthode d’apprentissage (supervisé) usuelle : • rétropropagation du gradient xi y xn0
(1) x0 = 1 Notations • Biais : • avec x0=1 • idem pour toutes les couches (ex : PMC à une couche cachée) • W1=[wji] • W2=[wkj] x0=1 xi yk wji wkj i=1:n0 j=1:n1 k=1:n2
xj (1) Propagation • Calcul des sorties du réseau en propageant les valeurs de x de couche en couche : 1 2 1 wji wkj xi yk 2 i=1:n0 j=1:n1 k=1:n2
Algorithme de propagation Function y = propag(x,w1,w2)a1 = [x ones(n,1)]*W1; x1 = tanh(a1); a2 = [x1 ones(n,1)]*W2; y = a2; Parallélisé sur les exemples (si x est une matrice, ça marche !)
Calcul de l ’erreur • Fonction de coût : • on présente un exemple x=[x1... xn0] (avec ydes sortie désirée) • on calcule la sortie correspondante y =[y1... yn2] • erreur : • coût associé à l ’exemple : • coût global :
Calcul du gradient • Mise à jour de wji et wkj selon une règle delta: • Problème = calcul de et
xj (1) Couche de sortie wkj • Calcul de pour un exemple fixé posons yk j=1:n1 k=1:n2
Couche cachée wji • Calcul de pour un exemple fixé xi i=1:n0 j=1:n1
Algorithme de rétropropagation Function grad = 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).*(1-y.*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;
x2 x1 (1) (1) Exemple 1/4 • x= [0.5 1] ydes = [0.5 1] • W1=[0.5 0.5 ; 0.5 0.5] (pas de biais) • W2=[1 1 ; 1 1] y1 = 1.2703 x1= 0.5 a(1)=[0.75 0.75] x(1)=[0.6351 0.6351] a(2)=[1.2703 1.2703] y = [1.2703 1.2703] x2= 1 y2 = 1.2703 n0=2 n1 =2 n2 =2
x2 x1 (1) (1) Exemple 2/4 ERRk = [0.7703 0.2703]GradW2 = [0.4893 0.1717 ; 0.4893 0.1717] ERRj = [0.6208 0.6208]GradW1 =[0.3104 0.3104 ; 0.6208 0.6208] err1 = 0.7703 x1= 0.5 x2= 1 err2 = 0.2703 n0=2 n1 =2 n2 =2
x2 x1 (1) (1) Exemple 3/4 w1 =[0.3448 0.3448 ; 0.1896 0.1896] w2 =[0.7554 0.9142 ; 0.7554 0.9142] • MAJ de W1 et W2 • Nouvelle propagation, etc... y = [0.5242 0.6344] y1= 0.5242 x1= 0.5 x2= 1 y2= 0.6344 n0=2 n1 =2 n2 =2
Exemple 4/4 • Evolution de y1 et y2 1.3 1.2 1.1 y2 1 0.9 0.8 0.7 y1 0.6 0.5 0 5 10 15
Gradient batch / séquentiel • 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
Gradient batch / séquentiel • 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 Moins de 5000 exemples, Matlab plus de 5000 exemples SNNS, SN, du C
Pas d’apprentissage • Pas d’apprentissage : • trop petit = convergence « lente » vers la solution • trop grand = risque d’oscillations… • heuristiques courantes : • diminuer le pas d’apprentissage au fur et a mesure • « à la main » • en fonction de la forme de la surface d ’erreur • approximations : • premier ordre • Rétropropagation avec un moment d’inertie • Delta-Bar-Delta, Rprop, ... • second ordre • Quickprop • Levenberg Marquard
Premier ordre 1/2 • 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 • 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 • un poids n’est modifié que s ’il va « dans le bon sens » on accélère on freine
Second ordre 1/2 • 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 • Approximation du Hessien : • hessien = matrice diagonale • Quickprop (Fahlman 1988) • on évite de calculer H • Il existe d’autres méthodes qui calculent (partiellement) lesinformations du 2nd ordre • méthodes de gradient conjugué
Conclusion • 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 • 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/bpr.html • un petit tutoriel : • http://www.dontveter.com/bpr/public2.html