Utilisateur:Zerocrowsky/Brouillon
Les Réseaux de neurones à impulsions (SNN: Spike Neural Networks, en anglais) sont un raffinement des Réseaux de Neurones Artificiels (ANN: Artificial Neural Network, 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 - tel 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 SNN théoriquement plus puissants que d’autres types d’ANN 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 SNN; l'industrie présente cependant des solutions commerciales depuis 2017[1],[2] avec diverses annonces évoquant un intérêt pratique en terme de complexité adressable et d'efficacité énergétique[3],[4],[5].
Évolution 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. D'après Wolfgang Maass [6], on peut identifier 3 générations de réseau de neurones. Cette classification se base en grande partie sur le type de modèle de neurones.
Première génération
[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.
Des architectures plus complexes peuvent utiliser ce type de neurone comme la version multi-couches du perceptron (MLP : Multiple Layer Perceptron en anglais).
Parallèlement, les mathématiciens tentaient de démontrer que tout raisonnement pouvait se formaliser par des combinaisons complexes de règles logiques. Les neurones, étant des unités élémentaires, les assembler dans un réseau, contenant un grand nombre d'entre eux, provoquerait l'émergence de raisonnement complexe intelligent. Cette pensée se résume par : neurones → logique → raisonnement → intelligence.
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'ANN. De ce fait, une partie de la communauté IA les délaissa au profit d'autres techniques.
Deuxième génération
[modifier | modifier le code]La deuxième génération d'ANN 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 perceptrons et plus généralement les architectures profondes adoptées à l'heure actuelle et 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 ANN de 2012)[11]. De plus, il a été montré, que les limitations théoriques mentionnées plus haut, sur les problèmes non-linéaires, pouvait être palliées avec des architectures profondes utilisant la rétropropagation du gradient comme règle d'apprentissage [12]. En effet, les couches cachées représentent une représentation intermédiaire des données, celle-ci supprimant cette non-linéarité, dans le cas où le réseau converge.
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 datasets de plusieurs millions d'images dont plus de la moitié est annotée manuellement[13]. Une autre limite est la ressource computationnelle, en se référant à des architectures profondes classiques comme AlexNet[14], on se retrouve avec 62 378 344 de paramètres à optimiser lors d'un apprentissage. 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 [15].
Troisième génération
[modifier | modifier le code]D'un point de vue conceptuel, cette génération est la plus proche du modèle biologique, ce sont les réseaux impulsionnels (SNN). Les neurones reçoivent et émettent, cette fois-ci, une suite d'impulsions (spike, en anglais) chronologiquement ordonnée[16], 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 impulsions 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 spikes.
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 des spikes 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 à spike ne se déclenchent pas à chaque cycle de propagation, mais seulement lorsque leur niveau d'activation atteint une valeur seuil spécifique[16]. 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 SNN 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 SNN.
Les SNN 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 à jours 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 [17], les architectures profondes de types convolutifs [18] sont autant d'aspects qui suscitent un grand intérêt.
Les SNN 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 SNN sont de plus en plus utilisés dans le traitement des données en raison de leur mise en oeuvre sur du matériel à faible consommation d'énergie (circuits neuromorphique) [19],[20].
Les SNN 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[21],[22], des travaux sur la reconnaissance d'action en temps réel[23] par exemple.
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 réseau de neurones à impulsions 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) Paugam-Moisy et 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) David E Rumelhart, Geoffrey E Hinton et Ronald J Williams, « Learning representations by back-propagating errors », Nature, vol. 323, , p. 533-536 (DOI 10.1038/323533a0)
- (en) Mohammad H. Mahoor, « AffectNet »
- « AlexNet »
- (en) Alex Krizhevsky et et al., « Imagenet classification with deep convolutional neural networks », NIPS, (lire en ligne)
- (en) Ponulak et 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) Lee, Delbruck et Pfeiffer, « Training deep spiking neural networks using backpropagation », Frontiers in neuroscience, vol. 10, , p. 508 (lire en ligne)
- (en) Tavanaei et 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) Merolla et 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) Sourikopoulos et 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) Masquelier et 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) Falez et 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) Amir et et al. « IBM Research demonstrates event-based gesture recognition using a brain-inspired chip » () (lire en ligne)
—Computer Vision and Pattern Recognition
Catégorie:Apprentissage automatique Catégorie:Réseau de neurones artificiels