La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les Réseaux de Neurones

Présentations similaires


Présentation au sujet: "Les Réseaux de Neurones"— Transcription de la présentation:

1 Les Réseaux de Neurones
Chapitre 3: Les Réseaux de Neurones Réseaux de Neurones et Apprentissage Automatique 1

2 Modèles Connectionistes (Réseaux de Neurones)
Cerveau humain Nombre de neurones: ~ billion (1010 – 1011) (“There are as many neurons in the brain as there are stars in the Milky Way”; David Eagleman, Discover, 31 juillet 2007) Connections par neurone: ~ mille (104 – 105) Temps de commutation d’1 Neurone : ~ (10-3) seconde Temps de reconnaissance d’une scène/image : ~0.1 second 100 pas d’inférences pas suffisants!  calculs massivement parallèles

3 Modèles Connectionistes (Réseaux de Neurones)
Définition d’un Réseau de Neurones: "... un système composé de plusieurs éléments de calcul simples fonctionnant en parallèle et dont la fonction est déterminée par la structure du réseau, les poids des connexions, et le traitement effectué sur les éléments de calcul ou nœuds." - DARPA (1988) Propriétés des réseaux de neurones Beaucoup d’unités semblables aux neurones; commutations basées sur des seuils Beaucoup d'interconnexions pondérées entre les unités Processus distribué hautement parallèle. L'accent est mis sur ​​le réglage automatique des poids

