Réseau de neurones à impulsions — Wikipédia
Type | Algorithme de partitionnement de données (d), réseau de neurones artificiels |
---|
Les réseaux de neurones à impulsions (SNNs : Spiking Neural Networks, en anglais) sont un raffinement des réseaux de neurones artificiels (ANNs : Artificial Neural Networks, en anglais) où l’échange entre neurones repose sur l’intégration des impulsions et la redescente de l’activation, à l’instar des neurones naturels. L’encodage est donc temporel et binaire.
Le caractère binaire pose une difficulté de continuité au sens mathématique (cela empêche notamment l’utilisation des techniques de rétropropagation des coefficients - telle que la descente de gradient - utilisées classiquement dans les méthodes d'apprentissage). L’encodage en temps pose de même des problèmes d’interprétation.
Ces inconvénients sont aussi des avantages dans une perspective spatio-temporelle : l’intégration limite l’activation aux neurones voisins (espace) et tolère la perte d’information (temps).
Ces éléments rendent les SNNs théoriquement plus puissants que d’autres types d’ANNs globalement dérivés de l'algorithme du perceptron. Les difficultés d’implémentation matérielle et de méthode d’apprentissage semblent toutefois des freins à l’émergence des SNNs; l'industrie présente cependant des solutions commerciales depuis 2017[1],[2] avec diverses annonces évoquant un intérêt pratique en termes de complexité adressable et d'efficacité énergétique[3],[4],[5].
Historique
[modifier | modifier le code]L'idée de s'inspirer des processus biologiques du cerveau pour créer un modèle informatique est apparue assez tôt dans l'histoire de l'informatique. Wolfgang Maass identifie trois générations de réseau de neurones en se basant sur le type de modèle de neurones[6].
Modèle de neurone sans impulsion
[modifier | modifier le code]Premier réseaux
[modifier | modifier le code]L'un des premiers modèle de réseaux de neurones est le perceptron proposé par Frank Rosenblatt en 1958[7]. Dans sa version la plus simplifiée, le perceptron est mono-couche et n'a qu'une seule sortie à laquelle toutes les entrées sont connectées. De plus, c'est un classifieur binaire, c'est-à-dire que les entrées ainsi que la sortie sont de type booléen.
Cependant, Minsky et Papert montrèrent des limitations théoriques du perceptron[8], notamment sur l'impossibilité de traiter des problèmes non-linéaires (par exemple, le cas de la fonction XOR). Ils généralisèrent implicitement ce constat à tous les modèles d'ANNs. De ce fait, une partie de la communauté IA les délaissa au profit d'autres techniques.
Neurone formel et deuxième génération
[modifier | modifier le code]La deuxième génération de réseaux de neurones est basée sur des unités neuronales qui utilisent une fonction d'activation réelle. Elle prend en paramètre une somme pondérée des entrées et génère un ensemble continu de valeurs de sortie possibles. Cette fonction doit avoir certaines propriétés, l'une d'entre elles est la dérivabilité. C'est une condition nécessaire si on veut que l'algorithme d'apprentissage soit celui de la descente du gradient, qui est le plus utilisé à l'heure actuelle. Cet algorithme cherche à minimiser l'erreur entre la prédiction déterminée par le réseau et la valeur réellement attendue. Pour cela, la méthode cherche à déterminer la correction en se basant sur la sortie et la dérivée de la fonction d'activation des neurones. Cette correction est alors appliquée sur les poids synaptiques, ceux qui contribuent à engendrer une erreur importante se verront modifiés de manière plus significative que les poids qui ont engendré une petite erreur.
Les fonctions d'activation les plus communes sont la fonction ReLU (la plus populaire à l'heure actuelle), la fonction sigmoïde ainsi que la fonction identité.
Ces réseaux de deuxième génération sont également plus réalistes d'un point de vue biologique que la première génération, en ce sens que la sortie d'une unité peut être interprétée comme une représentation de la fréquence ou du taux d'émission d'impulsions à un instant t d'un neurone biologique (codage neuronal : codage fréquentiel)[9],[10].
Les architectures profondes adoptées à l'heure actuelle qui contribuent au succès du machine learning utilisent ce type de neurones. Ces approches ont notamment permis des progrès importants et rapides dans les domaines de l'analyse du signal sonore ou visuel et particulièrement sur la reconnaissance visuelle.
On peut citer par exemple le challenge ImageNet de 2012 qui a propulsé ces solutions en mettant en avant des résultats exceptionnels (de 25% pour les meilleures solutions en 2011 à 16% pour les premières approches ANNs de 2012)[11]. Pour autant, des limites dans ce modèle existent, la principale d'entre elles est le nombre d'exemples nécessaires lors de l'apprentissage. Plus le problème est complexe et plus la quantité de données nécessaires est importante, si bien qu'il existe des jeux de données de plusieurs millions d'images dont plus de la moitié est annotée manuellement[12]. Il faut en moyenne deux à trois semaines avec 8 cartes graphiques (GPU) pour faire converger le réseau entraînant des coûts énergétiques importants[13].
L'essor des réseaux à impulsions
[modifier | modifier le code]D'un point de vue conceptuel, les réseaux impulsionnels (SNNs) constituent la génération qui est la plus proche du modèle biologique. Les neurones reçoivent et émettent, cette fois-ci, une suite d'impulsions (spike, en anglais) chronologiquement ordonnée[14], ce qui induit une notion temporelle en plus. Par contre le modèle ne prend pas en compte l'amplitude et la durée de l'impulsion, c'est surtout le moment où celle-ci a été émise qui est défini comme pertinent. L'état d'un neurone est décrit par son potentiel, qui est modélisé par une variable dynamique. Le neurone fonctionne comme un intégrateur fuyant, c'est-à-dire un composant qui augmente son potentiel lorsqu'il reçoit des impulsions en les accumulant au cours du temps et qui diminue si celui-ci n'est pas stimulé. De plus, lorsqu'une impulsion est émise, on prend en compte le concept de période réfractaire qui permet un réglage sur le pas de temps minimal entre deux impulsions.
L'une des premières motivations ayant poussé les chercheurs à développer ce modèle est que l'on a observé que l'information pertinente résidait dans l'instant d'émission d'impulsions plutôt que dans la fréquence. C'est pourquoi, contrairement aux réseaux de neurones de seconde génération qui sont largement utilisés, les neurones à impulsions ne se déclenchent pas à chaque cycle de propagation, mais seulement lorsque leur niveau d'activation atteint une valeur seuil spécifique[14]. Par conséquent, le réseau est asynchrone et susceptible de bien gérer les données temporelles telles que la vidéo.
Ce modèle est donc plus généraliste car il peut prendre en compte les deux encodages : fréquentiel et temporel. Le codage fréquentiel est déterminé par le nombre d'impulsions dans une période donnée d'un neurone, on revient dans une configuration plus classique comme pour les neurones de seconde génération. Le codage temporel est déterminé par le moment d'émission d'une impulsion, il n y a pas d'équivalent avec la seconde génération, les SNNs sont donc un modèle plus général. Des travaux[6] ont montré que l'on pouvait émuler les principaux modèles classiques (MLP, etc.) avec des SNNs.
Les SNNs ne reposent pas sur la descente de gradient stochastique et la rétropropagation. Au lieu de cela, 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). Par conséquent, le processus d'apprentissage n'est intrinsèquement pas supervisé, et le SNN peut être utilisé avec succès pour détecter des modèles de données de manière non supervisée.
Malgré tout, plusieurs travaux essayent de reproduire les mécanismes faisant le succès des réseaux profonds. L'apprentissage supervisé par l'algorithme de rétropropagation[15], les architectures profondes de types convolutifs[16] sont autant d'aspects qui suscitent un grand intérêt.
Les SNNs sont utilisés depuis longtemps dans la communauté neuroscientifique comme modèle fiable pour simuler avec précision la biologie et comprendre les mécanismes du cerveau[9].
En outre, les SNNs sont de plus en plus utilisés dans le traitement des données en raison de leur mise en œuvre sur du matériel à faible consommation d'énergie[17],[18].
Les SNNs ont été utilisés dans des tâches liées à la vision, notamment, pour de la reconnaissances d'objets. Concrètement, il existe des travaux sur la classification d'image[19],[20], des travaux sur la reconnaissance d'action en temps réel[21] par exemple.
Simulation de réseaux de neurones à impulsions
[modifier | modifier le code]Ces programmes simulent des modèles neuronaux complexes avec un haut niveau de détail et de précision, en utilisant des modèles neuronaux[22] :
- GENESIS (le système de simulation GEneral NEural SImulation System[23]) - développé dans le laboratoire de James Bower à Caltech;
- NEURON - principalement développé par Michael Hines, John W. Moore et Ted Carnevale à l'université Yale et l'université Duke;
- Brian - développé par Romain Brette et Dan Goodman à l'École normale supérieure ;
- NEST - développé par l'initiative NEST ;
- BindsNET - développé par le laboratoire Biologically Inspired Neural and Dynamical Systems (BINDS) de l'université du Massachusetts à Amherst[24].
- SpykeTorch - un framework basé sur PyTorch optimisé spécifiquement pour les SNNs convolutifs (CSNNs) avec au plus une impulsion par neurone. Fonctionne sur les GPU[25].
- N2D2 - un framework développée par le CEA LETI permettant l’entraînement de Réseaux de Neurones Artificiels par Rétropropagation, la conversion de ses réseaux vers le domaine impulsionnel, ainsi que l’entraînement de Réseaux de Neurones à Impulsions par la règle d’apprentissage impulsionnelle non-supervisée STDP. Le framework permet également l’inférence dans les domaines formels (classique) et impulsionnels[26].
- SpikingJelly - un framework permettant l’entraînement de Réseaux de Neurones à Impulsions par la méthode de « Surrogate Gradient Learning », une variante de la Rétropropagation du gradient adaptée aux Réseaux Récurrents (Rétropropagation Temporalisée) permise par une approximation de la fonction de seuillage des neurones impulsionnels par une fonction Sigmoïde. Le framework permet l’inférence dans le domaine impulsionnel, ainsi que l’accélération de l’entraînement et de l’inférence sur GPU[27].
Processeurs neuromorphiques
[modifier | modifier le code]Un processeur neuromorphique (emprunté à l'anglais neural processing unit, NPU) - ou processeur neuronal est un processeur dont l'architecture est basée sur le fonctionnement des réseaux de neurones biologiques. Ainsi, ces processeurs sont constitués de plusieurs neurones artificiels physiques dont le comportement suit un modèle de neurone.
Le tableau suivant résume les réalisations existantes :
Puce | Apprentissage en direct | Signal | Gravure | Concepteur | Densité d'intégration | Performance clé | Article initial | ||
---|---|---|---|---|---|---|---|---|---|
neurones | synapses | Comportement de Izhikevich | Énergie par opération | ||||||
HICANN | STDP | Signal mixe | 180nm CMOS | 512 | 112k | 20 | [30] | ||
BrainScales[31] | Signal mixe au niveau du wafer | 180nm CMOS | Human Brain project | 180K par wafer | 40M par wafer | ||||
Neurogrid[32] | Non | Signal mixe | 28nm CMOS | Université Stanford | 4096 neurones | 64K | [33] | ||
ROLLS | SDSP | Signal mixe | 180nm CMOS | 256 | 128k | 20 | [34] | ||
DYNAP-SE[35],[36] | Non | Signal mixe | 180nm CMOS | Institut de neuro-informatique de Zürich | 1024 | 64K | 20 | [35] | |
SpiNNaker[37] | Programmable | logique | 130nm CMOS | Université de Manchester | 1K neurones par cœur, 1M cœur | - | Programmable | [38] | |
TrueNorth[39] | Non | logique | 28nm CMOS | IBM | 1M | 256M | 11 | [40] | |
Loihi[41] | Programmable | logique | 14nm CMOS | Intel | 130k | 130M | 6 | [42] | |
ODIN[29],[43] | SDSP | logique | 28nm CMOS | Université catholique de Louvain | 256 | 64K | 20 | [43] | |
Akida[44] | Brainchip | 1,2M | 10M | ||||||
Loihi 2 [45] | Programmable | Intel | 1M | 120M |
Voir aussi
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Notes et références
[modifier | modifier le code]- (en) Peter Clarke, « BrainChip launches spiking neural network SoC »,
- (en) « BrainChip »
- « Le CEA-Leti intègre un SNN sur une puce »,
- (en) Alexandre Valentian et al., « Fully Integrated Spiking Neural Network with Analog Neurons and RRAM Synapses », 2019 IEEE International Electron Devices Meeting (IEDM), IEEE, 7-11 décembre 2019 (DOI 10.1109/IEDM19573.2019.8993431, lire en ligne)
- (en) « Intel Scales Neuromorphic Research System to 100 Million Neurons »,
- (en) Wolfgang Maass, « Networks of spiking neurons: The third generation of neural network models », Neural Networks, vol. 10, no 9, , p. 1659–1671 (ISSN 0893-6080, DOI 10.1016/S0893-6080(97)00011-7)
- (en) Frank Rosenblatt, « The perceptron: A probabilistic model for information storage and organization in the brain », Psychological Review, vol. 10, no 9, , p. 386–408 (DOI 10.1037/h0042519)
- (en) Marvin Minsky et Seymour Papert, Perceptrons, , 258 p. (ISBN 0-262-13043-2)
- (en) Hélène Paugam-Moisy et Sander Bohte, « Computing with Spiking Neuron Networks », Handbook of Natural Computing, , p. 335–376 (lire en ligne)
- Hélène Paugam-Moisy, « Réseaux de neurones temporels :dynamique et apprentissage », (consulté le )
- (en) Martin Robbins, « Does an AI need to make love to Rembrandt's girlfriend to make art? », The Guardian, (lire en ligne, consulté le )
- (en) Mohammad H. Mahoor, « AffectNet »
- (en) Alex Krizhevsky et al., « Imagenet classification with deep convolutional neural networks », NIPS, (lire en ligne)
- (en) Filip Ponulak et Andrzej Kasinski, « Introduction to spiking neural networks: Information processing, learning and applications », Acta neurobiologiae experimentalis, vol. 70, no 4, , p. 409–433 (lire en ligne)
- (en) Jun Haeng Lee, Tobi Delbruck et Michael Pfeiffer, « Training deep spiking neural networks using backpropagation », Frontiers in neuroscience, vol. 10, , p. 508 (lire en ligne)
- (en) Amirhossein Tavanaei et al., « Deep Learning in Spiking Neural Networks », Neural networks, vol. 111, , p. 47-63 (DOI 10.1016/j.neunet.2018.12.002, lire en ligne)
- (en) Paul A Merolla et al., « A million spiking-neuron integrated circuit with a scalable communication network and interface », Science, vol. 345, , p. 668–673 (DOI 10.1126/science.1254642, lire en ligne)
- (en) Ilias Sourikopoulos et al., « A 4-fJ/spike artificial neuron in 65 nm CMOS technology », Frontiers in neuroscience, vol. 11, , p. 123 (DOI 10.3389/fnins.2017.00123, lire en ligne)
- (en) Timothée Masquelier et al., « Unsupervised learning of visual features through spike timing dependent plasticity », PLoS computational biology, vol. 3, , e31 (DOI 10.1371/journal.pcbi.0030031, lire en ligne)
- (en) Pierre Falez et al., « Unsupervised Visual Feature Learning with Spike-timing-dependent Plasticity: How Far are we from Traditional Feature Learning Approaches? », Pattern Recognition, vol. 93, , p. 418-429 (DOI 10.1016/j.patcog.2019.04.016, lire en ligne)
- (en) Arnon Amir et al. « IBM Research demonstrates event-based gesture recognition using a brain-inspired chip » () (lire en ligne)
—Computer Vision and Pattern Recognition - L. F. Abbott et Sacha B. Nelson, « Synaptic plasticity: taming the beast », Nature Neuroscience, vol. 3, no S11, , p. 1178-1183 (PMID 11127835, DOI 10.1038/81453, S2CID 2048100)
- A.F. Atiya et A.G. Parlos, « Nouveaux résultats sur la formation des réseaux récurrents : unifier les algorithmes et accélérer la convergence », IEEE Transactions on Neural Networks, vol. 11, no 3, , p. 697-709 (PMID 18249797, DOI 10.1109/72.846741)
- « Hananel-Hazan/bindsnet : Simulation de réseaux de neurones impulsionnels (SNNs) à l'aide de PyTorch. »,
- Milad Mozafari, Mohammad Ganjtabesh, Abbas Nowzari-Dalini et Timothée Masquelier, « SpykeTorch: Efficient Simulation of Convolutional Spiking Neural Networks With at Most One Spike per Neuron », Frontiers in Neuroscience, vol. 13, , p. 625 (PMID 31354403, PMCID 6640212, DOI 10.3389/fnins.2019.00625 , arXiv 1903.02440)
- CEA LIST, « N2D2, première plateforme européenne de deep learning en open source »,
- (en) W. Fang, « Deep Residual Learning in Spiking Neural Networks », NeurIPS, (lire en ligne)
- Bipin Rajendran, Abu Sebastian, Michael Schmuker et Narayan Srinivasa, « Low-Power Neuromorphic Hardware for Signal Processing Applications: A Review of Architectural and System-Level Design Approaches », IEEE Signal Processing Magazine, vol. 36, no 6, , p. 97–110 (ISSN 1558-0792, DOI 10.1109/MSP.2019.2933719, lire en ligne, consulté le )
- (en) « ODIN/doc at master · ChFrenkel/ODIN », sur GitHub (consulté le )
- Johannes Schemmel, Daniel Brüderle, Andreas Grübl et Matthias Hock, « A wafer-scale neuromorphic hardware system for large-scale neural modeling », 2010 IEEE International Symposium on Circuits and Systems (ISCAS), , p. 1947–1950 (DOI 10.1109/ISCAS.2010.5536970, lire en ligne, consulté le )
- « BrainScales BrainScaleS today (2020-2023) », sur brainscales.kip.uni-heidelberg.de (consulté le )
- « The Solution », sur web.stanford.edu (consulté le )
- Ben Varkey Benjamin, Peiran Gao, Emmett McQuinn et Swadesh Choudhary, « Neurogrid: A Mixed-Analog-Digital Multichip System for Large-Scale Neural Simulations », Proceedings of the IEEE, vol. 102, no 5, , p. 699–716 (ISSN 1558-2256, DOI 10.1109/JPROC.2014.2313565, lire en ligne, consulté le )
- Ning Qiao, Hesham Mostafa, Federico Corradi et Marc Osswald, « A reconfigurable on-line learning spiking neuromorphic processor comprising 256 neurons and 128K synapses », Frontiers in Neuroscience, vol. 9, , p. 141 (ISSN 1662-453X, DOI 10.3389/fnins.2015.00141, lire en ligne, consulté le )
- (en) Saber Moradi, Ning Qiao, Fabio Stefanini et Giacomo Indiveri, « A Scalable Multicore Architecture With Heterogeneous Memory Structures for Dynamic Neuromorphic Asynchronous Processors (DYNAPs) », IEEE Transactions on Biomedical Circuits and Systems, vol. 12, no 1, , p. 106–122 (ISSN 1940-9990, DOI 10.1109/TBCAS.2017.2759700, lire en ligne, consulté le )
- (en) « The Dynap-se chip », sur www.ini.uzh.ch (consulté le )
- « Research Groups: APT - Advanced Processor Technologies (School of Computer Science - The University of Manchester) », sur apt.cs.manchester.ac.uk (consulté le )
- Eustace Painkras, Luis A. Plana, Jim Garside et Steve Temple, « SpiNNaker: A 1-W 18-Core System-on-Chip for Massively-Parallel Neural Network Simulation », IEEE Journal of Solid-State Circuits, vol. 48, no 8, , p. 1943–1953 (ISSN 1558-173X, DOI 10.1109/JSSC.2013.2259038, lire en ligne, consulté le )
- (en) « IBM Research: Brain-inspired Chip », sur www.research.ibm.com (consulté le )
- Filipp Akopyan, Jun Sawada, Andrew Cassidy et Rodrigo Alvarez-Icaza, « TrueNorth: Design and Tool Flow of a 65 mW 1 Million Neuron Programmable Neurosynaptic Chip », IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 34, no 10, , p. 1537–1557 (ISSN 1937-4151, DOI 10.1109/TCAD.2015.2474396, lire en ligne, consulté le )
- (en) Intel Labs have more in common with human cognition than with conventional computer logic, « Neuromorphic Computing - Next Generation of AI », sur Intel (consulté le )
- Mike Davies, Narayan Srinivasa, Tsung-Han Lin et Gautham Chinya, « Loihi: A Neuromorphic Manycore Processor with On-Chip Learning », IEEE Micro, vol. 38, no 1, , p. 82–99 (ISSN 1937-4143, DOI 10.1109/MM.2018.112130359, lire en ligne, consulté le )
- Charlotte Frenkel, Martin Lefebvre, Jean-Didier Legat et David Bol, « A 0.086-mm$^2$ 12.7-pJ/SOP 64k-Synapse 256-Neuron Online-Learning Digital Spiking Neuromorphic Processor in 28-nm CMOS », IEEE Transactions on Biomedical Circuits and Systems, vol. 13, no 1, , p. 145–158 (ISSN 1940-9990, DOI 10.1109/TBCAS.2018.2880425, lire en ligne, consulté le )
- (en-US) admin, « What Is the Akida Event Domain Neural Processor? », sur BrainChip, (consulté le )
- (en-US) Open Neuromorphic, « Loihi 2 - Intel », sur open-neuromorphic.org (consulté le )