Méthodes Connexionnistes Apprentissage Fusion d’informations Lionel PREVOST Laboratoire des Instruments et Systèmes d’Ile de France Groupe Perception, Automatique et Réseaux Connexionnistes lionel.prevost@lis.jussieu.fr 01.44.27.23.48
Pourquoi les réseaux de neurones ? MOTIVATIONS DES INGENIEURS : S’inspirer de la neurobiologie pour construire des machines capables d’apprentissage et aptes à remplir des taches spécifiques : classification, prédiction, contrôle … MOTIVATIONS DES BIOLOGISTES : Utiliser des outils issus des mathématiques et de la physique en vue de construire des modèles plausibles du fonctionnement du système nerveux
Historique (2) les pionniers La modélisation du neurone (McCullogh & Pitts 1943) Le processus d’apprentissage (Hebb 1949) Le perceptron (Rosenblatt 1952) Convergence d’un algorithme itératif d’adaptation des poids d’un neurone L’ Adaline (1960) Neurones en réseau mono-couche Limites du perceptron (Minsky & Papert 1969)
Historique (3) le néo-connexionnisme Cartes auto-organisantes (Kohonen 1980) Machine de Boltzmann (Hopfield 1982) Rétro propagation (Rumelhart, Parker, Le Cun1985) Convergence d’un algorithme itératif d’adaptation des poids d’un réseau de neurones multi-couche Support Vector Machine (Vapnik 1992) Théorie de l’apprentissage
Éléments de neurobiologie Visualisation par coloration (Golgi 1873) Concept de neurone (Ramon y Cajal 1988)
Différents types de neurone Neurones récepteurs Inter-neurones Moto-neurone Bipolaire de rétine Olfactif Auditif Cutané
Neurone naturel Influx nerveux dendrites Corps cellulaire synapse Cône axonal Axone primaire Axone secondaire
Potentiel d’action : « spike » P(t) fréquence dépolarisation saturation 0,5 ms -60 mV seuil stimulus potentiel de repos hyper-polarisation
Caractéristiques du neurone naturel Durée d’un spike : 0,5 à 1 ms Vitesse : 0,5 à 100 m/s Nombre de neurones : 10 à 100 milliards Nombre de connexions : 1000 à 100 000 par neurone 1014 à 1017 connexions Plasticité synaptique (Hebb) : dw/dt = SiSj w Si Sj
Du neurone naturel au neurone formel (artificiel) (1) Propagation de l‘influx nerveux des axones vers les dendrites via des synapses excitatrices ou inhibitrices (2) sommation des influx (« entrées ») au niveau du corps cellulaire (3) Transmission (« sortie ») si la somme dépasse un seuil
S Neurone artificiel wi1 f entrées sortie wij ni ni xj yi yi = f(ni) = f( wij xj+ w0) Pondération Sommation Transfert
Application : discrimination camions/autres véhicules Véhicules : 2 descripteurs x1 : longueur x2 : bruit Véhicule x1 x2 y Camion1 20 8 1 Camion2 15 20 1 Car 16 10 -1 Voiture1 5 15 -1 Voiture2 (+remorque) 16 6 -1 Moto 2 20 -1
x1 x2 1 w0 =-47 w1=2 w2=1 y = seuil(w1 x1 + w2 x2 + w0) x1 x2 y 20 8 15 16 5 2 10 6 48-47=1 50-47=3 42-47=-5 25-47=-18 38-47=-9 24-47=-23 1 -1 Camion1 Camion2 Car Voiture1 Voiture2 (+remorque) Moto Véhicule 2 x1+x2-47
Réseau de neurones ensemble de neurones interconnectés paramètres: architecture, type de neurones et de connexions (complètes, feed-forward, locales, poids partagés) Modes d’utilisation: (1) apprentissage des paramètres à partir des données (en général en minimisant une fonction d’erreur) (2) utilisation sur des données nouvelles
Différents types de neurone Neurone produit scalaire n = w.x Fonctions d’activation : à seuil linéaire linéaire saturée sigmoïde Neurone distance n = ||x – w|| Fonction d’activation : - gaussienne
Réseau mono-couche Entrées Sorties Cellules du réseau
Réseau multi-couche Entrées Sorties Cellules cachées Cellules de sortie Classification Approximation de fonctions non linéaires Modélisation de processus statiques
Réseau bouclé (récurrent) Entrées Sorties Connexions récurrentes Modélisation et commande de processus dynamiques
modification des paramètres du réseau Apprentissage modification des paramètres du réseau Le réseau est stimulé par l’environnement Le réseau subit des changements en réponse à cette stimulation Le réseau réagit différemment suite aux modification de sa structure interne Présentation d’un exemple Modification des poids
Discrimination x2 En dimension 2 : la frontière est une droite d’équation w1x1+w2x2+w0=0 En dimension 3 : plan 1 2 x1 En dimension n : hyperplan séparateur wixi+w0= W.X= 0 W : vecteur des poids (connexions) X : vecteur d’entrée
Formulation du problème On dispose d’une base de données étiquetées base d’apprentissage : ensemble (X, yd) Problème à deux classes C1 , C2 Vecteurs d’entrée de dimension n+1 : X = (1 x1 x2 … xn) un neurone à (n+1) entrées et une sortie y valeurs désirées yd = +1 si X C1 yd = -1 si X C2 Trouver les poids W tel que W.X > 0 si X C1 et W.X < 0 si X C2 x1 x2 xn-1 y wn w0 1 . xn w1
Algorithme du Perceptron Initialiser W aléatoirement Apprentissage : (1) Tirer au hasard un exemple X de la base d’apprentissage (2) si yd*W(t).X <0 c’est à dire si X est mal classé Modifier suivant la relation W(t+1) = W(t) + DW avec DW = yd*X Incrémenter le compteur de mises à jour t=t+1 Test : Si yd*W(t).X > 0 pour tout X, tous les exemples sont bien appris terminer Sinon : retour en (1)
Exemple : fonction booléenne OR yd 1 -1 X1 X2 Exemples X3 X4
Fonctions AND et XOR x2 x2 x1 x1 L’algorithme du perceptron ne converge que si les classes sont linéairement séparables
Extension à N classes N neurones le neurone i sépare la classe i des autres classes vecteur des valeurs désirées yd = (yd1, yd2, …, ydN) x1 y1 1 2 3 x2 y2 . yN xn
Apprentissage : règle delta Reformulation du perceptron : Dw = lX(yd - y) Neurones à fonction d’activation linéaire : y = W.X Dw = lX(yd - y) (1) Erreur : E = (yd – y) 2 Trouver les poids optimaux revient à minimiser l’erreur par rapport aux poids : On retrouve l’équation (1) qui modifie les poids dans la direction opposée du gradient de l’erreur
Séparabilité linéaire 1 2 3 Les régions 1, 2 et 3 sont linéairement séparables (LS) Perceptron mono-couche 1 2 3 La région est LS de la région 2 Les régions 2 et 3 ne le sont pas l’algorithme ne converge pas perceptron multi-couche
Perceptron multi-couches (MLP) x1 exemple = y1 x2 y2 x3 yN xd Ajout d’une couche de C neurones cachés Projection des données dans un espace de dimension C où elles sont linéairement séparables
Fonction de transfert f : sigmoïde xk(i)= f [ wij xk-1(j)] Critère : Erreur Quadratique Moyenne < e EQM = [yd(i) - x(i)]2 Minimisation de l’EQM pour trouver les meilleurs poids wij Apprentissage par rétro-propagation
Rétro-propagation : principe exemple X = x1 x2 x3 xn y1 y2 yN yd1 yd2 ydN + - e = valeurs désirées Tant que EQM > e : Propager chaque exemple dans le réseau Calculer l’erreur en sortie puis le gradient Modifier les poids dans la direction opposée au gradient
Rétro-propagation : algorithme 1. Initialiser les wij aléatoirement 2. Propager un exemple X : 3. Rétro-propager : Couche de sortie : Couches cachées : 4. Modifier les poids : wij = wij + Dwij avec Dwij = l di xj 5. Si EQM assez petite alors FIN sinon aller en 2
Démonstration On souhaite minimiser l’erreur : Neurones de sortie : Neurones cachés : k : couche suivante or donc