4 Quand considérer les réseaux de neurones?
Input: Haute-Dimensionalité et valeurs discrètes ou réelles e.g., input brut provenant de capteurs Conversion possible de données symboliques en données quantitatives (numériques) Output: vecteurs à valeurs discrètes ou réelles e.g décisions de controle d’un actionneur de robot Conversion possible qualitative/quantitative (symbolique/numérique) Données: Peuvent contenir du bruit Fonction cible: forme inconnue Résultat: la lisibilité (pour l'homme) moins importante que la performance Performance mesurée uniquement en termes de précision et d'efficacité Lisibilité: la capacité d'expliquer les inférences faites à l'aide de modèles Exemples: reconnaissance de phonèmes dans la parole; classification d’Images; Prédictions financières

5 Véhicule à Apprentissage Autonome avec un RN (ALVINN)
Pomerleau et al Conduit à 110 kms/h sur autoroute Hidden-to-Output Unit Weight Map (for one hidden unit) Input-to-Hidden Unit

6 Le Perceptron  Perceptron: modèle d’un simple neurone
Linear Threshold Unit (LTU) or Linear Threshold Gate (LTG) (Unité à seuil linéaire) input à l’unité: défini comme combinaison linéaire Output de l’unité: fonction d’activation à seuil selon le input (seuil  =- w0) Réseau de perceptrons Neurone modélisé utilisant une unité connectée à d’autres unités par liens pondérés wi Multi-Layer Perceptrons (MLP) (réseau multi-couches de perceptrons) x0 = 1 w0 x1 x2 xn w1 w2 wn

7 Surface de Décision d’un Perceptron
Perceptron: peut représenter quelques fonctions utiles (And, Or, Nand, Nor) Emulation de portes logiques par LTU (McCulloch and Pitts, 1943) e.g., Quels poids représentent g(x1, x2) = AND(x1, x2)? OR(x1, x2)? NOT(x)? (w0 + w1 . x1 + w2 . x w0 = w1 = w2 = w0 = w0 = 0.3 w1 = -0.5) Quelques fonctions non représentables e.g., non linéairement séparables Solution: utiliser un réseau de perceptrons (LTUs) Exemple A + - x1 x2 Exemple B - x1 x2 +

8 Séparateurs Linéaires
Définition Fonctionnelle f(x) = 1 si w1x1 + w2x2 + … + wnxn  ; 0 sinon : valeur du seuil Fonctions Linéairement Séparables Disjonctions: c(x) = x1’  x2’  …  xm’ m-de-n: c(x) = au moins 3 de (x1’ , x2’, …, xm’ ) Ou Exclusif (XOR): c(x) = x1  x2 DNF Générale : c(x) = T1  T2  … Tm; Ti = l1  l2  …  lk Data Set Linéairement Séparable (LS) x1 x2 + -

9 Règles d’Apprentissage pour Perceptrons
Règle d’apprentissage (training rule; learning rule) Pas spécifique à l’apprentissage supervisé Contexte: mise à jour de modèle Règle d’apprentissage de Hebb (1949) Idée: si deux unités sont toutes deux actives («firing»), le poids entre elles devrait augmenter wij = wij + r oi oj où r est une constante: le taux d’apprentissage Appuyées par des preuves neurophysiologiques Règle d’apprentissage du Perceptron (Rosenblatt, 1959) Idée : quand une valeur cible de sortie est prévue pour un neurone pour 1 certain input, on peut progressivement mettre à jour les poids pour apprendre à produire le output désiré Supposons LTU avec unités input/output binaires (booléennes); où t = c(x) est la valeur ciblée en sortie, o le output du perceptron, r une constante taux d’apprentissage (e.g., 0.1) On peut démontrer la convergence si D est linéairement séparable et r petit

10 Algorithme d’Apprentissage du Perceptron
Algorithme de descente simple par gradient Applicable à l’apprentissage de concepts, apprentissage symbolique Algorithme Train-Perceptron (D  {<x, t(x)  c(x)>}) Initialiser tous les poids wi à des valeurs aléatoires TANTQUE pas tous les exemples prédis correctement FAIRE POUR chaque exemple d’apprentissage x  D Calculer le output actuel o(x) POUR i = 1 à n wi  wi + r(t - o)xi // règle d’apprentissage du perceptron Apprenabilité du Perceptron (Learnability) Rappel: peut apprendre seulement h  H - i.e. fonctions linéairement séparables Minsky & Papert, 1969, ont démontré les limites de la représentation e.g., parité (XOR à n attributs: x1  x2  …  xn) e.g., symmétrie, connexité en reconnaissance de formes visuelle Livre influent Perceptrons a découragé la recherche sur RNs ~10 ans

11 Convergence du Perceptron
Theorème de Convergence du Perceptron Si les données sont linéairement séparables alors l'algorithme d'apprentissage du perceptron converge Théoreme de boucle du Perceptron Si les données d'apprentissage ne sont pas LS alors l'algorithme d’apprentissage du perceptron finira par reprendre le même ensemble de poids et entrera ainsi dans une boucle infinie Comment améliorer la robustesse et l'expressivité? Objectif 1: développer un algorithme qui trouvera l’ approximation la plus proche Objectif 2: développer une architecture qui peut surmonter la limitation de la représentation

12 Descente par Gradient : Principe
Comprendre la Descente par Gradient pour des unités linéaires Soit le cas simple d’une unité linéaire sans seuil: Objectif: trouver le meilleur ajustement (“best fit”) à l’ensemble de données D Algorithme d’approximation Objectif quantitatif : minimiser l’erreur sur l’ensemble d’apprentissage D Fonction Erreur : somme des carrés des erreurs (Sum of Squared Errors, SSE) Comment minimiser l’erreur? Optimisation simple Se déplacer dans la direction de la plus grande pente (gradient) dans l’espace poids-erreur Calculée en cherchant la tangente i.e. dérivées partielles de E par rapport aux poids (wi)

13 Descente du Gradient : Dérivation de la règle du Delta/LMS (Widrow-Hoff)
Définition: Gradient Règle d’apprentissage de descente du gradient modifiée

14 Descente du Gradient : Dérivation de la règle du Delta/LMS (Widrow-Hoff)
Algorithme Descente du Gradient (D, r) Chaque exemple d’app. est 1 paire de la forme <x, t(x)>, où x est le vecteur de valeurs input, t(x) est la valeur en sortie, et r taux d’apprentissage (e.g., 0.05) Initialiser tous les poids wi à de (petites) valeurs aléatoires JUSQU’A ce que la condition de terminaison soit satisfaite, FAIRE Initialiser chaque wi à zéro POUR chaque <x, t(x)> dans D, FAIRE Entrer l’instance x à l’unité et calculer le output o POUR chaque poids wi d’1 unité linéaire, FAIRE wi  wi + r(t - o)xi wi  wi + wi RETOURNER w final Mécanique de la règle du Delta Gradient est basé sur la dérivée Importance: ultérieurement, nous utiliserons des fonctions d’activation non-linéaires (fonctions de transfert, squashing functions)

15 Descente du Gradient : Dérivation de la règle du Delta/LMS (Widrow-Hoff)
Concepts LS : Peut achever une classification parfaite Exemple A: la règle d’apprentissage du perceptron converge Concepts Non-LS : peuvent uniquement approximer Exemple B: non LS; règle du delta converge, mais pas mieux que 3 corrects Exemple C: non LS; de meilleurs résultats avec la règle du delta Vecteur de poids w Règle du Delta : minimise erreur  distance du séparateur (i.e., maximise ) Exemple A + - x1 x2 Exemple B - x1 x2 Exemple C x1 x2 + - +

16 Descente du Gradient Incrémentale (Stochastique)
Descente du Gradient en Mode Batch JUSQU’A condition de terminaison satisfaite, FAIRE 1. Calculer le gradient 2. RETOURNER w final Descente du Gradient en Mode Incrémental (En ligne) JUSQU’A condition de terminaison satisfaite, FAIRE POUR chaque donnée d=<x, t(x)> dans D, FAIRE RETOURNER w final Émulation du Mode Batch La Descente du gradient incrémentale peut approximer la descente du gradient batch de très près si r est suffisamment petit

17 Descente du Gradient: Standard vs Stochastique
Converge vers un vecteur de poids avec erreur minimale indépendamment du fait si D Lin. Séparable ou pas, pour peu que le taux d’apprentissage r soit suffisamment petit. Difficultés: Convergence à un minimum local peut être lente Pas de garantie de trouver un minimum global Descente du Gradient Stochastique sensée alléger ces difficultés Différences En DG Standard, somme d’erreur sur D avant la MAJ des poids W  plus de calculs pour chaque pas de MAJ de poids (mais taille du pas plus grande par MAJ de poids) DG stochastique: peut parfois éviter de tomber sur des minima locaux Les 2 sont utilisées assez souvent en pratique

18 Réseaux Multicouches d’Unités non Linéaires
Rappel: fonction d’activation sgn (w  x) Fonction d’activation nonlinéaire : généralisation desgn Réseaux Multicouches Type exact: Perceptrons Multi-Couches (MLPs) Définition: 1 réseau multicouches feedforward (alimentation avant) est composé d’1 couche d’entrée , 1 ou plusieurs couches cachées, et 1 couche de sortie. Seules les couches cachées et de sortie contiennent des perceptrons (unités à seuil ou non-linéaires) MLPs en Théorie Réseau (2 ou plusieurs couches) peut représenter toute fonction avec une erreur arbitrairement petite Apprentissage même d’un Réseau Multicouches de 3-unités est NP-hard MLPs en Pratique Conception de réseaux de neurones pour des fonctions arbitraires est difficile Apprentissage friand en calculs même quand la structure est “connue” o1 o2 v42 Output Layer u 11 h1 h2 h3 h4 Hidden Layer x1 x2 x3 Input Layer

19  Fonctions d’Activation Non Linéaires Fonction d’Activation Sigmoide
Fonction Linéaire d’activation à seuil: sgn (w  x) Fonction d’activation non linéaire (transfer, squashing) : généralisation de sgn  est la fonction sigmoide Pouvons déduire des règles de gradient pour l’apprentissage de 1 unité sigmoide Réseaux multicouches feedforward d’unités sigmoides (avec backpropagation) Fonction d’Activation Tangente Hyperbolique x1 x2 xn w1 w2 wn x0 = 1 w0

20 Gradient d’Erreur pour une Unité Sigmoide
Rappel: Gradient d’1 fonction d’erreur Gradient Fonction d’Activation Sigmoide Nous savons que: Donc :

21 Algorithme de Backpropagation (propagation arrière)
Idée intuitive : Distribuer le blâme sur les erreurs aux couches précédentes Algorithme Train-by-Backprop (D, r) Each training example is a pair of the form <x, t(x)>, where x is the vector of input values and t(x) is the output value. r is the learning rate (e.g., 0.05) Initialize all weights wi to (small) random values UNTIL the termination condition is met, DO FOR each <x, t(x)> in D, DO Input the instance x to the unit and compute the output o(x) = (net(x)) FOR each output unit k, DO (calculate its error ) FOR each hidden unit j, DO Update each w = ui,j (a = hj) or w = vj,k (a = ok) wstart-layer, end-layer  wstart-layer, end-layer +  wstart-layer, end-layer wstart-layer, end-layer  r end-layer aend-layer RETURN final u, v o1 o2 v42 Output Layer u 11 h1 h2 h3 h4 Hidden Layer x1 x2 x3 Input Layer

22 Algorithme de Backpropagation (propagation arrière)
Idée intuitive : Distribuer le blâme sur les erreurs aux couches précédentes Algorithme Train-by-Backprop (D, r) Chaque exempled’apprentissage est une paire <x, t(x)>, où x est le vecteur input et t(x) est le vecteur cible. r est le taux d’apprentissage (e.g., 0.05) Initialiser tous les poids wi à des valeurs aléatoires petites JUSQU’A atteinte de la condition de terminaison, FAIRE POUR chaque <x, t(x)> dans D, FAIRE Input l’instance x à l’unité et calculer le output o(x) = (net(x)) POUR chaque unité output k, FAIRE (calculer son erreur ) POUR chaque unité cachée j, FAIRE MAJ de chaque w = ui,j (a = hj) ou w = vj,k (a = ok) wstart-layer, end-layer  wstart-layer, end-layer +  wstart-layer, end-layer wstart-layer, end-layer  r end-layer aend-layer RETOURNER u, v o1 o2 v42 Output Layer u 11 h1 h2 h3 h4 Hidden Layer x1 x2 x3 Input Layer

23

24 Backpropagation et Optima Locaux
Descente du Gradient en Backpropagation Appliquée à toutes les matrices de poids du réseau Propriété: Backpropagation sur les réseaux feedforward trouvera un minimum local (pas nécessairement global) de la fonction erreur Backprop en pratique L’optimisation locale donne souvent de bons résultats (l’executer plusieurs fois) Souvent on inclut un momentum (élan) de poids  Apprentissage souvent très lent : milliers d’itérations sur D (epochs) Inférence (appliquer le réseau après apprentissage) typiquement très rapide. E.g.: Classification; Controle.

25 Puissance de Représentation (i.e., Expressivité)
RNs Feedforward : Puissance de Représentation et Biais Puissance de Représentation (i.e., Expressivité) Backprop présentée pour RNs feedforward à 1 couche cachée (RN 2 couches) RN feedforward à 2 couches Toute fonction booléenne Toute fonction continue bornée (approximation avec erreur arbitrairement petite) : 1 output (unités linéaires sans seuil) + 1 cachée (sigmoid) RN feedforward 3 couches: toute fonction (approximation avec erreur arbitrairement petite): output (unités linéaires), 2 couches cachées (sigmoides)

26 Apprentissage de Représentations de Couche Cachée
Unités cachées et extraction de traits Procédure d’apprentissage: représentation de couches cachées minimisant erreur E Backprop définit parfois de nouveaux traits (cachés) non explicites dans la representation du input x, mais capte les propriétés des instances input les pertinentes à l’apprentissage de la fonction ciblet(x) Les unités expriment des traits nouvellement construits Fonction cible (Sparse aka 1-of-C, Codage) RN apprend à découvrir des représentations utiles des couches cachées

27 Convergence de la Backpropagation
Pas de Garantie de Convergence à 1 Solution Optimale Globale Rappel: perceptron converge à la meilleure h  H, pour peu que h  H; i.e., LS Descente du gradient vers 1 minimum local (peut être pas un minimum global) de la fonction erreur Améliorations possibles de la backprop (BP) Le terme “momentum” (variante de BP mais règle de MAJ des poids légèrement différente) Descente du gradient stochastique (variante de l’algorithme BP) Apprentissage de réseaux multiples avec poids initiaux différents Nature de la Convergence Initialiser poids à presque zero Réseau initial presque linéaire Fonctions de plus en plus non-linéaires avec l’avancée de l’apprentissage

28 Surapprentissage (Overtraining) des RNs
Définition de Overfitting h’ pire que h sur Dtest, meilleure sur Dtrain A cause d’itérations excessives L’éviter: critère d’arrêt (cross-validation: holdout, k-fold) Error vs epochs (Exemple 2) Error vs epochs (Exemple 1)

29 Overfitting des RNs D’autres causes d’Overfitting sont possibles
Nombre d’unités cachées parfois décidées à l’avance Trop d’unités cachées Trop peu d’unités cachées (“underfitting”) RNs qui n’arrivent pas à progresser (“croître”) Analogie: système d’équations linéaires (plus d’inconnues que d’équations) Approches de Solutions Eviter: Ensemble Hold out cross-validation ou partage de k façons (k ways) Weight decay: diminuer chaque poids d’1 certain facteur à chaque iteration (epoch) Détection/traitement: random restarts, addition et suppression de poids ou d’unités

30 Exemple: RN pour la Reconnaissance de Visages: la Tâche
Tâche d’apprentissage: Classer des images de visages de diverses personnes ayant différentes poses: 20 personnes; 32 images par personne (624 images niveaux gris, résolution de chacune 120 x 128, intensité des niveaux de gris 0 (noir) à 255 (blanc)) expressions variables (heureux, triste, en colère, neutre) Différentes directions (regardant à gauche, à droite, tout droit, vers le haut) Portant des lunettes ou pas Variation de l’arrière-plan derrière la personne Vêtements portés par la personne Position du visage dans l'image Différentes fonctions cibles peuvent être apprises Id de la personne; direction; genre; port de lunettes ; etc. Dans notre cas: apprendre la direction vers laquelle la personne regarde

31 RN pour la Reconnaissance de Visages

32 Reconnaissance de Visages: Décisions de conception
Codage de l’input: Comment coder une image? Extraction de contours, régions d’intensités uniformes, autres traits locaux? Problème: nombre variable de caractéristiques  # variable d'unités d'entrée Choix: coder l’image sur 30 x 32 valeurs d'intensité des pixels (résumé /moyennes de 120 x 128 originale )  exigences de calcul gérables Ceci est crucial en cas de ALVINN (conduite autonome) Codage de l’Output : Output du RN: 1 de 4 valeurs Option1: une unité (valeurs e.g. 0.2, 0.4, 0.6, 0.8) Option2: codage de l’output 1-of-n (meilleure option) Note: plutôt que valeurs 0 et 1, 0.1 et 0.9 utilisés (unités sigmoides ne peuvent produire output 0 et 1)

33 RN pour la Reconnaissance de Visages
Précision de 90%, Reconnaissance de visages 1-of-20 Gauche Tout droit Droite Haut Output Layer Weights (including w0 = ) after 1 Epoch Hidden Layer Weights after 25 Epochs Hidden Layer Weights after 1 Epoch 30 x 32 Inputs

34 Reconnaissance de Visages: Décisions de conception
Structure du RN: Combien d’unités et comment les interconnecter habituellement: 1 ou 2 couches d’unités sigmoides (parfois 3). Plus que cela, apprentissage trop lent! Combien d’unités cachées? De préférence assez peu. E.g. avec 3 unités cachées: 5 min apprentissage; 90% Avec 30 unités cachées: 1 heure apprentissage; résultat à peine meilleur Autres paramètres d’ apprentissage: Learning rate: r = 0.3; momentum α = 0.3 (si trop grands, pas de convergence à erreur acceptable) - Descente du gradient utilisée.

35 Apprentissage Poids du RN Initialisés à de petites valeurs aléatoires
Poids d’unités d'entrée Initialisés à 0 Nombre d'itérations d’apprentissage Données partitionnées en ensembles d'apprentissage et de validation Descente du Gradient utilisée Chaque 50 itérations, performance du RN évaluée par rapport à l’ensemble de validation RN final: celui avec la meilleure précision par raport à l’ens. de validation résultat final (90%) mesuré sur 3ème ens. (de tests)

36 Réseaux Récurrents Représenter des séries de temps
RN Feedforward : y(t + 1) = net (x(t)) Besoin de capter les relations temporelles Approches de Solution Cycles orientés Feedback Output-to-input [Jordan] Hidden-to-input [Elman] Input-to-input Capte des relations dans le temps Entre x(t’  t) et y(t + 1) Entre y(t’  t) et y(t + 1)

37 Quelques Applications de RNs
Diagnostique Les plus proches de l'apprentissage de concepts et classification Certains RNs peuvent être post-traités pour produire des diagnostics probabilistes Prévision et surveillance Pronostic (prévision) Prévoir une continuation de données (typiquement numériques) Systèmes d'aide à la décision Systèmes de conseils Fournir une assistance aux experts humains dans la prise de décisions Design (fabrication, ingénierie) Thérapie (médecine) Gestion des crises (médicale, économique, militaire, sécurité informatique) Automation du Contrôle Robots Mobiles Capteurs et actionneurs autonomes Et bien plus encore (Raisonnement automatisé, etc.)


Télécharger ppt "Les Réseaux de Neurones"

Présentations similaires


Annonces Google