Loading...

Loading...

Une introduction aux SNN – Spiking Neural Networks

  • Publié le lundi 20 décembre 2021
  • temps de lecture 7 minutes

Dans le domaine de la Computer Vision industrielle, on entend de plus en plus parler des SNN. Ces réseaux de neurones se veulent plus efficaces, notamment sur le plan de leur consommation énergétique. Mais leur entrainement comme leur mise en œuvre sur le terrain ne sont pas si triviaux. Dans cet article, on décrypte la technologie.

Introduction

Les réseaux de neurones à impulsion (ou Spike/Spiking neural networks en anglais) sont une évolution des réseaux de neurones artificiels dans lesquels la transmission d’informations entre neurones reposent sur le comportement biologique naturel du neurone. Pour comprendre comment les neurones communiquent entre eux dans le cerveau, il faut s’intéresser à la notion de potentiel d’action.

Le potentiel d’action

Le potentiel d’action est un évènement court durant lequel le potentiel électrique d’un neurone augmente puis chute rapidement. Le schéma suivant montre les différents évènements qui se déroulent successivement lors d’un potentiel d’action.

Représentation du potentiel d’action

 

Les différents évènements sont les suivants :
1. Le neurone est en « resting state » avec un potentiel transmembranaire stable.
2. Le neurone reçoit des stimuli mais ceux-ci ne sont pas suffisants pour dépasser la valeur limite de potentiel à partir de laquelle la dépolarisation du neurone a lieu et le potentiel d’action est transmis à d’autres neurones ou autres cellules.
3. Les stimuli sont suffisamment importants pour dépasser la valeur limite de potentiel, la dépolarisation du neurone a lieu et le potentiel d’action émerge. Le flux électrique positif est diffusé aux autres neurones connectés.
4. À la suite du potentiel d’action, le neurone se repolarise.
5. Cette repolarisation entraine le potentiel du neurone à une valeur inférieure à celle de son « resting state ». La période durant laquelle le neurone revient à son « resting state » est appelée période réfractaire. Il est impossible développer un nouveau potentiel d’action durant la période réfractaire.

Il n’est pas nécessaire de s’attarder sur le fonctionnement biologique propre du neurone, simplement comprendre :
• qu’il suit une logique du tout ou rien
• que la notion de temps a une part importante dans son fonctionnement.

SNN

Les premiers modèles de neurones utilisés dans les SNN ont été développés dès les années 50, avec le modèle Hodgkin-Huxley. Depuis de nombreux modèles de neurones ont été ajoutés. Aujourd’hui, le plus utilisé est le modèle Leaky Integrate-and-Fire. Une équation différentielle permet de déterminer la valeur du potentiel du neurone. Lorsqu’il reçoit des stimuli, le potentiel augmente et si ce potentiel n’atteint pas la valeur de dépolarisation alors celui-ci diminue avec le temps. Si la limite est atteinte alors un potentiel d’action est émis.

Modèle de neurone Leaky integrate-and-fire

Les différences d’un SNN avec un ANN sont les suivantes :
- Contrairement aux ANN, les neurones utilisées dans les SNN ne se déclenchent pas à chaque propagation mais seulement lorsque leur valeur d’activation dépasse un niveau requis. Grâce à son caractère asynchrone, les SNN sont susceptibles de bien gérer les données temporelles.
- Les SNN ne reposent pas sur la descente de gradient stochastique et la rétropropagation. Il est donc difficile d’utiliser les méthodes d’entraînement supervisées utilisées pour les réseaux neuronaux classiques. Les méthodes d’entraînement se rapprochent plus de la neurobiologie que du Machine Learning.
- L’activation d’un potentiel d’action se base sur une somme et non une multiplication ce qui réduit fortement la capacité et le temps de calcul nécessaire pour la transmission d’information.
- Les neurones sont reliés par des synapses qui mettent en œuvre un mécanisme d'apprentissage inspiré de la biologie : il repose sur la plasticité fonction du temps d'occurrence des impulsions (STDP : Spike-timing-dependent plasticity, en anglais) , une règle mettant à jour les poids synaptiques en fonction des temps de spikes, et augmente le poids lorsqu'un neurone pré-synaptique envoie une impulsion un peu avant le neurone post-synaptique (de l'ordre de quelques millisecondes). Les SNN sont utilisés avec succès pour des apprentissages non supervisés.

Pourquoi utiliser les SNN ?

Lorsqu’on les compare aux ANN, l’utilisation des SNN semble peu intéressante en raison de l’impossibilité à procéder à des entraînements supervisés classiques. Les SNN promettent des améliorations de précision, de vitesse d’inférence et de consommation énergétique grâce à l’utilisation de puces neuromorphiques permettant de se rapprocher au plus proche du cerveau animal.

Puces neuromorphiques

