Réseaux de neurones artificiels « la rétropropagation du gradient »

Slides:



Advertisements
Présentations similaires
Plan Les réseaux de neurones Le réseau RBF RBF et Mushroom Historique
Advertisements

Présentation de la société, des logiciels et des services
Les réseaux connexionnistes EFREI 2010 Laurent Orseau (laurent
Champs de Markov en Vision par Ordinateur
Introduction générale aux réseaux de neurones artificiels
Réseaux de Neurones Artificiels
LES RESEAUX DE NEURONES
Application de réseaux bayésiens à la détection de fumées polluantes
A Pyramid Approach to Subpixel Registration Based on Intensity
Utilisation des méthodes neuronales pour l'analyse des images de couleur de l'océan C. Moulin, C. Jamet (LSCE) J. Brajard, A. Chazottes, M. Crépon, C.
THÈME APPLICATION OF THE ARTIFICIAL NEURAL NETWORK FOR MODELING THE THERMAL BEHAVIOR OF BUILDING IN HUMID REGION Léopold Mbaa, Pierre Meukamb, Alexis.
DEA instrumentation et commande
Reconnaissance des formes cours de D.E.A. Introduction
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Classification automatique de documents
Concepts avancés en mathématiques et informatique appliquées
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
GPA-779 Application des réseaux de neurones et des systèmes experts Cours #3 - 1 Plan 2- Domaines dapplication ClassificationRegroupement ApproximationPrédiction.
Pourquoi les réseaux de neurones de type « perceptron multicouche » conviennent-ils à l’apprentissage Stéphane Canu, INSA de Rouen , PSI André Elisseeff,
Applications du perceptron multicouche
Architecture d’application
de résolution des équations normales, ou d ’observations
Séminaire de lobjectif « forage et production » Beaune, les 26,27 et 28 Avril 2000 Outils danalyse statistiques « programmation par lexemple » S. Canu,
Méthodes Connexionnistes Apprentissage Fusion d’informations
PROGRAMMATION SCIENTIFIQUE EN C
DEA Perception et Traitement de l’Information
Optimisation non linéaire sans contraintes
DEA Perception et Traitement de l’Information
Réseaux de neurones.
Méthodes de prévision (STT-3220)
IFT 616 Intelligence Artificielle
Les réseaux de neurones
Mémoires associatives
Chapitre 7 Réseau ART.
GPA-779 Perceptron multicouche
Résumé Domaine des réseaux de neurones.
Projet région Thématique prioritaire n°10 Calculs Scientifiques Logiciels Rhône-Alpes : Grille pour le Traitement dInformations Médicales (RAGTIME ?)
Modélisation de la lecture grâce à un modèle connexionniste
Yves Lechevallier Cours CNAM
Les réseaux de neurones compétitifs
Les réseaux de neurones artificiels (RNA)
ASI 3 Méthodes numériques pour l’ingénieur
Les réseaux de neurones
DEA Perception et Traitement de l’Information
ASI 3 Méthodes numériques pour l’ingénieur
Perceptron multicouches
L’estimation.
ASI 3 Méthodes numériques pour l’ingénieur
RESEAUX DE NEURONES.
Les Réseaux de Neurones
ASI 3 Méthodes numériques pour l’ingénieur
Réseaux neuronaux et applications
Une méthode de prévision à un pas de temps Application à la prévision de la qualité de l’air S. Canu, Ph. Leray, A. Rakotomamonjy laboratoire PSI, équipe.
Christelle Scharff IFI 2004
Réseaux de neurones artificiels « programmation par l’exemple »
S. Canu, laboratoire PSI, INSA de Rouen
PROGRAMMATION SCIENTIFIQUE EN C
Réseaux de neurones artificiels « le neurone formel »
Réseaux de neurones à base radiale
Chapitre 1 - Introduction.
Intelligence artificielle
Algorithme Hybride Neuro-Flou.
GPA-779 Application des systèmes experts et des réseaux de neurones.
Le réseau de neurones artificiel
Perceptron multicouche
Présentation de Séminaire
Apprentissage automatique L’apprentissage automatique.
Technologies de l’intelligence d’affaires Séance 13
CHAPTER 11: Perceptron Multicouches
Transcription de la présentation:

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 : Principe de la rétropropagation 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 Illustration dans le plan (w1 ,w2) Minimum du coût Lignes d’iso-coût : J(W) = constante 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érivable ex : (x)=th(x) fonction sigmoïde

Perceptron Multi-Couches Réseau feedforward (1986) Fonction de transfert tanh(.) (sauf couche de sortie linéaire) Méthode d’apprentissage (supervisé) usuelle : rétropropagation du gradient x1 xi y xn0

Notations Biais : avec x0=1 W1=[wji] W2=[wkj] idem pour toutes les couches (ex : PMC à une couche cachée) W1=[wji] W2=[wkj] x0=1 x0 = 1 (1) xi yk wji wkj i=1:n0 j=1:n1 k=1:n2

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 xj (1) 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

Couche de sortie Calcul de pour un exemple fixé posons wkj yk xj (1) 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;

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] x1 (1) x1= 0.5 y1 = 1.2703 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 x2 (1) n0=2 n1 =2 n2 =2

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] x1 (1) err1 = 0.7703 x1= 0.5 x2= 1 err2 = 0.2703 x2 (1) n0=2 n1 =2 n2 =2

Exemple 3/4 MAJ de W1 et W2 Nouvelle propagation, etc... y = [0.5242 0.6344] x1 (1) y1 = 0.5242 x1= 0.5 x2= 1 y2 = 0.6344 x2 (1) n0=2 n1 =2 n2 =2

Exemple 4/4 Evolution de y1 et y2 y2 y1 1.3 1.2 1.1 1 0.9 0.8 0.7 0.6 0.5 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 : heuristiques courantes : 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) les informations 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