Mise en place d’un neurone impulsionnel pour la détection de coïncidence.
Réseaux de neurones impulsionnels : vue d’ensemble
Les réseaux de neurones impulsionnels (RNI) sont considérés comme la 3ème génération de réseaux de neurones artificiels. Les neurones impulsionnels diffèrent des neurones artificiels classiques sur plusieurs points :
- Les données qu’ils traitent sont des impulsions : des matrices binaires de 0 et 1.
- Ils sont équipés d’une membrane qui possède un certain potentiel. Ce potentiel augmente lorsque que des impulsions sont reçues en entrée et diminue en fonction du temps.
- Leur fonction d’activation est discontinue. En effet pour s’activer et transmettre une impulsion aux prochaines cellules, le potentiel de leur membrane doit atteindre un certain seuil. Si tel est le cas, une impulsion est transmise aux prochains neurones, puis le potentiel de la membrane se réinitialise.
Ces neurones présentent donc de nombreux avantages. Premièrement ils sont plus proches des neurones biologiques. De plus, ils communiquent via des impulsions, ce qui les rend plus efficace en termes de coût de calcul. Par ailleurs, à travers leur membrane ils intègrent naturellement l’aspect temporel des données, ce qui pourrait en faire de bon candidat pour l’étude de données dynamiques. En revanche, ils présentent aussi des inconvénients notamment au niveau de l’apprentissage. En effet puisque leur fonction d’activation est discontinue, la descente de gradient est difficilement applicable à ces réseaux.
Neurones biologiques
Un neurone se compose d’un corps cellulaire, d’un axone et de dendrites. On appelle synapse la zone d’échange entre deux neurones. Les neurones situés en amont de la synapse sont qualifiés de présynaptiques, tandis que ceux en sortie sont dits postsynaptiques.
Plaçons-nous au niveau d’une synapse. Une information électrique arrive le long de l’axone d’un neurone présynaptique. Arrivé au bout de l’axone, le message électrique excite des vésicules qui relâchent des neurotransmetteurs dans la synapse. Ces neurotransmetteurs vont traverser la synapse et venir se lier sur des récepteurs placés sur les dendrites du neurone postsynaptique. Ces récepteurs vont ensuite récupérer ce message chimique, pour le transformer en message électrique. Puis, dans le corps cellulaire les messages électriques récupérés par tous les dendrites sont additionnés et intégré sous forme de potentiel. Quand ce potentiel dépasse un certain seuil, la membrane du corps cellulaire se décharge et une impulsion électrique est émise. Cette impulsion est véhiculée le long de l’axone jusqu’à arriver aux synapses entre le neurone actuel et les prochains.
Un modèle : le neurone impulsionnel LIF
Un neurone impulsionnel LIF (Leaky Integrate and Fire) dispose d’une membrane dont le potentiel U à chaque instant t est régi par cette équation :
U représente le potentiel. 𝛽 ∈ ℝ le facteur de décroissance de la membrane. X ∈ {0,1}N les signaux des N synapses en entrée. W ∈ ℝN les poids synaptiques. S ∈ {0,1} la fonction d’activation. Uthr représente le seuil de la membrane.
Dans cette modélisation, le temps est discrétisé. A chaque pas de temps, le potentiel est actualisé : Il décroît d’un facteur 𝛽 et augmente en fonction des impulsions reçues, modulées par les poids synaptiques : W.X. Ensuite un test est effectué, si le potentiel est supérieur au seuil Uthr, une impulsion est émise, puis le potentiel est réinitialisé à sa valeur de repos.
La STDP comme fonction d’apprentissage
Pour entraîner les neurones impulsionnels, on peut utiliser l’algorithme de Spike-Timing-Dependent Plasticity (STDP). Ce mécanisme d’apprentissage non supervisé est une règle locale directement inspiré du postulat de Hebb « Neurons that fire together, wire together ».
Considérons une paire d’impulsions présynaptique et postsynaptique (Ipre, Ipost). Comme il s’agit de signaux temporels, il existe deux scénarios distincts: soit Ipre précède Ipost et a donc contribué à générer Ipost, ce qui suggère une connexion légitime entre les deux neurones. Soit Ipost précède Ipre et cela signifie qu’Ipost n’a pas eu besoin de l’impulsion Ipre pour être générée, ce qui laisse penser que la connexion entre ces deux neurones n’a pas lieu d’être.
Finalement, l’algorithme de STDP ajuste les poids synaptiques en fonction de ces 2 scénarios. Dans un cas elle renforce la connexion (Potentiation), dans l’autre elle la diminue (Depression). La potentiation (ou la depression) des poids sera proportionnelle à l’avance (ou au retard) de l’impulsion Ipre par rapport à Ipost. Ces ajustements dépendent d’une part des constantes de temps τdep et τpost qui vont indirectement définir la taille de la fenêtre temporelle considérée. Et d’autre part ils dépendent des facteurs A+ et A– qui peuvent être interprétées comme des learning rate.
Un exemple d’utilisation : La détection de coïncidence
Les travaux présentés dans cette section sont une reproduction des expérimentations de T. Masquelier, R. Guyonneau, S. J. Thorpe; Spike Timing Dependent Plasticity Finds the Start of Repeating Patterns in Continuous Spike Trains
Génération des données :
Pour simuler l’activité cérébrale, on génère aléatoirement des impulsions pour N neurones présynaptiques pendant 40000 millisecondes. La moitié de ces neurones s’activent uniquement aléatoirement. L’autre moitié se comporte aussi la plupart du temps aléatoirement, mais régulièrement on les force à s’activer selon un motif particulier. Ce motif est choisi en copiant une portion de 50ms de l’activité de ces neurones pendant leur fonctionnement aléatoire, qu’on vient ensuite insérer à plusieurs endroits dans les données. Voici une représentation graphique de ces données :
Apprentissage :
Ces données sont ensuite analysées par un neurone impulsionnel muni de la STDP. Regardons son comportement pendant l’apprentissage. En début d’apprentissage, le neurone n’est pas sélectif et s’active peut importe qu’on lui montre le motif ou non. A chaque nouvelle impulsion émise, le neurone ajuste ses poids en utilisant la règle de STDP. Ce qui lui permet en fin d’apprentissage de devenir sélectif. On voit que le neurone émet une impulsion uniquement lorsqu’on lui présente le motif mais plus en dehors.
Si on regarde l’évolution des poids synaptiques au cours de l’apprentissage on distingue plusieurs comportements. Tout d’abord on peut observer que pendant les 8000 premières millisecondes les courbes sont souvent actualisées. En effet pendant cette période, le neurone s’active très souvent car la somme des signaux qu’il reçoit en entrée est trop forte relativement au seuil de sa membrane. Mais à chaque activation, le neurone ajuste ses poids synaptiques en appliquant la STDP. Ceci résulte en moyenne avec une baisse des poids synaptiques car on a choisi les paramètres Apot, Adep et τpot, τdep tels que Apot.τpot < Adep.τdep.
Après 8000ms, la fréquence d’activation du neurone diminue nettement et ses activations deviennent plus corrélées avec la présence du motif : le neurone devient sélectif On voit alors émerger deux comportements dans les courbes d’évolution des poids. Premièrement, les poids synaptiques des neurones qui s’activent uniquement aléatoirement (courbes bleues) continuent de décroître vers 0. Pour les neurones impliqués dans le motif (courbes rouges), certains augmentent jusqu’à atteindre la valeur seuil de 1. Tandis que d’autres décroissent plus rapidement vers 0. On aurait pu s’attendre à ce que le poids de tous les neurones impliqués dans le motif augmente. Pour comprendre il faut regarder plus finement l’activation du neurone en fin d’apprentissage. Notamment on s’aperçoit qu’il s’active avec un léger délai après le début motif. En effet, il lui faut un petit laps de temps pour que le neurone reconnaisse qu’il s’agit bien du motif et que l’activation ordonnée de ces neurones n’est pas le fruit du hasard. Il en résulte que les neurones présynaptiques s’activant en début de motif vont être potentialisés alors que ceux qui s’activent juste après que le neurone postsynaptique ait détecté le motif vont être pénalisés. Pour le visualiser, classons les neurones présynaptiques en fonction de leur ordre d’arrivée dans le motif et observons l’évolution de leur poids.
Sur ce graphique, les 1000 neurones impliqués dans le motif sont classés de 0 à 1000 en fonction de leur première apparition dans le motif. Comme le motif dure 50ms leur première apparition varie de 0 à 49. De plus on attribue une couleur à cette valeur allant du violet au jaune. L’épaisseur des points dépend directement du poids synaptique. Un point bien visible a un poids proche de 1 alors qu’un point invisible indique un poids synaptique proche de 0.
On voit alors qu’au cours de l’apprentissage, les poids synaptiques des premiers neurones (0 à 400 environ) augmentent. Leur couleur nous indique que cela correspond environ aux neurones dont la première apparition se si situe avant 7ms environ. Les neurones juste au dessus sont presque entièrement effacés. Les neurones qui apparaissent dans la fin du motif sont aussi pénalisés mais moins fortement. Comme attendu en appliquant la STDP.