Les puces neuromorphiques (ou NPU en anglais) sont des microprocesseurs conçus pour répliquer et accélérer un réseau de neurones artificiels grâce à la parallélisation de nombreux cœurs. Ces puces sont la suite logique du développement hardware dédié à l’IA. A titre de comparaison, les CPU dernières générations possèdent 16 cœurs, les GPU plus de 10 000, la puce neuromorphique Loihi 2 développée par Intel en possède plus d’un million.
Chaque cœur représente un neurone et permet une accélération du traitement car les informations transmises d’un neurone à l’autre sont 1 ou 0. Les calculs sont donc beaucoup plus simples. De plus, le caractère asynchrone des SNN permet à une grande partie de la puce de ne pas consommer d’énergie.
Des études menées par l’université de Waterloo sur la puce Loihi d’Intel ont montré les résultats suivants en termes de consommation pure et de scalabilité par rapport à la taille du réseau neuronal :

   

Comparaison de la consommation en énergie d’un SNN sur puce neuromorphique vs ANN sur GPU classique

 

La dimension de la puce Loihi 2 est de 30mm², elle peut donc être embarquée sur des devices très petit permettant le développement de l’IA at Edge.

Legendre Memory Units

En plus du développement hardware, les SNN profitent également des travaux effectués sur les algorithmes de type LMU (ou Legendre Memory Units). Les LMU sont des réseaux récurrents qui permettent de représenter l’information temporelle dans les signaux d’inputs.

Nengo

Afin de débuter avec les SNN, le plus simple est de se rendre sur le site https://www.nengo.ai/ et de commencer à utiliser leur interface afin d’en apprendre plus sur le fonctionnement des SNN et l’utilisation de la librairie.

Interface de Nengo

La librairie Python Nengo permet également d’entraîner des modèles de SNN. Les ANN classiques sont optimisés grâce à la descente de gradient et la rétropropagation grâce à l’utilisation de neurones utilisant des non-linéarités différenciables telles que les fonctions ReLU et sigmoïdes. Bien que ces neurones ne soient pas utilisables dans le cas des SNN, Nengo utilise une approximation des neurones de SNN lors de la phase d’entraînement du réseau et de réels neurones « spiking » lors de l’inférence.
Le tutoriel suivant sur la classification par un SNN du dataset MNIST est un excellent exemple d’utilisation de la librairie Nengo : https://www.nengo.ai/nengo-dl/examples/spiking-mnist.html . Il reprend pas à pas avec le code les différents éléments nécessaires à la construction du réseau avec notamment l’ajout de la temporalité dans les données d’entraînements et de tests :

Les résultats montrent que plus longtemps un réseau est utilisé pour une prédiction, meilleurs seront les résultats dans le cas de cette expérimentation :

 

Conclusion

Le développement hardware et algorithmique des SNN atteignent aujourd’hui une maturité qui rendront leur utilisation incontournable dans un futur très proche. Le fonctionnement des neurones qui incorporent la notion de temporalité et de potentiel résiduel les rendent plus puissants mais aussi plus imprédictibles.
Même s’ils sont majoritairement encore à l’état des recherches universitaires, les SNN sont prometteurs dans l’industrie et notamment la vision par ordinateur. On les imagine pour optimiser la précision des modèles, ce qui est nécessaire pour certains cas d’usage de pointe. Mais on les considère surtout pour leur frugalité énergétique et l’efficacité démultipliée des NPU qui les font tourner (Watt/neurones/mm²).
Aujourd’hui il y a deux freins à leur utilisation : l’accès au hardware et l’explicabilité du modèle entrainé. En effet, sans les mécanismes classiques d’entraînement supervisé (rétropropagation et descente de gradient) il est difficile d’expliquer l’apprentissage du modèle et l’optimiser le plus rapidement possible.

De notre côté, nous surveillons de très près cette technologie avec l’ambition de la mettre en œuvre prochainement.


Sources

Potentiel d’action : https://fr.wikipedia.org/wiki/Potentiel_d%27action
SNN : https://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones_%C3%A0_impulsions
STDP : https://en.wikipedia.org/wiki/Spike-timing-dependent_plasticity
Loihi2 : https://spectrum.ieee.org/neuromorphic-computing-with-lohi2
NPU : https://fr.wikipedia.org/wiki/Puce_d%27acc%C3%A9l%C3%A9ration_de_r%C3%A9seaux_de_neurones
LMU : https://proceedings.neurips.cc/paper/2019/file/952285b9b7e7a1be5aa7849f32ffff05-Paper.pdf
Nengo : https://www.nengo.ai/
Vidéo tutorial : https://www.youtube.com/watch?v=PeW-TN3P1hk

Newsletter du Blog Avanade

Restez informé au sujet de nos actualités

Partager cette page
Fermer
Modal window
Diminuer