Modèles mathématiques et computationnels en neurosciences Réseaux de neurones feed-forward et l’apprentissage supervisé 4I702 CM 7 [email protected] 1 Rappel : modélisation de neurones Rappel : Différents niveaux de modélisation neuronale des modèles à plusieurs compartiments le modèle de Hodgkin-Huxley le modèle Intègre - et - tire (et ces réductions à 2D : FitzHugh - Nagumo Morris-Lecar) (et ces variants : linéaire, nonlinéaire, SRM, etc) des modèles à taux de décharge r fuite - de plausibilité biologique, + facile à analyser 3 Rappel : Différents niveaux de modélisation neuronale des modèles à plusieurs compartiments le modèle de Hodgkin-Huxley le modèle Intègre - et - tire (et ces réductions à 2D : FitzHugh - Nagumo Morris-Lecar) (et ces variants : linéaire, nonlinéaire, SRM, etc) des modèles à taux de décharge r fuite - de plausibilité biologique, + facile à analyser 4 Rappel : Modèle Intègre-et-Tire (Integrate-and-Fire) I = 3nA I = 5nA du τm = −u + Rm I dt u est remis à 0 si u > ϑ Courbe FI Fonction d’activation I = 6nA 5 Rappel : Codage neuronal Codage par taux de décharge Codage temporel Codage par population de neurones Rappel : Codage neuronal Codage par taux de décharge Codage temporel Codage par population de neurones Réseaux de neurones feed-forward et l’apprentissage supervisé Réseau feed-forward Sorties yk = f (x0 , x1 ..., x D ) ... ... Exemple : projections de la rétine vers le cortex ... ... ... x0 (il n y a pas de neurones qui projettent du cortex vers la rétine) xi Entrées xD Réseau récurrent xk = f (x0 , x1 ..., x D ) x0 xD x1 ... Exemple : cortex, hippocampe Apprentissage dans des réseaux biologiques Apprentissage dans des réseaux biologiques EPSP - excitatory postsynaptic potential (PPSE - potentiel postsynaptic excitateur) EPSP • Avant l’apprentissage • Après l’apprentissage • Neurones sont connectés par des synapses (chimiques ou électriques) • Apprentissage correspond à des changements de l’efficacité synaptique plasticité synaptique Réponse à un PA Apprentissage dans des réseaux biologiques x in w y out = g(wx in ) • Neurones sont connectés par des synapses (chimiques ou électriques) • Apprentissage correspond à des changements de l’efficacité synaptique plasticité synaptique Plasticité synaptique est modélisée par des changements du “poids synaptique” w (paramètre du modèle) Apprentissage non-supervisé vs apprentissage supervisé Classifier les images suivants en deux classes (non-supervisé) Quelles sont les deux classes ? Quelle classe ? Classifier les images en deux classes (supervisé) 0 1 1 0 1 0 0 ? Apprentissage non-supervisé • Les réponses correctes ne sont pas prédéfinies • Le réseau classifie les entrées en s’appuyant sur la similarité entre différentes entrées (clustering automatique) Apprentissage supervisé • Le réseau apprend à classifier des entrées selon des règles prédéfinies (définies par un ensemble des exemples avec les réponses corrects associées) Apprentissage non-supervisé • Les réponses correctes ne sont pas prédéfinies • Le réseau classifie les entrées en s’appuyant sur la similarité entre différentes entrées (clustering automatique) Apprentissage supervisé • Le réseau apprend à classifier des entrées selon des règles prédéfinies (définies par un ensemble des exemples avec les réponses corrects associées) Réseau feed-forward à taux de décharge Réseau de neurones Fonction d’activation (Courbe FI) Plasticité synaptique Réseau feed-forward à taux de décharge Réseau feed-forward Fonction d’activation y out j w ji xi in xi in a j = ∑ w ji xiin i Fonction “sigmoïde” 1 g(a) = −a 1+ e le taux de décharge du ième neurone présynaptique l’activation du neurone postsynaptique Plasticité synaptique : Les poids synaptiques y out j = g(a j ) le taux de décharge du neurone postsynaptique avec la fonction d’activation g() w ji sont des paramètres du modèle Questions principales y out j w ji xi in a j = ∑ w ji xiin i 1 g(a j ) = −aj 1+ e y out = g(a j ) j 1. Que peut faire un neurone postsynaptique avec la fonction d’activation sigmoïde et des poids malléables ? 2. Que peut faire un réseau de tels neurones ? • • • Un neurone postsynaptique Une entrée Sans apprentissage Un neurone avec une entrée y Sortie w Entrée y x 1 y = g(a) = − wx 1+ e x Un neurone avec une entrée y w x 0 x 1 y = g(a) = − wx 1+ e classe ‘bleu’ classe ‘rouge’ Un neurone avec une entrée y w x x 1 y= − wx 1+ e classe ‘bleu’ classe ‘rouge’ One considère ce réseau comme une machine de classification (classifieur) : 1. On présente au réseau une valeur d’entrée (par ex. x = 5) 2. On calcule la sortie y 3. Si y = 1, l’entrée appartient à la classe ‘rouge’ 4. Sinon, l’entrée appartient à la classe ‘bleu’ Un neurone avec une entrée x classe ‘bleu’ classe ‘rouge’ Notre réseau serait plus utile si le point de séparation entre les deux classes soit aussi un paramètre modifiable du réseau Un neurone avec une entrée y x w0 x0 = 1 w1 classe ‘bleu’ classe ‘rouge’ x1 w0 − w1 w1 Une entrée constante appelée “biais” où “seuil” (toujours égale à 1) y = g(a) = g(w0 + w1 x1 ) = 1 1+ e− w0 −w1x1 Un neurone avec une entrée y w0 x0 = 1 w1 x1 Un neurone avec une entrée (+ biais) peut classifier les données dans une dimension en deux classes Un neurone avec une entrée classe ‘rouge’ classe ‘bleu’ classe ‘rouge’ classe ‘bleu’ classe ‘bleu’ Impossible de classifier par un neurone à une entrée ! Un neurone avec une entrée y w0 x0 = 1 w1 x1 Un neurone avec une entrée (+ biais) peut classifier les données linéairement séparables dans une dimension en deux classes • • • Un neurone postsynaptique Plusieurs entrées Sans apprentissage Un neurone / deux entrées - sans biais y w1 w2 vecteur de poids x1 x2 vecteur d’entrées y= 1 1+ e − w1x1 −w2 x2 1 !! = − w⋅x 1+ e Droite verte - frontière de séparation entre deux classes Un neurone / deux entrées - sans biais y w1 w2 vecteur de poids x1 x2 vecteur d’entrées y= 1 1+ e − w1x1 −w2 x2 1 !! = − w⋅x 1+ e Droite verte - frontière de séparation entre deux classes Un neurone / deux entrées - sans biais y w1 w2 vecteur de poids x1 x2 vecteur d’entrées y= ● ● 1 1+ e − w1x1 −w2 x2 1 !! = − w⋅x 1+ e La droite! de séparation est perpendiculaire au vecteur de poids w La pente de la fonction sigmoïde est déterminée par la ! norme du vecteur de poids w Voir les exercices de TD pour demonstration Un neurone / deux entrées - avec biais y w0 w1 x0 = 1 y= x1 x2 1 1+ e − w0 −w1x1 −w2 x2 ● ● ● ! w w2 = 1 1+ e !! − w0 − w⋅x distance de l’origine à la droite de séparation : orientation de la droite de séparation: la pente de la fonction sigmoïde : Bishop (1995) Neural networks for pattern recognition, Chapitre 3 ! w ! w w0 − ! w Voir les exercices de TD pour demonstration Un neurone / deux entrées - avec biais y w0 w1 x0 = 1 x1 w2 x2 Impossible de classifier par un neurone à deux entrées ! Un neurone / deux entrées - avec biais y w0 x0 = 1 w1 x1 w2 Que peut faire un neurone avec la fonction d’activation sigmoïde et deux entrées ? x2 Un neurone avec 2 entrées (+ biais) peut classifier des données linéairement séparables dans 2 dimensions en deux classes La frontière de séparation est une droite Un neurone / D entrées y w0 wi ... x0 = 1 Que peut faire un neurone avec la fonction d’activation sigmoïde et D entrées ? ... xi xD Réseau de neurones feed-forward à une couche de poids : “perceptron" Un neurone / D entrées y w0 wi ... x0 = 1 Que peut faire un neurone avec la fonction d’activation sigmoïde et D entrées ? ... xi xD Réseau de neurones feed-forward à une couche de poids : “perceptron" Un neurone avec D entrées (+ biais) peut classifier des données linéairement séparables dans D dimensions en deux classes La surface de séparation est un hyperplan Un neurone / D entrées y w0 wi ... x0 = 1 Que peut faire un neurone avec la fonction d’activation sigmoïde et D entrées ? ... xi xD Lien avec l’exemple de classification d’images donné au debut de cours ? Un neurone avec D entrées (+ biais) peut classifier des données linéairement séparables dans D dimensions en deux classes La surface de séparation est un hyperplan Un neurone / D entrées y w0 wi ... x0 = 1 Que peut faire un neurone avec la fonction d’activation sigmoïde et D entrées ? ... xi xD Un image 100x100 pixels est un vecteur de 10000 composantes (D=10000) Classification des images en deux classes = classification des vecteurs en D dimensions en deux classes Un neurone avec D entrées (+ biais) peut classifier des données linéairement séparables dans D dimensions en deux classes La surface de séparation est un hyperplan • • • Plusieurs neurones postsynaptiques Plusieurs entrées Sans apprentissage 3 neurones / 2 entrées y0 y1 x0 = 1 x1 y2 x2 Classification : Si l’activité y0 est maximale - classe “rouge” y1 classe “verte” y2 classe “bleue” Bishop (1995) Neural networks for pattern recognition, Chapitre 3 K neurones / D entrées y0 ... yK K neurones avec D entrées (+biais) partage l’espace des données en K volumes convexes séparées par des hyperplans ... x0 = 1 x1 xD y w0 wi ... x0 = 1 ... xi xD On a compris que peut faire un réseau feed-forward (supposant que les poids synaptique sont bien choisis) Mais comment déterminer les poids corrects ? Apprentissage ! Perceptron avec apprentissage Apprentissage supervisé ● On a un ensemble de N exemples avec les étiquettes correspondantes (par ex. t=0 pour la première classe et t=1 pour la deuxième) : ! (1) ! (2) ! ( p) !(N ) x , x , …, x , …, x { {t (1) , t (2) , …, t ( p) , …, t ( N ) } y ! w } ! x ! ( p) ● On tire au hasard un exemple x ( p) ! ! ( p) = g(w ⋅ x ) ● On calcule la sortie ● On détermine l’erreur de classification E ( p) = (y ( p) −t y ( p) 2 ) t =1 rouge t=0 bleu ... ... Apprentissage supervisé Après la présentation de tous les N exemples, on calcule l’erreur totale : y ! w 1 1 ! ( p) E(w) = ∑ E = ∑ (y ( p) − t ( p) )2 2 p=1 2 p=1 N N L’ensemble des exemples étant fixe, l’erreur totale est une fonction des poids synaptiques. Pour cette raison elle est appelée fonctionerreur ! x t =1 rouge La fonction-erreur est une fonction de poids. Le minimum de la fonction d’erreur correspond aux poids optimales pour classification en deux classes t=0 bleu ... ... Apprentissage supervisé : fonction-erreur y ! w t =1 rouge ! x N 1 E(w1 ,w2 ) = ∑ (y( p) − t ( p) )2 2 p=1 y ( p) = 1 1+ e ! !( p ) − w⋅x Il existe beaucoup de méthodes pour trouver le minimum d’une fonction à plusieurs variables. La plus simple et intuitive est la méthode de gradient. t=0 bleu Apprentissage supervisé : descente du gradient Minimisation de la fonction-erreur : ● On commence par les poids aléatoires ● On suit le gradient négative de la fonctionerreur pour descendre au minimum ● En calculant analytiquement le gradient de E(w) on arrive (voir TD) à la règle suivante pour la mise à jour des poids!après la ( p) présentation d’un exemple x : où Δwi = −ηδ x δ = g'(a)(y 1 N ( p) ( p) 2 ! E(w) = ∑ (y − t ) 2 p=1 ( p) i ( p) −t ( p) ) est l’erreur delta (delta-error) et η ≪ 1 est le taux d’apprentissage La règle d’apprentissage si-dessus pour des réseaux à une couche s’appelle “delta rule” (anglais) Apprentissage supervisé : procédure 1. Choisir aléatoirement un exemple base des exemples 2. Calculer y ( p) ! ( p) x y de la ! ! ( p) = g(w ⋅ x ) 3. Calculer l’erreur delta δ = g'(a)(y ( p) − t ( p) ) 4. Mettre à jour les poids synaptiques selon la “règle delta” : !( p) ! Δw = −ηδ x 5. Répéter les étapes 1-4 jusqu’à ce que tous les exemples soient correctement classifiés (ou la performance ne s’améliore plus). ! w ! x ... ... Réseaux multicouches Réseau multicouche y0 yK yk Sorties ... ... wkj(2) z0 = 1 zj zH Neurones cachés (Hidden units) w (1) ji ... ... x0 = 1 xi Entrées xD D ⎛ (2) (2) (1) ⎞ yk = ∑ wkj z j = ∑ wkj g ⎜ ∑ w ji xi ⎟ ⎝ i=0 ⎠ j=0 j=0 H H Réseau multicouche y classe ‘bleu’ classe ‘rouge’ classe ‘bleu’ z0 = 1 z1 x0 = 1 z1 z2 z2 x1 Réseau multicouche y classe ‘bleu’ classe ‘rouge’ classe ‘bleu’ z0 = 1 z1 x0 = 1 z1 z2 x1 z2 Le neurone de sortie calcule la somme pondérée de sigmoïdes. Théorème : Combinaison linéaire des sigmoïdes peut approximer n’importe quelle fonction continue (la précision dépend du nombre des neurones cachés). Réseau multicouche y w (2) j z0 = 1 w (1) ji x0 = 1 x1 x2 Réseau multicouche - classification y0 yK yk ... ... wkj(2) Un réseau multicouche avec D entrées et K sorties peut séparer des données dans D dimensions en K classes avec les surfaces de séparation arbitraires z0 = 1 zj zH w (1) ji ... ... x0 = 1 xi xD Réseau de neurones feed-forward à deux (ou plus) couches de poids : “perceptron multicouche“ Réseau multicouche : régression non-linéaire y w (2) j z0 = 1 zj zH wi(1) x0 = 1 x1 Une combinaison linéaire des sigmoïdes peut approximer n’importe quelle fonction continue -> ce réseau peut effectuer une régression non-linéaire (la précision dépend du nombre des neurones cachés). Questions principales Que peut faire un réseau multicouche avec la fonction d’activation sigmoïde et des poids malléables ? 1. Séparer des données un plusieurs classes (la dimension dépend du nombre des neurones d’entrée). Les frontières de séparation sont des hyper-surfaces (classification automatique) 3. Approximer une fonction arbitraire dans plusieurs dimensions (régression non-linéaire) Réseau multicouche : apprentissage La même méthode de descente du gradient de la fonction erreur peut être utilisée pour des réseaux à plusieurs couches (voir TD). Le nom de cet algorithme est “rétropropagation d’erreur” (error backpropagation) Réseau multicouche : apprentissage 1. Choisir aléatoirement un exemple 2. Calculer !( p) x y y( p) 3. Calculer l’erreur delta pour la 2ème couche ( p) ( p) δ=y −t 4. Mettre à jour les poids synaptiques pour la 2ème couche Δw (2) = −ηδ z j j ! (1) ! z j = g w j ⋅ x sauf z0 = 1 où ( ) 5. Calculer l’erreur delta pour la 1ère couche (2) δ = g'(a )w j j j δ 6. Mettre à jour les poids pour la 1ère couche ! (1) ! ( p) Δw j = −ηδ j x w (2) j z0 = 1 zj zH w (1) ji ... ... x0 = 1 xi xD L’erreur delta se propage en arrière de la sortie vers les entrées (d’où le terme rétropropagation d’erreur) Cas d’étude I : Apprentissage supervisé dans le cervelet ● Cervelet joue le rôle principal dans le contrôle moteur (ajustement et contrôle du mouvement) Homme ● Exemple : réflexe vestibulaire - oculaire, ajustement d’une erreur de préhension, ajustement du mouvement orienté vers le but ● Cervelet est constitué d'une couche mince et continue de tissu nerveux, comprenant deux couches de neurones Rat Cas d’étude I : Apprentissage supervisé dans le cervelet Albus, J. S. (1971). 10, 25–61. Entrées proprioceptives Sortie (commande motrice) “Etiquettes” des classe à apprendre cellules Purkinje cellules granulaires Cas d’étude II: Cortex pariétal Homme ● planification du mouvement ● coordination sensorielle motrice ● transformation des coordonnées ● attention Position d’un objet dans le cadre de référence de la tête Position d’un objet dans le cadre de référence de la rétine rétine Rat 0° rétine 0° Afin de saisir l’objet qu’on voit, une transformation des coordonnées est nécessaire 0° Transformation des coordonnées dans le cortex pariétal Expérience chez les singes Trois types de neurones ont été observés : 1. Neurones qui encodent la position rétinienne du stimulus (21%) Zipser & Andersen (1988). A back-propagation programmed network that simulates response properties of a subset of posterior parietal neurons. Nature, 331, 679–684. Quel est le rôle des cellules les plus nombreuses (de type 3) ? 2. Neurones qui encodent la position des yeux (15%) 3. Neurones qui encodent les deux au même temps (57%) rétine Transformation des coordonnées dans le cortex pariétal Expérience chez les singes position dans le cadre de référence de la tête neurones caches Zipser & Andersen (1988). A back-propagation programmed network that simulates response properties of a subset of posterior parietal neurons. Nature, 331, 679–684. Quel est le rôle des cellules les plus nombreuses (de type 3) ? position rétinienne position des yeux Transformation des coordonnées dans le cortex pariétal Expérience chez les singes Nature, 1988, 331, 679–684. dans le modèle enregistrés chez le singe Zipser & Andersen (1988). A back-propagation programmed network that simulates response properties of a subset of posterior parietal neurons. Nature, 331, 679–684. Quel est le rôle des cellules les plus nombreuses (de type 3) ? Les activités des neurones cachés dans le modèle reproduisent bien les activités des neurones enregistrés expérimentalement Bibliographie ● Hertz, Krogh, Palmer, 1991. Introduction to the Theory of Neural Computation ● Bishop, 1995. Neural networks for pattern recognition ● MacKay, 2003. Information Theory, Inference, and Learning Algorithms