FR3087560A1 - Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels - Google Patents

Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels Download PDF

Info

Publication number
FR3087560A1
FR3087560A1 FR1859760A FR1859760A FR3087560A1 FR 3087560 A1 FR3087560 A1 FR 3087560A1 FR 1859760 A FR1859760 A FR 1859760A FR 1859760 A FR1859760 A FR 1859760A FR 3087560 A1 FR3087560 A1 FR 3087560A1
Authority
FR
France
Prior art keywords
neuron
layer
error
phase
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1859760A
Other languages
English (en)
Inventor
Johannes Thiele
Olivier Bichler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1859760A priority Critical patent/FR3087560A1/fr
Priority to JP2021520563A priority patent/JP7433307B2/ja
Priority to US17/287,277 priority patent/US20210397968A1/en
Priority to EP19787001.7A priority patent/EP3871153A1/fr
Priority to PCT/EP2019/078669 priority patent/WO2020083880A1/fr
Publication of FR3087560A1 publication Critical patent/FR3087560A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)

Abstract

L'invention propose une nouvelle implémentation d'un algorithme de rétro-propagation d'erreurs qui est adaptée aux contraintes matérielles d'un dispositif implémentant un réseau de neurones impulsionnels. L'invention utilise, notamment, un codage binaire ou ternaire des erreurs calculées lors de la phase de rétro-propagation pour adapter sa mise en œuvre aux contraintes du réseau et ainsi éviter le recours à des opérateurs de multiplication de nombres flottants. Plus généralement l'invention propose une adaptation globale de l'algorithme de rétro-propagation aux contraintes spécifiques d'un réseau de neurones impulsionnel. En particulier, l'invention permet d'utiliser la même infrastructure de propagation pour la propagation des données et pour la rétro-propagation des erreurs lors de la phase d'apprentissage. L'invention propose une implémentation générique d'un neurone impulsionnel qui convient à la mise en œuvre de tout type de réseaux de neurones impulsionnels, en particulier les réseaux convolutionnels.

Description

