Réseaux de neurones feed-forward et l`apprentissage supervisé

publicité
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
Téléchargement