Rétro-propagation d'erreurs sous forme impulsionnelle dans un réseau de neurones impulsionnels L'invention concerne le domaine des réseaux de neurones artificiels et 5 plus précisément celui des réseaux de neurones impulsionnels.
Les réseaux de neurones artificiels sont composés essentiellement de neurones interconnectés entre eux par des synapses, qui sont classiquement implémentées par des mémoires numériques, mais qui peuvent être également implémentées par des composants résistifs dont la conductance lo varie en fonction de la tension appliquée à leurs bornes.
Les réseaux de neurones impulsionnels sont en général optimisés par la mise en oeuvre de méthodes d'apprentissage supervisé ou non supervisé.
Ces méthodes comprennent une première phase de propagation de données, produites en entrée du réseau de neurones, vers la couche de 15 sortie du réseau de neurones, puis une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée.
Lors de la seconde phase de rétro-propagation, les synapses sont mises à jour à partir d'erreurs calculées localement par chaque neurone en fonction d'erreurs rétro-propagées depuis la couche précédente du réseau de neurones.
20 L'invention porte sur un neurone impulsionnel et un réseau de neurones impulsionnels, conçus pour implémenter un algorithme de rétro-propagation d'erreurs sous forme d'impulsions signées ou non signées ou de données binaires ou ternaires.
25 Les réseaux de neurones impulsionnels présentent l'avantage de permettre une implémentation sur des calculateurs à ressources contraintes car les traitements mis en oeuvre pendant la phase de propagation de l'apprentissage ou pendant une phase de classification ne nécessitent pas de multiplications de nombres flottants.
En effet, au sein d'un réseau de 30 neurones impulsionnels, les données sont codées sous forme d'impulsions (signées ou non) et les traitements exécutés par chaque neurone peuvent, 2 de ce fait, être implémentés uniquement à l'aide d'accumulateurs et de comparateurs.
Ainsi, le recours à des opérateurs de multiplication de nombres flottants est évité, ce qui présente un avantage certain pour une implémentation numérique ou analogique sur des dispositifs à ressources limitées.
Cependant, l'algorithme de rétro-propagation utilisé pour mettre à jour les valeurs des synapses lors d'une phase d'apprentissage nécessite, quand à lui, l'utilisation de multiplications de nombres flottants pour calculer les erreurs locales à chaque neurone.
Par ailleurs, il nécessite également la propagation synchrone de ces erreurs sous la forme de nombres flottants entre chaque couche de neurones du réseau de neurones.
Or les réseaux de neurones impulsionnels sont basés sur une logique de propagation des données asynchrones, sous forme d'impulsions.
Ainsi, l'algorithme de rétro-propagation n'est généralement pas mis en oeuvre, au sein d'un réseau de neurones impulsionnel, de manière à prendre en compte les contraintes matérielles d'un tel réseau.
Du fait de l'incompatibilité de mise en oeuvre d'un algorithme de rétro- propagation pour un réseau de neurones impulsionnel, l'apprentissage au sein d'un tel réseau est généralement réalisé en utilisant un algorithme inspiré de règles biologiques du type « Spike-Timing Dependent Plasticity » ou STDP.
Ce type de règle d'apprentissage est cependant moins performant qu'un apprentissage basé sur un algorithme de rétro-propagation.
La publication scientifique
[1] décrit une mise en oeuvre possible d'un algorithme de rétro-propagation pour un réseau de neurones impulsionnels.
Cependant, il s'agit d'une implémentation couteuse car elle nécessite des multiplications de nombres flottants et n'est pas adaptée à des dispositifs à faible consommation et ressources contraintes.
La publication scientifique
[2] décrit la possibilité de quantifier sur trois valeurs les erreurs rétro-propagées par l'algorithme de rétro-propagation.
3 Cependant ce document concerne les réseaux de neurones formels et non pas les réseaux de neurones impulsionnels.
Il ne prend pas en compte les contraintes de traitement asynchrone de ces réseaux.
5 L'invention propose une nouvelle implémentation d'un algorithme de rétro-propagation d'erreurs qui soit adaptée aux contraintes matérielles d'un dispositif implémentant un réseau de neurones impulsionnels.
L'invention utilise, notamment, un codage binaire ou ternaire des erreurs calculées lors de la phase de rétro-propagation pour adapter sa mise 10 en oeuvre aux contraintes du réseau et ainsi éviter le recours à des opérateurs de multiplication de nombres flottants.
Plus généralement l'invention propose une adaptation globale de l'algorithme de rétro-propagation aux contraintes spécifiques d'un réseau de neurones impulsionnel.
En particulier, l'invention permet d'utiliser la même 15 infrastructure de propagation pour la propagation des données et pour la rétro-propagation des erreurs lors de la phase d'apprentissage.
L'invention propose une implémentation générique d'un neurone impulsionnel qui convient à la mise en oeuvre de tout type de réseaux de neurones impulsionnels, en particulier les réseaux convolutionnels.
20 Dans un premier mode de réalisation, l'invention a pour objet un neurone artificiel impulsionnel appartenant à une couche intermédiaire de plusieurs neurones, la couche intermédiaire appartenant à un réseau de neurones comprenant plusieurs couches successives, le réseau de neurones 25 étant configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le neurone artificiel impulsionnel comprenant, pour l'exécution de la seconde phase de rétro- 30 propagation: 4 Une première interface d'entrée/sortie apte à recevoir des signaux d'erreur binaires ou ternaires pondérés par des coefficients synaptiques, Un module de calcul d'erreur configuré pour calculer un signal 5 d'erreur locale binaire ou ternaire à partir d'un signal intermédiaire binaire ou ternaire généré par le neurone en réponse aux signaux d'erreur reçus et d'une estimée de la dérivée d'une fonction d'activation équivalente mise en oeuvre par le neurone pendant la première phase de propagation de données, 10 Une seconde interface d'entrée/sortie apte à propager le signal d'erreur locale binaire ou ternaire vers plusieurs synapses sous forme d'impulsions.
Selon un aspect particulier du premier mode de réalisation de l'invention, la première interface d'entrée/sortie est apte à émettre des 15 signaux binaires ou ternaires vers plusieurs synapses sous forme d'impulsions pendant la première phase de propagation de données et la seconde interface d'entrée/sortie est apte à recevoir des signaux binaires ou ternaires pondérés par des coefficients synaptiques pendant la première phase de propagation de données.
20 Selon une variante particulière du premier mode de réalisation de l'invention, le neurone artificiel impulsionnel comprend : Un module d'intégration desdits signaux d'erreur pour calculer une erreur cumulée, Au moins un comparateur pour comparer l'erreur cumulée à au 25 moins un seuil d'activation parmi un seuil d'activation positif et un seuil d'activation négatif, Un module d'activation configuré pour générer le signal intermédiaire binaire ou ternaire en fonction du résultat de l'au moins un comparateur.
30 Dans un second mode de réalisation, l'invention a aussi pour objet un neurone artificiel impulsionnel appartenant à une couche intermédiaire de 5 plusieurs neurones, la couche intermédiaire appartenant à un réseau de neurones comprenant plusieurs couches successives, le réseau de neurones étant configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers 5 une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le neurone artificiel impulsionnel comprenant, pour l'exécution de la seconde phase de rétro-propagation: Une première interface d'entrée/sortie apte à recevoir des signaux lo d'erreur binaires ou ternaires, Un module de calcul d'erreur configuré pour calculer un signal d'erreur locale binaire ou ternaire à partir d'un signal intermédiaire binaire ou ternaire généré par le neurone en réponse aux signaux d'erreur reçus et d'une estimée de la dérivée d'une fonction 15 d'activation équivalente mise en oeuvre par le neurone pendant la première phase de propagation de données, Une seconde interface d'entrée/sortie apte à propager le signal d'erreur locale binaire ou ternaire vers les neurones de la couche suivante.
20 Selon un aspect particulier du second mode de réalisation de l'invention, la première interface d'entrée/sortie est apte à émettre des signaux binaires ou ternaires vers les neurones de la couche suivante pendant la première phase de propagation de données et la seconde interface d'entrée/sortie est apte à recevoir des signaux binaires ou ternaires 25 pendant la première phase de propagation de données.
Selon une variante particulière du second mode de réalisation de l'invention, le neurone artificiel impulsionnel comprend : Un module d'intégration desdits signaux d'erreur binaires ou ternaires pour calculer une erreur cumulée et pondérée par des 30 coefficients synaptiques, 6 - Au moins un comparateur pour comparer l'erreur cumulée à au moins un seuil d'activation parmi un seuil d'activation positif et un seuil d'activation négatif, Un module d'activation configuré pour générer le signal 5 intermédiaire binaire ou ternaire en fonction du résultat de l'au moins un comparateur.
Selon un aspect particulier de l'invention, le module d'activation est configuré pour générer un signal intermédiaire positif lorsque l'erreur cumulée est supérieure au seuil d'activation positif et un signal intermédiaire 10 négatif lorsque l'erreur cumulée est inférieure au seuil d'activation négatif.
Selon une variante particulière, le neurone artificiel impulsionnel selon l'un quelconque des modes de réalisation de l'invention comprend en outre un soustracteur pour soustraire de l'erreur cumulée la valeur du seuil d'activation positif lorsqu'un signal intermédiaire positif est généré et 15 soustraire de l'erreur cumulée la valeur du seuil d'activation négatif lorsqu'un signal intermédiaire négatif est généré.
Selon une variante particulière, le neurone artificiel impulsionnel selon l'un quelconque des modes de réalisation de l'invention comprend en outre un module de calcul d'une mise à jour de coefficients synaptiques à partir de 20 l'erreur locale et d'un résultat de la fonction d'activation équivalente.
Selon un aspect particulier de l'invention, le résultat de la fonction d'activation équivalente est calculé pendant la phase de propagation de données d'un neurone.
Selon un aspect particulier de l'invention, le module de calcul d'une 25 mise à jour de coefficients synaptiques est activé après la propagation de l'erreur locale.
Selon un aspect particulier de l'invention, le module de calcul d'un signal d'erreur locale est configuré pour calculer un produit entre le signal intermédiaire et l'estimée de la dérivée de la fonction d'activation 30 équivalente.
7 Selon un aspect particulier de l'invention, la fonction d'activation équivalente est une fonction d'intégration des impulsions générées par le neurone et pondérée par un paramètre de taux d'apprentissage du réseau de neurones.
5 Selon une variante particulière, le neurone artificiel impulsionnel selon l'un quelconque des modes de réalisation de l'invention comprend un module de calcul de dérivée configuré pour calculer l'estimée de la dérivée de la fonction d'activation équivalente à partir d'un résultat de la fonction d'activation équivalente mise en oeuvre par le neurone pendant la première 10 phase de propagation de données et d'une variable d'intégration du neurone pendant la première phase de propagation de données.
Selon un aspect particulier de l'invention, l'estimée de la dérivée de la fonction d'activation équivalente est égale à 1 lorsque le résultat de ladite fonction est strictement positif ou la variable d'intégration est strictement 15 positive, et est égale à 0 sinon.
Selon un aspect particulier de l'invention, le module de calcul de dérivée est activé pendant la phase de propagation de données du neurone ou pendant la phase de rétro-propagation d'erreurs du neurone.
L'invention a encore pour objet un réseau de neurones artificiels 20 impulsionnels configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels 25 impulsionnels selon l'un quelconque des modes de réalisation de l'invention, chaque neurone étant connecté au moins à un neurone d'une couche suivante ou à un neurone d'une couche précédente par l'intermédiaire d'une synapse.
Selon un aspect particulier de l'invention, le réseau comprend une 30 couche d'entrée et une couche de sortie, les neurones de la couche d'entrée étant configurés pour recevoir des données à propager sous forme binaire ou 8 ternaire et les neurones de la couche de sortie étant configurés pour calculer, à partir des données propagées pendant la première phase de propagation de données, une erreur entre un résultat obtenu et un résultat cible.
Selon un aspect particulier de l'invention, chaque neurone de la 5 couche de sortie comprend un codeur configuré pour coder l'erreur en un ensemble d'au moins un signal binaire ou ternaire.
Selon un aspect particulier de l'invention, le codeur est configuré pour quantifier l'erreur sur deux ou trois niveaux de quantification de manière à générer un signal binaire ou ternaire.
10 Selon un aspect particulier de l'invention, le codeur est configuré pour coder l'erreur par un groupe de signaux binaires successifs ou un groupe de signaux ternaires successifs.
L'invention a encore pour objet un réseau de neurones artificiels configuré pour exécuter un mécanisme d'apprentissage comprenant une 15 première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le réseau de neurones comprenant plusieurs couches de neurones artificiels impulsionnels selon le second mode de réalisation de l'invention, chaque neurone étant connecté 20 au moins à un neurone d'une couche suivante ou à un neurone d'une couche précédente par l'intermédiaire d'une synapse ayant un poids synaptique, les synapses étant implémentées sous forme de mémoires numériques, de dispositifs memristifs ou de circuits analogiques.
Selon un aspect particulier de l'invention, chaque synapse est 25 configurée pour mettre à jour son poids synaptique en réponse à un signal d'erreur binaire ou ternaire reçu depuis un neurone d'une couche suivante et à un signal représentatif du résultat de la fonction d'activation équivalente reçu depuis un neurone d'une couche précédente.
9 D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit en relation aux dessins annexés qui représentent : La figure 1, un schéma général d'un réseau de neurones artificiels 5 impulsionnels, - La figure 2, un schéma d'un neurone artificiel impulsionnel, selon un premier mode de réalisation de l'invention, exécutant une première phase de propagation de données d'un mécanisme d'apprentissage, La figure 3, un schéma d'un neurone artificiel impulsionnel, selon un lo second mode de réalisation de l'invention, exécutant une première phase de propagation de données d'un mécanisme d'apprentissage, - La figure 4, un schéma d'un neurone artificiel impulsionnel de la couche de sortie du réseau de neurones, - La figure 5, un schéma d'un neurone artificiel impulsionnel, selon le 15 premier mode de réalisation de l'invention, exécutant une seconde phase de rétro-propagation d'erreurs d'un mécanisme d'apprentissage, La figure 5bis, un schéma d'une variante du premier mode de réalisation, 20 La figure 6, un schéma d'un neurone artificiel impulsionnel, selon le second mode de réalisation de l'invention, exécutant une seconde phase de rétro-propagation d'erreurs d'un mécanisme d'apprentissage.
25 La figure 1 représente un schéma général d'un réseau de neurones artificiels impulsionnels.
Un réseau de neurones est classiquement composé de plusieurs couches Ce,CI,Cki,Cs de neurones impulsionnels interconnectés.
Le réseau comporte au moins une couche d'entrée Ce et une couche de sortie Cs et au moins une couche intermédiaire CI,Cki.
Les 30 neurones Ni., de la couche d'entrée Ce reçoivent chacun en entrée une donnée d'entrée 101.
Les données d'entrée peuvent être de natures 10 différentes selon l'application visée.
Par exemple, il peut s'agir de pixels d'une image ou de données audio ou textuelles ou plus généralement n'importe quel type de données pouvant être codées sous forme d'impulsions.
Les applications d'un réseau de neurones comprennent 5 notamment la classification et la détection d'objets dans une image ou dans une vidéo pour des dispositifs embarqués dans des véhicules autonomes ou des dispositifs de vidéo surveillance associés à des caméras de vidéo-surveillance.
Un réseau de neurones est, par exemple, utilisé dans le domaine de la classification d'image ou de la reconnaissance d'image ou 10 plus généralement la reconnaissance de caractéristiques qui peuvent être visuelles, audio ou les deux à la fois.
Chaque neurone d'une couche est connecté, par son entrée et/ou sa sortie, à tous les neurones de la couche précédente ou suivante.
Plus généralement un neurone peut n'être connecté qu'à une partie des neurones d'une autre couche, notamment dans le cas 15 d'un réseau convolutionnel.
Les connexions 102,103,104 entre deux neurones Ni.e, N11 se font à travers des synapses artificielles Si,S2,S3 qui peuvent être réalisées, notamment, par des mémoires numériques ou par des dispositifs memristifs.
Les coefficients des synapses peuvent être optimisés grâce à un mécanisme d'apprentissage du réseau de neurones.
20 Ce mécanisme comporte deux phases distinctes, une première phase de propagation de données de la couche d'entrée vers la couche de sortie et une seconde phase de rétro-propagation d'erreurs de la couche de sortie vers la couche d'entrée avec, pour chaque couche, une mise à jour des poids des synapses.
25 Lors de la première phase de propagation de données, des données d'apprentissage, par exemple des images ou séquences d'images, sont fournies en entrée des neurones de la couche d'entrée et propagées dans le réseau.
Pour un réseau de neurones impulsionnels, les données sont codées sous forme d'impulsions asynchrones.
Les impulsions correspondent à des 30 signaux binaires ou ternaires, autrement dit il peut s'agir d'impulsions signées ou non.
11 Chaque neurone met en oeuvre, pendant cette première phase, une fonction d'intégration des impulsions qu'il reçoit des neurones de la couche précédente (ou des impulsions codées depuis les données d'entrée pour les neurones de la couche d'entrée).
La fonction d'intégration consiste 5 essentiellement en une accumulation des impulsions pondérées par les poids des synapses artificielles.
Chaque neurone met aussi en oeuvre une fonction d'activation qui consiste, à partir d'une comparaison de la variable d'intégration à un ou deux seuil(s) d'activation, à générer et propager une impulsion vers les neurones de la couche suivante.
Selon les modèles de -Io neurones choisis, la fonction d'intégration et la fonction d'activation peuvent varier.
En particulier, un courant de fuite peut être implémenté par le neurone pour atténuer la variable d'intégration au cours du temps lorsqu'aucune impulsion n'est reçue par le neurone.
Les neurones 1\1;,, de la couche de sortie Cs exécutent un traitement supplémentaire en ce qu'ils calculent une 15 erreur entre un résultat d'intégration des impulsions reçues par le neurone 1\11,8 et une valeur attendue ou une valeur cible qui correspond à l'état final du neurone de la couche de sortie que l'on souhaite obtenir en relation avec les données d'entrée d'apprentissage.
Lors de la seconde phase de rétro-propagation d'erreurs, les 20 neurones de la couche de sortie C5 transmettent les erreurs calculées aux neurones de la couche précédente 0,1 qui calculent une erreur locale à partir de l'erreur rétro-propagée de la couche précédente et transmettent à leur tour cette erreur locale à la couche précédente CI.
En parallèle, chaque neurone calcule, à partir de l'erreur locale, une valeur de mise à jour des 25 poids des synapses auxquelles il est connecté et met à jour les synapses.
Le processus se poursuit pour chaque couche de neurones jusqu'à l'avant dernière couche qui est chargée de mettre à jour les poids des synapses qui la relient à la couche d'entrée Ce.
Un objectif de l'invention est de proposer une mise en oeuvre 30 particulière de la phase de rétro-propagation d'erreurs, qui soit adaptée aux 12 contraintes d'implémentation ou contraintes matérielles des neurones impulsionnels.
La figure 2 décrit un exemple de neurone impulsionnel selon un 5 premier mode de réalisation de l'invention et son fonctionnement lors de la phase de propagation de données.
Sur la figure 2 est représenté un neurone Nu appartenant à une couche intermédiaire CI.
Le neurone Nu est connecté en aval aux neurones d'une couche suivante 0,1 par l'intermédiaire de synapses W1,1-4, 10 W2,1+1,-,WK,1-1.
Selon le premier mode de réalisation de l'invention, les synapses sont réalisées par des dispositifs memristifs ou memristors ou tout circuit analogique équivalent.
De la même façon, le neurone Nu est connecté en amont aux neurones d'une couche précédente C11 par l'intermédiaire de synapses vu -1,1, W2.1..
15 Lors de la phase de propagation de données, le neurone Nu reçoit, via une première interface d'entrée/sortie E/52, des impulsions émises par les neurones de la couche précédente et pondérées par les poids des synapses W1,1, W2,1...,WK,I.
Les synapses, réalisées par des dispositifs memristifs, reçoivent une impulsion signée ou non signée d'amplitude constante émise 20 par un neurone et émettent à leur sortie, une impulsion amplifiée par une valeur représentative du poids de la synapse.
Les signaux reçus par le neurone Nu correspondent à des signaux binaires ou ternaires pondérés par les poids des synapses.
Les signaux reçus sont intégrés par un module d'intégration INT qui réalise une fonction d'intégration qui dépend de la 25 nature du neurone.
Selon un exemple de réalisation, la fonction d'intégration consiste à sommer ou intégrer, dans le temps, les signaux reçus.
Dans un autre exemple de réalisation, la fonction d'intégration comprend une fonction d'atténuation ou de fuite pour faire décroitre la variable d'intégration au cours du temps lorsqu'aucun signal n'est reçu par le neurone.
La variable 30 d'intégration Vu obtenue en sortie du module d'intégration INT est ensuite comparée à un ou plusieurs seuils d'activation via un comparateur COMP.
13 Selon un premier exemple de réalisation, un seul seuil d'activation positif Off est utilisé.
Lorsque la variable d'intégration V,i dépasse le seuil d'activation positif Off, un module d'activation ACT génère une impulsion positive et la variable d'intégration Vu est diminuée de la valeur du seuil eff.
Selon un 5 second exemple de réalisation, en plus du seuil positif Off, un seuil négatif -eff est utilisé.
Lorsque la variable d'intégration Vu diminue en dessous du seuil d'activation négatif -Off, un module d'activation ACT génère une impulsion négative et la variable d'intégration Vu est diminuée de la valeur du seuil -Off (ou augmentée de la valeur Off).
Les valeurs absolues des deux seuils 10 peuvent être égales ou différentes.
Les impulsions générées par le module d'activation ACT sont transmises à une interface d'entrée/sortie E/S, pour être propagées vers les synapses W1,i+1, W2.1+1,---,WK.1+1 connectées entre le neurone Nu et les neurones de la couche suivante Ci+1.
La variable d'intégration Vu calculée par le module d'intégration INT 15 au cours du temps peut être représentée par la relation suivante : Vt,/ (t) = (t - At) - Of f. si,1(t - At) -H E j wity. sj, (t) (1) su(t) représente l'impulsion générée par le neurone dont la valeur est donnée par la relation suivante dans le cas d'un signal ternaire: 1 si Vi,f(t) > Off 20 = Si,i(Vu(0) = -1 si V11(t) G -Off (2) 0 sinon Dans le cas d'un signal binaire, la relation (2) est remplacée par : si,f(t) = st,f(Vi,f(t)) = [1 si VH(t) > Orr (2') La variable d'intégration V,i peut être initialisée à une valeur différente 25 de 0 au début de la phase de propagation de données.
Les traitements décrits ci-dessus et mis en oeuvre par le neurone Nu ne sont basés que sur des accumulations ou des comparaisons et ne nécessitent aucune multiplication de nombres flottants. 0 sinon 14 Le neurone exécute en outre deux fonctions de calcul supplémentaires pour calculer des variables qui seront utilisées pendant la phase de rétro-propagation d'erreurs.
Un deuxième module d'intégration FAE est utilisé pour accumuler les 5 impulsions su générées par le neurone au cours du temps, l'accumulation étant pondérée par un taux d'apprentissage ni qui est un paramètre du réseau de neurones.
Ce taux d'apprentissage ni peut être différent pour chaque couche du réseau.
La variable xu obtenue en sortie de ce deuxième module d'intégration 10 est représentée par la relation suivante : x11(t)= ut. su(t) + - At) (3) Cette variable peut aussi être représentée par les relations suivantes, où ai., correspond à l'accumulation au cours du temps des impulsions générées par le neurone et est appelée fonction d'activation équivalente du 15 neurone.
La variable xu (t) correspond à la fonction d'activation équivalente pondérée par un paramètre de taux d'apprentissage ri 1. = au(t) (1/41(0 = su(t) + - At) 20 Le calcul de la variable xi,, ne nécessite pas non plus de multiplication car les impulsions su prennent les valeurs 1,0 ou -1.
Le calcul de la variable xi., consiste en une accumulation de la valeur ni.
Un module de dérivation DER est aussi utilisé pour calculer une estimée a'y de la fonction d'activation équivalente au du neurone.
Cette 25 estimée est utilisée lors de la phase de rétro-propagation d'erreurs.
L'estimée a'y est égale à 1 si la variable d'intégration V;,, est supérieure à 0 ou que la variable xy est supérieure à 0 et vaut 0 sinon. a'0(0 = {1 si Vi,i(t) > 0 ou xj,i(t) > 0 (4) 0 sinon 15 Sans sortir du cadre de l'invention, d'autres estimées de la fonction d'activation équivalente peuvent être déterminées de sorte à produire une variable binaire {0 ;1} ou ternaire {-1 ;0 ;1}.
Une caractéristique de l'invention est que l'estimée a'u est une variable binaire ou ternaire de sorte à éviter les 5 calculs impliquant des multiplications de nombres flottants.
Les valeurs de Vo(t) et xu(t) utilisées pour calculer a' sont les dernières valeurs à jour calculées par le neurone lors de la phase de propagation de données pour une séquence d'apprentissage présentée en lo entrée du réseau de neurones.
Le calcul de l'estimée a'11 de la fonction d'activation équivalente au du neurone peut être réalisé pendant la phase de propagation de données auquel cas la valeur de aï, est sauvegardée dans une mémoire pour être utilisée lors de la phase de rétro-propagation d'erreurs.
Le calcul de l'estimée 15 a'ij peut aussi être réalisé pendant la phase de rétro-propagation d'erreurs, à partir des dernières valeurs sauvegardées par le neurone de Vo(t) et xu(t).
Dans une variante de réalisation, la fonction d'activation mise en oeuvre par le neurone peut être modifiée de la façon suivante : 1 si Vi,j(t) > Off 20 st,t(t) = si,/(Vitt(t)) = -1 si Viii(t) < -Off et at,t(t) > 0 (5) 0 sinon Selon cette variante, la somme des impulsions générées par le neurone, représentée par la variable au(t) est toujours supérieure à O.
La figure 3 représente un second mode de réalisation du neurone 25 impulsionnel selon l'invention.
Dans ce second mode de réalisation, le neurone est implémenté par un dispositif numérique.
Les signaux impulsionnels binaires ou ternaires sont codés par des signaux numériques binaires ou ternaires et sont transmis entre les neurones via une infrastructure de communication numérique.
Les synapses ne sont plus 16 réalisées par des dispositifs actifs positionnés sur les connexions entre deux neurones.
Selon cette implémentation numérique, les poids des synapses sont stockés dans une mémoire numérique MEM_W.
Les signaux reçus par l'interface d'entrée E/S2 sont des signaux binaires ou ternaires (selon le 5 modèle de neurone choisi).
Le module d'intégration INT est modifié pour calculer la somme des signaux reçus pondérés par les poids des synapses qui sont lus dans la mémoire MEM_W.
Autrement dit, la pondération des signaux par les poids des synapses est réalisée par le neurone et non par les synapses comme dans le premier mode de réalisation.
10 Lorsque les données produites en entrée du réseau de neurones, autrement dit en entrée de la couche d'entrée Ce du réseau sont propagées jusqu'à la couche de sortie Cs du réseau, la phase de propagation des données est terminée.
Chaque neurone de la couche de sortie est configuré 15 pour calculer une variable et une valeur cible souhaitée pour cette variable.
Selon le modèle de neurone de sortie choisi, la variable utilisée peut être la variable d'intégration Vis calculée par le module d'intégration INT ou les impulsions si,, générées par le module d'activation ACT ou le résultat de la fonction d'activation équivalente ais ou toute combinaison d'une ou plusieurs 20 de ces variables ou d'autres variables calculées par le neurone de sortie.
La valeur cible est choisie selon l'application.
Par exemple si le réseau de neurone est utilisé dans le cadre d'une classification d'objets, la valeur cible correspond à l'objet que chaque neurone de sortie est censé détecter.
Autrement dit, chaque neurone de sortie peut calculer une fonction de 25 cout dépendante d'une ou plusieurs des variables calculées ou d'une combinaison d'une ou plusieurs de ces variables et d'une valeur cible ou valeur souhaitée.
L'erreur calculée par le neurone de sortie est alors égale à la dérivée de la fonction de cout par rapport à chaque variable utilisée.
Par exemple, la fonction de cout utilisée peut dépendre uniquement de la 30 fonction d'activation équivalente ai,s(t) et l'erreur calculée sera dépendante de la dérivée de cette fonction d'activation équivalente.
On note Si,s l'erreur 17 calculée par le neurone de sortie Ni,s.
Cette erreur est ensuite codée, à l'aide d'un codeur que comporte le neurone de sortie, sous forme d'impulsions ou de données numériques.
Différents types de codage sont possibles.
Les impulsions peuvent être codées sur trois niveaux en tant que signaux 5 ternaires.
Selon une première variante, l'erreur ôi,s, qui est un nombre flottant, est quantifiée sur trois niveaux -1,0,1 et transmise aux neurones de la couche précédente via un signal numérique ou une impulsion ternaire.
Selon une seconde variante, l'erreur 5;,s est décomposée en une somme des valeurs -1,0 et 1 et est codée par un groupe de données numériques ou 10 d'impulsions ternaires.
Par exemple, la valeur 5,3 peut être codée par cinq impulsions positives successives, la valeur -3,2 peut être codée par trois impulsions négatives successives.
Les impulsions peuvent être aussi codées sur deux niveaux en tant que signaux binaires selon les deux variantes de codage présentées ci-dessus.
15 La figure 4 représente un exemple d'implémentation d'un neurone de sortie N1,5.
Il comprend principalement une interface d'entrée/sortie E/S2, un module d'intégration INT, un module de calcul d'erreur CALC_ER et un codeur COD pour coder l'erreur calculée en impulsions qui sont ensuite rétro-propagées vers la couche précédente via l'interface d'entrée/sortie 20 E/S2.
Le neurone de sortie 1\11,5 peut aussi comprendre un comparateur COMP et un module d'activation ACT lorsque ceux-ci sont nécessaires pour le calcul de variables utilisées pour le calcul de l'erreur.
La figure 5 décrit, selon le premier mode de réalisation de l'invention, 25 le fonctionnement d'un neurone impulsionnel Nu d'une couche intermédiaire Ci durant la phase de rétro-propagation des erreurs calculées par les neurones de la couche de sortie.
Dans ce premier mode de réalisation, les synapses sont réalisées par des dispositifs memristifs, memristors ou tout circuit analogique équivalent 30 comme explicité dans le paragraphe relatif à la figure 2.
Sur la figure 5, on a représenté uniquement les modules de calcul et opérateurs du neurone qui 18 interviennent pendant la phase de rétro-propagation.
Dans une implémentation réelle du neurone, celui-ci comprend à la fois les modules et opérateurs décrits à la figure 5 qui sont activés pendant la phase de rétro-propagation et les modules et opérateurs décrits à la figure 2 qui sont activés 5 pendant la phase de propagation de données.
Les synapses Wth-i, W2,1+1,...,WK,i,s reçoivent les erreurs calculées par les neurones de la couche précédente CrEi (dans le sens de la rétro-propagation) sous forme d'impulsions binaires ou ternaires.
Chaque synapse émet en réponse un signal correspondant à l'impulsion reçue pondérée par 10 le poids de la synapse.
Ces signaux d'erreur pondérés sont reçus par l'interface d'entrée/sortie E/S, puis traités par un module d'intégration INTER qui réalise une accumulation des signaux reçus.
Le module d'intégration INT_ER activé pendant la phase de rétro-propagation réalise la même fonction que le module d'intégration INT activé pendant la phase de 15 propagation des données.
Ils peuvent être réalisés par deux modules distincts ou par le même module.
La variable d'intégration U1,1 obtenue en sortie du module d'intégration INT_ER est ensuite comparée à un ou deux seuils d'activation.
Par exemple, lorsque les signaux reçus sont des signaux ternaires, un seuil d'activation positif ebp et un seuil d'activation négatif -ebp 20 sont utilisés, via un comparateur COMP_ER qui peut être réalisé par le même composant que le comparateur COMP décrit à la figure 2.
Lorsque la variable d'intégration th dépasse le seuil d'activation positif ebp, un module d'activation ACT_ER génère une impulsion positive et la variable d'intégration Liu est diminuée de la valeur du seuil ebp.
Lorsque la variable 25 d'intégration U1,1 diminue en dessous du seuil d'activation négatif -9bp, un module d'activation ACT_ER génère une impulsion négative et la variable d'intégration U1,1 est diminuée de la valeur du seuil -ebp.
Le module d'activation ACT_ER peut être réalisé par le même composant que le module d'activation ACT décrit à la figure 2.
30 La variable d'intégration du neurone pendant la phase de rétro- propagation d'erreurs est donnée par la relation suivante : 19 Uu(0 = - - Obp.
ZiJ(( - At) + Ek i,k,i+1.
SM-n(0 Le signal généré par le module d'activation ACT_ER est un signal impulsionnel intermédiaire .II peut être représenté par la relation suivante : 5 f1 si U 41(t) > Obp zu - (t) = -1 si Uti(t) < -Obp 0 sinon Dans une variante de réalisation, le seuil d'activation positif peut être remplacé par T-Febp et le seuil d'activation négatif par T-ebp avec T une constante positive, négative ou nulle.
10 Dans une autre variante de réalisation, le signal impulsionnel intermédiaire zu peut être représenté par la relation : f 1 si tkt(t) > Obp zi,/ (t) = -1 si Ut,/ (t) < Obp 0 sinon Dans cette variante, un seul seuil ebp est utilisé au lieu de deux seuils.
Dans ce cas, la variable d'intégration L11,1 est diminuée par une valeur 15 prédéterminée qui peut être égale au seuil Obp ou à une valeur différente du seuil Obp.
Selon une autre variante de réalisation, lorsque les signaux reçus sont des signaux binaires, un seul seuil d'activation ebp est utilisé.
20 Selon cette variante de réalisation, le signal impulsionnel intermédiaire z peut être représenté par la relation suivante: 1 si Uo(t) > Obp Zid (t) = UH(t) < Obp Avec Obp un seuil d'activation dont la valeur peut être positive ou négative.
Dans ce cas, la variable d'intégration Liu est diminuée par une 20 valeur prédéterminée qui peut être égale au seuil ebp ou à une valeur différente du seuil ebp.
Dans encore une autre variante de réalisation pour laquelle les 5 signaux reçus sont des signaux binaires, l'algorithme de rétro-propagation exécuté par le réseau de neurones est mis en oeuvre en deux phases successives.
Lors d'une première phase, l'algorithme de rétro-propagation est exécuté par le réseau de neurones en considérant un signal impulsionnel 10 intermédiaire zu binaire représenté par la relation suivante, avec Obp un seuil d'activation positif : (1 si Ut,t(t) > Obp 0 sinon Lorsque la variable d'intégration U,,, dépasse le seuil d'activation ebp, le module d'activation ACT_ER génère une impulsion positive et la variable d'intégration U1,1 est diminuée de la valeur du seuil ebp.
15 Lors d'une seconde phase, l'algorithme de rétro-propagation est exécuté par le réseau de neurones en considérant un signal impulsionnel intermédiaire zu binaire représenté par la relation suivante, avec -Obp un seuil d'activation négatif : (-1 si Ut,t(t) < -8b7, 0 sinon Lorsque la variable d'intégration U1,1 passe en dessous du seuil 20 d'activation -ebp, le module d'activation ACT_ER génère une impulsion négative et la variable d'intégration Liu est diminuée de la valeur du seuil -6bp (ou augmentée de la valeur de ebp).
Ce signal est utilisé pour ensuite générer une erreur locale sous la 25 même forme impulsionnelle.
Le calcul de l'erreur locale est réalisée par le module de calcul ER LOC à partir du signal intermédiaire zu et de l'estimée a',,, de la dérivée de la fonction d'activation équivalente du neurone.
Zu (t) = Zu (t) = 21 L'estimée a'i.i a été calculée par le neurone pendant la phase de propagation de données (cf figure 2) ou est calculée pendant la phase de rétro-propagation d'erreurs à partir des dernières valeurs des variables x;,; et Vu qui ont été sauvegardées à l'issue de la phase de propagation de données.
5 L'erreur locale est calculée en réalisant un produit du signal intermédiaire zu et de l'estimée a'i,, qui est une variable binaire ou ternaire, selon le modèle de l'estimée a'y choisi. 81,/(0 zo(t)- i,t(t) Ainsi, le calcul de l'erreur locale ne nécessite pas de multiplication de 10 nombres flottants et le résultat de ce calcul est une variable ternaire (qui prend pour valeurs 1,0 ou -1) ou binaire.
L'erreur locale ô; j(t) est ensuite propagée vers les synapses de la couche suivante Cil via l'interface E/S2.
15 Le neurone comporte également un module MAJ de calcul d'une mise à jour des poids des synapses.
Cette mise à jour est calculée à partir de l'erreur locale et de la variable x1,1_, transmise par chaque neurone de la couche CH auquel est connecté le neurone Ni,i.
La variable xi a été préalablement calculée pendant la phase de propagation de données.
20 La mise à jour des poids d'une synapse W1.1 est donnée par la relation : Acow(t) = -si,j(i)-xj,j-i(t) Ces valeurs sont propagées jusqu'aux synapses W1,i, W2.1,...
WK,i pour qu'elles mettent à jour leurs poids via la règle : (t) = 3d00,/(t) coin (t - A(0) La mise à jour des poids des synapses est préférentiellement 25 effectuée après la propagation des erreurs à la couche suivante, cependant il est aussi possible d'inverser l'ordre de ces deux actions.
22 Dans une variante de réalisation, la variable xj.ki est stockée dans une mémoire MEM_X accessible aux neurones de deux couches consécutives, comme représenté sur la figure 5.
5 Dans une autre variante de réalisation représentée à la figure 5bis, le module MAJ de calcul d'une mise à jour des poids des synapses est supprimé et la mise à jour des poids synaptiques est directement réalisée par les dispositifs memristifs qui réalisent les synapses.
Dans cette variante, les signaux d'erreurs Ô1.1(t) sont propagés depuis les neurones de la couche C1 10 vers les synapses W1,1, W2,I....
WK1 et les variables sont propagées sous forme de signaux depuis les neurones de la couche CH vers les synapses W1,1.
W21,...
WK.1.
Chaque synapse met alors à jour son poids synaptique directement à partir de l'interaction des deux signaux 6.1(t) et xi.m (t) en analysant la différence des potentiels des deux signaux pour mettre à jour 15 son poids avec une valeur représentative du terme Acot,p(t).
La figure 6 décrit le fonctionnement d'un neurone impulsionnel d'une couche intermédiaire C1 durant la phase de rétro-propagation selon le second mode de réalisation de l'invention décrit à la figure 3.
20 Selon ce second mode, le neurone est implémenté par un dispositif numérique.
Les signaux d'erreur binaires ou ternaires sont codés par des signaux numériques binaires ou ternaires et sont transmis entre les neurones via la même infrastructure de communication que pour les signaux propagés pendant la phase de propagation de données.
Les poids des synapses sont 25 stockés dans une mémoire numérique MEM WI,,,MEM WI.
Le module d'intégration INT_ER est modifié pour calculer la somme des signaux reçus pondérés par les poids des synapses qui sont lus dans la mémoire MEM_Wrk, dans laquelle sont stockés les poids des synapses de la couche C1+1.
Autrement dit, la pondération des signaux par les poids des synapses 30 est réalisée par le neurone et non par les synapses comme dans le premier mode de réalisation.
La mémoire MEM_W1 de la couche CI est directement 23 mise à jour par le module de calcul MAJ de mise à jour des poids des synapses.
Différentes architectures sont possibles pour la mise en mémoire des poids des synapses.
Sur la figure 6, on a représenté une mémoire MEM_Wki, MEM_WI associée à chaque couche Ci de neurones.
Mais il 5 est aussi possible d'avoir une mémoire unique partagée pour au moins deux couches de neurones successives ou pour l'ensemble du réseau de neurones.
A l'inverse, une mémoire locale à chaque neurone peut aussi être envisagée.
Le module d'intégration INTER est configuré pour accéder en lecture à la mémoire dans laquelle ont été stockés les poids des synapses de 10 la couche précédente C1+1.
Dans le cas d'une implémentation par un dispositif numérique comme décrit à la figure 6, les signaux échangés entre les neurones peuvent être implémentés par deux bus distincts.
Un premier bus de données est utilisé pour transmettre les impulsions générées via une valeur 1, dans le cas de 15 signaux binaires, ou une valeur 1 ou -1, dans le cas de signaux ternaires.
Un second bus asynchrone de signalisation est utilisé pour signaler à un neurone la réception (ou l'émission) d'une donnée.
Autrement dit, le second bus asynchrone est utilisé pour transmettre l'information de la présence d'une valeur différente de 0 sur le bus de données.
Le second bus 20 asynchrone peut être, par exemple, un bus du type AER a Address Event Representation ».
Un avantage à cette implémentation est d'éviter aux neurones de réaliser des traitements sur des valeurs reçues correspondant à un état «0 ».
L'ensemble formé par le bus de données et le bus asynchrone est apte à transmettre un signal numérique binaire ou un signal numérique 25 ternaire.
Dans le cas du signal binaire, le lecteur comprendra que la valeur « 1 » est indiquée par le bus de données et la valeur « 0 » par le bus asynchrone.
Dans le cas du signal ternaire, les valeurs « 1 » et « -1 » sont indiquées par le bus de données et la valeur « 0 » par le bus asynchrone.
30 L'invention présente l'avantage d'utiliser une représentation binaire ou ternaire des erreurs locales calculées lors de la phase de rétro-propagation 24 d'erreurs de sorte qu'aucune multiplication de nombres flottants n'est nécessaire pour mettre en oeuvre les calculs d'erreurs.
Par ailleurs, la même infrastructure de communication peut être utilisée à la fois pour la propagation des données et pour la rétro-propagation des erreurs car les 5 deux types de signaux sont codés de la même façon.
Certains modules de calcul et opérateurs peuvent être utilisés conjointement pour la phase de propagation de données et pour la phase de rétro-propagation d'erreurs.
Par exemple, les modules d'intégration INT,INT ER, les comparateurs COMP,COMP_ER et les modules d'activation ACT,ACT_ER peuvent être lo réalisés par un seul composant.
De façon générale, l'invention permet d'utiliser le même type de dispositif ou circuit pour réaliser la phase de propagation de données et la phase de rétro-propagation d'erreurs puisque les signaux propagés dans les deux phases sont de natures similaires et les traitements appliqués à ces signaux sont limités à des accumulations et des 15 comparaisons pour les deux phases.
De façon générale, l'invention peut être mise en oeuvre à l'aide de composants matériels et/ou logiciels.
Les éléments logiciels peuvent être disponibles en tant que produit programme d'ordinateur sur un support lisible 20 par ordinateur, support qui peut être électronique, magnétique, optique ou électromagnétique.
Les éléments matériels peuvent être disponibles tous ou en partie, notamment en tant que circuits intégrés dédiés (ASIC) et/ou circuits intégrés configurables (FPGA) et/ou en tant que circuits neuronaux selon l'invention ou en tant que processeur de signal numérique 25 DSP et/ou en tant que processeur graphique GPU, et/ou en tant que microcontrôleur et/ou en tant que processeur général par exemple.
De façon plus précise, le réseau de neurones selon l'invention peut être implémenté par un ou plusieurs dispositif(s) numérique(s) comprenant au moins une mémoire numérique et une infrastructure de communication 30 pour propager des signaux binaires ou ternaires entre les neurones.
25 Le réseau de neurones selon l'invention peut aussi être implémenté par un ou plusieurs dispositif(s) analogique(s) comprenant au moins un dispositif memristif et une infrastructure de communication apte à propager des signaux analogiques sous forme d'impulsions signées ou non-signées.
5 Les synapses peuvent être réalisées sous la forme de dispositifs memristifs ou memristors, par exemple des dispositifs de type PCM (Phase-Change Memory) ou des mémoires RAM ou OXRAM ou tout autre dispositif ou circuit analogique équivalent.
Notamment, une synapse peut être mise en oeuvre par un circuit analogique basé sur au moins une capacité ou au moins 10 un condensateur et dont la charge de la capacité ou du condensateur permet de stocker la valeur d'un poids synaptique.
15 26 Références
[1] « Algorithm and hardware design of discrete-time spiking neural networks based on back propagation with binary activations >>, S.
Yin et al, 2017 IEEE 5 Biomedical Circuits and Systems,
[2] "Hardware efficient on line learning through pipeiined truncated error back-propagation in binary state networks", H.
Mostafa et al, Frontiers in Neuroscience,

Claims (23)

  1. REVENDICATIONS1. Neurone artificiel impulsionnel (N1,1) appartenant à une couche intermédiaire (CI) de plusieurs neurones, la couche intermédiaire (Ci) appartenant à un réseau de neurones comprenant plusieurs couches successives (CH, CI, C1±1), le réseau de neurones étant configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le neurone artificiel impulsionnel (NL1) comprenant, pour l'exécution de la seconde phase de rétro-propagation: - Une première interface d'entrée/sortie (E/Si) apte à recevoir des signaux d'erreur binaires ou ternaires pondérés par des coefficients synaptiques, - Un module de calcul d'erreur (ER_LOC) configuré pour calculer un signal d'erreur locale binaire ou ternaire (51,1) à partir d'un signal intermédiaire binaire ou ternaire (41) généré par le neurone en réponse aux signaux d'erreur reçus et d'une estimée (a'1,1) de la dérivée d'une fonction d'activation équivalente (FAE) mise en oeuvre par le neurone (Nu) pendant la première phase de propagation de données, - Une seconde interface d'entrée/sortie (E/S2) apte à propager le signal d'erreur locale binaire ou ternaire (6i,l) vers plusieurs synapses sous forme d'impulsions.
  2. 2. Neurone artificiel impulsionnel (Nu) selon la revendication 1 dans lequel la première interface d'entrée/sortie (E/S1) est apte à émettre des signaux binaires ou ternaires vers plusieurs synapses sous forme d'impulsions pendant la première phase de propagation de données et la seconde 28 interface d'entrée/sortie (E/S2) est apte à recevoir des signaux binaires ou ternaires pondérés par des coefficients synaptiques pendant la première phase de propagation de données. 5
  3. 3. Neurone artificiel impulsionnel selon l'une des revendications 1 ou 2 comprenant : Un module d'intégration (INT_ER) desdits signaux d'erreur pour calculer une erreur cumulée (Uu), Au moins un comparateur (COMP_ER) pour comparer l'erreur lo cumulée (Vu) à au moins un seuil d'activation parmi un seuil d'activation positif et un seuil d'activation négatif, Un module d'activation (ACT_ER) configuré pour générer le signal intermédiaire binaire ou ternaire (4.1) en fonction du résultat de l'au moins un comparateur. 15
  4. 4. Neurone artificiel impulsionnel (NLI) appartenant à une couche intermédiaire (Ci) de plusieurs neurones, la couche intermédiaire (Ci) appartenant à un réseau de neurones comprenant plusieurs couches successives (CH, CI, 0,1), le réseau de neurones étant configuré pour 20 exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le neurone artificiel impulsionnel (Nu) comprenant, pour l'exécution de la seconde phase de rétro- 25 propagation: Une première interface d'entrée/sortie (E/S1) apte à recevoir des signaux d'erreur binaires ou ternaires, Un module de calcul d'erreur (ER LOC) configuré pour calculer un signal d'erreur locale binaire ou ternaire (51,i) à partir d'un signal 30 intermédiaire binaire ou ternaire (41) généré par le neurone en réponse aux signaux d'erreur reçus et d'une estimée (a'1,1) de la 29 dérivée d'une fonction d'activation équivalente (FAE) mise en oeuvre par le neurone (N1,1) pendant la première phase de propagation de données, Une seconde interface d'entrée/sortie (E/S2) apte à propager le 5 signal d'erreur locale binaire ou ternaire (6,.,) vers les neurones de la couche suivante (Cm).
  5. 5. Neurone artificiel impulsionnel (N,1) selon la revendication 4 dans lequel la première interface d'entrée/sortie (E/S1) est apte à émettre des signaux 10 binaires ou ternaires vers les neurones de la couche suivante (Ci+1) pendant la première phase de propagation de données et la seconde interface d'entrée/sortie (E/S2) est apte à recevoir des signaux binaires ou ternaires pendant la première phase de propagation de données. 15
  6. 6. Neurone artificiel impulsionnel selon l'une des revendications 4 ou 5 comprenant : Un module d'intégration (INT_ER) desdits signaux d'erreur binaires ou ternaires pour calculer une erreur cumulée et pondérée par des coefficients synaptiques (U1,1), 20 Au moins un comparateur (COMP_ER) pour comparer l'erreur cumulée (U,.1) à au moins un seuil d'activation parmi un seuil d'activation positif et un seuil d'activation négatif, Un module d'activation (ACT_ER) configuré pour générer le signal intermédiaire binaire ou ternaire (z,.1) en fonction du résultat de l'au 25 moins un comparateur.
  7. 7. Neurone artificiel impulsionnel (No) selon l'une des revendications 3 ou 6 dans lequel le module d'activation (ACT_ER) est configuré pour générer un signal intermédiaire positif lorsque l'erreur cumulée est supérieure au 30 seuil d'activation positif et un signal intermédiaire négatif lorsque l'erreur cumulée est inférieure au seuil d'activation négatif. 30
  8. 8. Neurone artificiel impulsionnel (Nu) selon la revendication 7 comprenant en outre un soustracteur pour soustraire de l'erreur cumulée (UA) la valeur du seuil d'activation positif lorsqu'un signal intermédiaire positif est 5 généré et soustraire de l'erreur cumulée (Uu) la valeur du seuil d'activation négatif lorsqu'un signal intermédiaire négatif est généré.
  9. 9. Neurone artificiel impulsionnel (No) selon l'une des revendications précédentes comprenant en outre un module de calcul (MAJ) d'une mise 10 à jour de coefficients synaptiques à partir de l'erreur locale (.5u) et d'un résultat (x01) de la fonction d'activation équivalente (FAE).
  10. 10. Neurone artificiel impulsionnel (No) selon la revendication 9 dans lequel le résultat (xi 1_1) de la fonction d'activation équivalente (FAE) est calculé 15 pendant la phase de propagation de données d'un neurone.
  11. 11. Neurone artificiel impulsionnel (No) selon l'une des revendications 9 ou 10 dans lequel le module de calcul (MAJ) d'une mise à jour de coefficients synaptiques est activé après la propagation de l'erreur locale. 20
  12. 12. Neurone artificiel impulsionnel (NILI) selon l'une des revendications précédentes dans lequel le module de calcul (ER_LOC) d'un signal d'erreur locale est configuré pour calculer un produit entre le signal 25 intermédiaire (zu) et l'estimée (a'u) de la dérivée de la fonction d'activation équivalente (FAE).
  13. 13. Neurone artificiel impulsionnel (N11) selon l'une des revendications précédentes dans lequel la fonction d'activation équivalente (FAE) est 30 une fonction d'intégration des impulsions (su) générées par le neurone et pondérée par un paramètre de taux d'apprentissage (r1) du réseau de neurones. 31
  14. 14. Neurone artificiel impulsionnel (Ni), selon l'une des revendications précédentes comprenant un module de calcul de dérivée (DER) configuré pour calculer l'estimée (a'i,1) de la dérivée de la fonction d'activation équivalente (FAE) à partir d'un résultat de la fonction d'activation 5 équivalente (FAE) (xi,l) mise en oeuvre par le neurone (N1,1) pendant la première phase de propagation de données et d'une variable d'intégration (V11) du neurone pendant la première phase de propagation de données.
  15. 15. Neurone artificiel impulsionnel (Nu) selon la revendication 14 dans lequel 10 l'estimée (a'i,i) de la dérivée de la fonction d'activation équivalente (FAE) est égale à 1 lorsque le résultat (xi,i) de ladite fonction est strictement positif ou la variable d'intégration (Vi,1) est strictement positive, et est égale à 0 sinon. 15
  16. 16. Neurone artificiel impulsionnel (Nu) selon l'une des revendications précédentes dans lequel le module de calcul de dérivée (DER) est activé pendant la phase de propagation de données du neurone ou pendant la phase de rétro-propagation d'erreurs du neurone. 20
  17. 17. Réseau de neurones artificiels impulsionnels configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le réseau de neurones 25 comprenant plusieurs couches de neurones artificiels impulsionnels selon l'une des revendications précédentes, chaque neurone étant connecté au moins à un neurone d'une couche suivante ou à un neurone d'une couche précédente par l'intermédiaire d'une synapse. 30
  18. 18. Réseau de neurones artificiels impulsionnels selon la revendication 17, le réseau comprenant une couche d'entrée et une couche de sortie, les neurones de la couche d'entrée étant configurés pour recevoir des données à propager sous forme binaire ou ternaire et les neurones de la 32 couche de sortie étant configurés pour calculer, à partir des données propagées pendant la première phase de propagation de données, une erreur entre un résultat obtenu et un résultat cible. 5
  19. 19. Réseau de neurones artificiels impulsionnels selon la revendication 18 dans lequel chaque neurone de la couche de sortie comprend un codeur (COD) configuré pour coder l'erreur en un ensemble d'au moins un signal binaire ou ternaire. 10
  20. 20. Réseau de neurones artificiels impulsionnels selon la revendication 19 dans lequel le codeur (COD) est configuré pour quantifier l'erreur sur deux ou trois niveaux de quantification de manière à générer un signal binaire ou ternaire. 15
  21. 21. Réseau de neurones artificiels impulsionnels selon la revendication 19 dans lequel le codeur (COD) est configuré pour coder l'erreur par un groupe de signaux binaires successifs ou un groupe de signaux ternaires successifs. 20
  22. 22. Réseau de neurones artificiels impulsionnels configuré pour exécuter un mécanisme d'apprentissage comprenant une première phase de propagation de données d'une couche d'entrée vers une couche de sortie, et une seconde phase de rétro-propagation d'erreurs depuis la couche de sortie vers la couche d'entrée, le réseau de neurones 25 comprenant plusieurs couches de neurones artificiels impulsionnels selon l'une quelconque des revendications 4 à 6, chaque neurone étant connecté au moins à un neurone d'une couche suivante ou à un neurone d'une couche précédente par l'intermédiaire d'une synapse ayant un poids synaptique, les synapses (W1,1,...WK,I.1) étant implémentées sous 30 forme de mémoires numériques, de dispositifs memristifs ou de circuits analogiques. 33
  23. 23. Réseau de neurones artificiels impulsionnels selon la revendication 22 dans lequel chaque synapse est configurée pour mettre à jour son poids synaptique en réponse à un signal d'erreur binaire ou ternaire (5i.1) reçu depuis un neurone d'une couche suivante (Ci) et à un signal représentatif 5 du résultat (xj,11) de la fonction d'activation équivalente (FAE) reçu depuis un neurone d'une couche précédente (Cm). 10
FR1859760A 2018-10-23 2018-10-23 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels Pending FR3087560A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR1859760A FR3087560A1 (fr) 2018-10-23 2018-10-23 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
JP2021520563A JP7433307B2 (ja) 2018-10-23 2019-10-22 パルスニューラルネットワークにおける誤差のパルス形式での逆伝播
US17/287,277 US20210397968A1 (en) 2018-10-23 2019-10-22 Backpropagation of errors in pulsed form in a pulsed neural network
EP19787001.7A EP3871153A1 (fr) 2018-10-23 2019-10-22 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
PCT/EP2019/078669 WO2020083880A1 (fr) 2018-10-23 2019-10-22 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1859760A FR3087560A1 (fr) 2018-10-23 2018-10-23 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Publications (1)

Publication Number Publication Date
FR3087560A1 true FR3087560A1 (fr) 2020-04-24

Family

ID=66166046

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1859760A Pending FR3087560A1 (fr) 2018-10-23 2018-10-23 Retro-propagation d'erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels

Country Status (5)

Country Link
US (1) US20210397968A1 (fr)
EP (1) EP3871153A1 (fr)
JP (1) JP7433307B2 (fr)
FR (1) FR3087560A1 (fr)
WO (1) WO2020083880A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200076083A (ko) * 2018-12-19 2020-06-29 에스케이하이닉스 주식회사 오류 역전파를 이용하여 지도 학습을 수행하는 뉴로모픽 시스템
US20200293860A1 (en) * 2019-03-11 2020-09-17 Infineon Technologies Ag Classifying information using spiking neural network
KR102474053B1 (ko) * 2020-06-22 2022-12-06 주식회사 퓨리오사에이아이 뉴럴네트워크 프로세서
US11837281B2 (en) * 2021-08-31 2023-12-05 Integrated Circuit, Interface Circuit And Method Integrated circuit, interface circuit and method
CN114781633B (zh) * 2022-06-17 2022-10-14 电子科技大学 一种融合人工神经网络与脉冲神经网络的处理器
CN115392443B (zh) * 2022-10-27 2023-03-10 之江实验室 类脑计算机操作***的脉冲神经网络应用表示方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269485A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Cold neuron spike timing back-propagation
US20170228646A1 (en) * 2016-02-04 2017-08-10 Qualcomm Incorporated Spiking multi-layer perceptron

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489623B1 (en) * 2013-10-15 2016-11-08 Brain Corporation Apparatus and methods for backward propagation of errors in a spiking neuron network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269485A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Cold neuron spike timing back-propagation
US20170228646A1 (en) * 2016-02-04 2017-08-10 Qualcomm Incorporated Spiking multi-layer perceptron

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
H. MOSTAFA ET AL.: "Hardware efficient on line learning through pipelined truncated error back-propagation in binary state networks", FRONTIERS IN NEUROSCIENCE, 2017
PETER O'CONNOR ET AL: "Deep spiking networks", 7 November 2016 (2016-11-07), XP055607120, Retrieved from the Internet <URL:https://arxiv.org/pdf/1602.08323.pdf> *
S. YIN ET AL.: "Algorithm and hardware design of discrete-time spiking neural networks based on back propagation with binary activations", IEEE BIOMEDICAL CIRCUITS AND SYSTEMS, 2017

Also Published As

Publication number Publication date
JP2022504942A (ja) 2022-01-13
WO2020083880A1 (fr) 2020-04-30
EP3871153A1 (fr) 2021-09-01
JP7433307B2 (ja) 2024-02-19
US20210397968A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
FR3087560A1 (fr) Retro-propagation d&#39;erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d&#39;un reseau de neurones convolutionnel
FR3025344A1 (fr) Reseau de neurones convolutionnels
FR2646575A1 (fr) Procede et structure pour la compression de donnees
CA2992036A1 (fr) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
WO2022008605A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d&#39;ordinateur associés
FR2716279A1 (fr) Réseau neuronal chaotique récurrent et algorithme d&#39;apprentissage pour celui-ci.
EP3202044B1 (fr) Procede de codage d&#39;un signal reel en un signal quantifie
WO2022171632A1 (fr) Circuit neuromorphique et procédé d&#39;entraînement associé
EP4078817A1 (fr) Procede et dispositif de codage additif de signaux pour implementer des operations mac numeriques a precision dynamique
US20210073620A1 (en) Neuromorphic spike integrator apparatus
US11526735B2 (en) Neuromorphic neuron apparatus for artificial neural networks
US11727252B2 (en) Adaptive neuromorphic neuron apparatus for artificial neural networks
FR3105659A1 (fr) Procédé et dispositif de codage binaire de signaux pour implémenter des opérations MAC numériques à précision dynamique
US20220121910A1 (en) Neural apparatus for a neural network system
FR3134363A1 (fr) Procédé de prédiction de trajectoires de piétons pour le renforcement de la sécurité de la conduite autonome d’un véhicule, véhicule muni de moyens pour la mise en œuvre de ce procédé
FR3138718A1 (fr) Dispositif électronique et procédé de traitement de données comportant au moins un modèle d’intelligence artificielle auto-adaptatif avec apprentissage local, système électronique et programme d’ordinateur associés
FR3129508A1 (fr) Procédé d’apprentissage de valeurs de poids synaptique d’un réseau de neurones, procédé de traitement de données, programme d’ordinateur, calculateur et système de traitement associés
FR2719400A1 (fr) Procédé et dispositif d&#39;extraction d&#39;un plus grand sous-ensemble d&#39;objets, utilisant un réseau de neurones.
Gargouri et al. Neural network based image denoising with pulse mode operations and hybrid on-chip learning algorithm
Li et al. Image restoration using RO learning approach
LiP Adaptive Image Signal Processing with Machine Learning Based Approach
FR2715487A1 (fr) Procédé et dispositif de gestion optimale de moyens aptes à accomplir une tâche globale.
JPH08202673A (ja) ニューラルネットワークとその学習方法

Legal Events

Date Code Title Description
PLFP Fee payment
PLSC Publication of the preliminary search report

Effective date: 20200424

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6