FR3025344A1 - Reseau de neurones convolutionnels - Google Patents

Reseau de neurones convolutionnels Download PDF

Info

Publication number
FR3025344A1
FR3025344A1 FR1458088A FR1458088A FR3025344A1 FR 3025344 A1 FR3025344 A1 FR 3025344A1 FR 1458088 A FR1458088 A FR 1458088A FR 1458088 A FR1458088 A FR 1458088A FR 3025344 A1 FR3025344 A1 FR 3025344A1
Authority
FR
France
Prior art keywords
output
matrix
neuron
input
neurons
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.)
Granted
Application number
FR1458088A
Other languages
English (en)
Other versions
FR3025344B1 (fr
Inventor
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 FR1458088A priority Critical patent/FR3025344B1/fr
Priority to PCT/EP2015/068955 priority patent/WO2016030230A1/fr
Priority to US15/505,231 priority patent/US11055608B2/en
Priority to EP15756132.5A priority patent/EP3186752A1/fr
Publication of FR3025344A1 publication Critical patent/FR3025344A1/fr
Application granted granted Critical
Publication of FR3025344B1 publication Critical patent/FR3025344B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

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)
  • Complex Calculations (AREA)

Abstract

Réseau de neurones convolutionnel (100) comprenant une pluralité de neurones artificiels agencés en une ou plusieurs couches, chaque couche de convolution comprenant une ou plusieurs matrices de sortie (14) comprenant un ensemble de neurones de sortie, chaque matrice de sortie étant connectée à une matrice d'entrée, comprenant un ensemble de neurones d'entrée, par des synapses artificielles associées à une matrice de convolution comprenant les coefficients de poids synaptiques correspondant aux neurones de sortie de ladite matrice de sortie, la valeur de sortie de chaque neurone de sortie étant déterminée à partir des neurones d'entrée de ladite matrice d'entrée auxquels le neurone de sortie est connecté et des coefficients de poids synaptiques de la matrice de convolution associée à ladite matrice de sortie, caractérisé en ce que chaque synapse est constituée d'un ensemble de dispositif memristifs comprenant au moins un dispositif memristif, chaque ensemble de dispositif memristif stockant un coefficient de ladite matrice de convolution, et en ce que, en réponse à un changement d'état d'un neurone d'entrée d'une matrice d'entrée, le réseau de neurones est apte à : - interconnecter dynamiquement chaque ensemble de dispositifs memristifs stockant les coefficients de la matrice de poids aux neurones de sortie connectés audit neurone d'entrée, et - pour chaque neurone de sortie, accumuler les valeurs des coefficients de poids stockées dans lesdits ensembles de dispositifs memristifs interconnectés dynamiquement audit neurone de sortie dans un accumulateur de sortie (140), ce qui fournit la valeur de sortie dudit neurone de sortie.

Description

Réseau de neurones convolutionnels Domaine technique L'invention concerne de manière générale les réseaux de neurones artificiels et en particulier la mise en oeuvre de réseaux de neurones convolutionnels sous forme de circuits électroniques à partir de dispositifs memristifs. Art Antérieur Les réseaux de neurones artificiels sont schématiquement inspirés des réseaux de neurones biologiques dont ils imitent le fonctionnement. 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 varie en fonction de la tension appliquée à leurs bornes. Les réseaux de neurones artificiels sont utilisés dans différents domaines de traitement du signal (visuel, sonore, ou autre) comme par exemple dans le domaine de la classification ou la reconnaissance d'image. Les réseaux de neurones convolutionnels correspondent à un modèle particulier de réseau de neurones articifiels. Les réseaux de neurones convolutionnels ont été décrits pour la première fois dans l'article de K. Fukushima, « Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological Cybernetics, 36(4):193-202, 1980. ISSN 0340-1200. doi: 10.1007/BF00344251 ». De nombreux développements relatifs aux réseaux de neurones ont été proposés, comme par exemple dans les articles : - Y. LeCun, L. Bottou, Y. Bengio, et P. Haffner, « Gradient-based learning applied 25 to document recognition. Proceedings of the IEEE, 86(11):2278-2324, 1998. ISSN 0018-9219. doi: 10.1109/ 5.726791. », et - P. Simard, D. Steinkraus, et J. C. Platt, « Best practices for convolutional neural networks applied to visual document analysis. Document Analysis and 3025344 2 Recognition, 2003. Proceedings. Seventh International Conference on, pages 958-963, 2003. doi: 10.1109/ICDAR.2003. 1227801 ». Les réseaux de neurones convolutionnels (désignés en langue anglo-saxonne par les expressions "convolutional neural networks", ou "deep (convolutional) neural 5 networks" ou encore "ConvNets") sont des réseaux de neurones sans rétro-action (« feedforward »), inspirés par les systèmes visuels biologiques. Appliqués à la reconnaissance d'images, ces réseaux permettent un apprentissage des représentations intermédiaires d'objets dans les images qui sont plus petites et généralisables pour des objets similaires, ce qui facilite leur reconnaissance. Un 10 tel réseau peut être constitué de plusieurs couches de convolution, incluant ou non des couches de regroupement (« pooling » en langue anglo-saxonne) et qui sont généralement suivi par un classifieur type perceptron multicouches, la sortie d'une couche étant connectée sur l'entrée de la suivante. Dans une couche de convolution, chaque neurone est connecté à une sous- 15 matrice de la matrice d'entrée. Les sous-matrices ont la même taille. Elles sont décalées les unes des autres de manière régulière et peuvent se chevaucher. La matrice d'entrée peut être de dimension quelconque. Cependant, la matrice d'entrée est généralement de dimension 2D lorsque les données à traiter sont des données visuelles, les deux dimensions correspondant alors aux dimensions 20 spatiales X et Y d'une image. Les neurones sont connectés à leur sous-matrice d'entrée I par des synapses dont le poids est réglable. La matrice K des poids synaptiques appliquée aux sous-matrices d'entrée des neurones est la même pour tous les neurones d'une même carte de sortie ("feature map" en langue anglo-saxone). Une telle matrice K est encore appelée « noyau de convolution ». Le fait que le noyau de convolution soit partagé pour l'ensemble des neurones d'une même carte de sortie O, et donc appliqué sur l'ensemble de la matrice d'entrée, diminue la mémoire nécessaire pour le stockage des coefficients, ce qui optimise les performances. Par exemple pour la reconnaissance d'images, cela permet de minimiser le nombre de filtres ou de représentations intermédiaires qui codent au mieux les caractéristiques de l'image et qui sont réutilisables sur toute l'image. Les coefficients d'un noyau de 3025344 3 convolution K (c'est-à-dire les poids synaptiques) peuvent correspondre à des filtres classiques de traitement du signal (Gaussien, Gabor, Laplace...), ou être déterminés par apprentissage, supervisé ou non-supervisé, par exemple en utilisant l'algorithme de rétro-propagation du gradient utilisé dans les réseaux de 5 neurones de type perceptrons multi-couches. Les coefficients des noyaux de convolution peuvent être positifs ou négatifs, et sont généralement normalisés entre -1 et 1, tout comme les valeurs d'entrée et de sortie des neurones. Un neurone réalise dans un premier temps la somme pondérée h des coefficients de sa sous-matrice d'entrée par le noyau de convolution (autrement dit le produit 10 scalaire entre la sous-matrice d'entrée I et la matrice K), en appliquant la fonction d'agrégation g = <I,W>. La sortie du neurone correspond à la valeur de la fonction d'activation g du neurone appliquée à cette somme : g(h). Classiquement, g peut prendre la forme d'une fonction sigmoïde, typiquement la fonction tangente hyperbolique.
15 Une couche de convolution peut contenir un ou plusieurs noyaux de convolution, qui ont chacun une matrice d'entrée, qui peut être la même, mais qui ont des coefficients différents correspondant à des filtres différents. Chaque noyau de convolution dans une couche produit une carte de sortie différente de sorte que les neurones de sortie sont différents pour chaque noyau.
20 Les réseaux convolutionnels peuvent également inclure des couches de "pooling" locales ou globales qui combinent les sorties de groupe de neurones d'une ou plusieurs cartes de sortie. La combinaison des sorties peut consister par exemple à prendre la valeur maximale ou moyenne des sorties du groupe de neurones, pour la sortie correspondante, sur la carte de sortie de la couche de « pooling ».
25 Les couches de « pooling » permettent de réduire la taille des cartes de sorties d'une couche à l'autre dans le réseau, tout en améliorant ses performances en le rendant plus tolérant à de petites déformations ou translations dans les données d'entrée. Les réseaux convolutionnels peuvent également inclure des couches 30 complètement connectés de type perceptron.
3025344 4 La figure 1 représente un exemple de réseau convolutionnel simple, avec une couche d'entrée « env » correspondant à la matrice d'entrée, deux couches de convolution, « conv1 » et « conv2 », ainsi que deux couches complètement connectés « fc1 » et « fc2 ». Dans cet exemple, la taille des noyaux de convolution 5 est de 5x5 pixels et ils sont décalés entre eux de 2 pixels (soit un décalage ou « stride » de 2) : - « conv1 » a une matrice d'entrée « env » et 6 noyaux de convolution différents produisant 6 cartes de sorties ; - « conv2 » a 12 noyaux de convolution différents et donc 12 cartes de sorties, 10 et chaque carte de sortie prend en entrée l'ensemble des 6 cartes de sortie de la couche précédente. Il existe des solutions consistant à implémenter les réseaux de neurones sur processeur graphique GPU pour améliorer significativement leurs performances, comme la solution décrite dans l'article de D. C. Ciresan, U. Meier, J. Masci, L. M.
15 Gambardella, and J. Schmidhuber, « Flexible, high performance convolutional neural networks for image classification. Proceedings of the Twenty-Second International Joint Conference on Artificial Intelligence - Volume Two», IJCAI' 11, pages 1237-1242, 2011. ISBN 978-1-57735-514-4. doi: 10.5591/978-1-57735- 516-8/ IJCA111-210.
20 Une caractéristique importante des réseaux de neurones est leur passage à l'échelle. En effet, les réseaux de neurones restent efficaces quelle que soit la taille de la base d'images à apprendre comme décrit dans : - Q. V. Le, R. Monga, M. Devin, K. Chen, G. S. Corrado, J. Dean, and A. Y. Ng. Building high-level features using large scale unsupervised learning, In 25 International Conference on Machine Learning, 2012; - A. Krizhevsky, 1. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems 25, pages 1097-1105. Curran Associates, Inc., 2012. Dans leur version classique, les éléments constituant la matrice d'entrée et les 30 cartes de sortie sont des nombres, entiers ou décimaux, à virgule fixe ou flottante. Ainsi, l'opération de convolution entre une sous-matrice d'entrée et un neurone de sortie correspond au produit scalaire entre la sous-matrice d'entrée I et la matrice 3025344 5 K. Dans une version dite « impulsionnelle », les valeurs d'entrée et de sortie sont codées avec des impulsions. Une valeur peut ainsi être codée par le nombre d'impulsions durant une fenêtre de temps fixée (codage fréquentiel), ou par l'instant d'émission d'une impulsion selon une technique de codage d'ordre de 5 rang. Dans le cas d'un codage fréquentiel, le calcul de la somme pondérée h se fait par accumulation du coefficient du noyau de convolution à chaque arrivée d'une impulsion sur l'entrée correspondante. La fonction d'activation du neurone g peut dans ce cas être remplacée par un seuil. Lorsque la valeur absolue de h dépasse 10 le seuil suite à l'arrivée d'une impulsion sur la sous-matrice d'entrée, le neurone de sortie émet une impulsion du signe de h et remet h à la valeur 0. Le neurone entre alors dans une période dite « réfractaire » durant laquelle il ne peut plus émettre d'impulsion durant une période fixée. Les impulsions peuvent par conséquent être positives ou négatives, selon le signe de h au moment du 15 dépassement du seuil. Une impulsion négative en entrée inverse le signe du coefficient du noyau correspondant pour l'accumulation. Une équivalence entre version classique et version impulsionnelle est montrée dans J. Perez-Carrasco, B. Zhao, C. Serrano, B. Acha, T. Serrano-Gotarredona, S. Chen, and B. LinaresBarranco. Mapping from frame-driven to frame-free event-driven vision systems by 20 low-rate rate coding and coincidence processing-application to feedforward convnets. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 35(11):2706-2719, 2013. ISSN 0162-8828. doi: 10.1109/TPAMI.2013.71. Une implémentation matérielle de réseau convolutionnel impulsionnel a notamment été proposée dans L. Camunas-Mesa, C. Zamarreno-Ramos, A.
25 Linares-Barranco, A. Acosta-Jimenez, T. Serrano- Gotarredona, and B. Linares- Barranco. An event-driven multi-kernel convolution processor module for eventdriven vision sensors. Solid-State Circuits, IEEE Journal of, 47(2):504-517, 2012. ISSN 0018-9200. doi: 10.1109/JSSC.2011.2167409. Une telle implémentation de convolution utilise une mémoire numérique séparée pour stocker les coefficients 30 des noyaux de convolution et nécessite de copier ces coefficients du noyau de la mémoire à l'unité de calcul (ALU) à chaque arrivée d'impulsion.
3025344 6 Ainsi, les solutions existantes nécessitent toutes une unité de calcul pour le calcul de convolution. Par ailleurs, de telles solutions sont limitées par la taille du bus de données des mémoires numériques et nécessitent dans un premier temps une récupération de la valeur stockée dans la mémoire avant de pouvoir effectuer une 5 opération sur celle-ci. Ainsi, par exemple, si la taille du bus mémoire est de 64 bits et que les coefficients sont stockés sur 8 bits, il n'est possible de récupérer à chaque coup d'horloge que 8 coefficients. Des millions de cycles d'horloge peuvent donc être nécessaires en fonction du nombre de coefficients dans le réseau. Il en résulte un temps de traitement conséquent, ainsi qu'une 10 consommation énergétique importante pour calculer l'ensemble des sorties du réseau pour une donnée d'entrée. Une telle situation constitue un goulot d'étranglement fondamental de ce type d'architecture (encore appelé Goulot d'étranglement de Von Neumann ou « Von Neumann bottleneck » en langue anglo-saxonne). Un tel goulot d'étranglement peut tout au plus être limité (mais 15 non éliminé) par l'utilisation d'instructions de type SIMD (acronyme pour « Single Instruction on Multiple Data » signifiant littéralement « instruction unique sur des données multiples ») pour le traitement de plusieurs données en une instruction processeur et par l'utilisation de mémoire distribuée avec plusieurs unités de calcul comme dans les processeurs graphiques GPU. zo Définition générale de l'invention L'invention vient améliorer la situation. A cet effet, elle propose un réseau de neurones convolutionnel comprenant une pluralité de neurones artificiels agencés en une ou plusieurs couches. Chaque couche de convolution comprenant une ou plusieurs matrices de sortie comprenant un ensemble de neurones de sortie.
25 Chaque matrice de sortie est connectée à une matrice d'entrée, qui comprend un ensemble de neurones d'entrée, par des synapses artificielles associées à une matrice de convolution comprenant les coefficients de poids synaptiques correspondant aux neurones de sortie de ladite matrice de sortie. La valeur de sortie de chaque neurone de sortie est déterminée à partir des neurones d'entrée 30 de la matrice d'entrée auxquels le neurone de sortie est connecté et des coefficients de poids synaptiques de la matrice de convolution associée à la matrice de sortie. Chaque synapse est constituée d'un ensemble de dispositif 3025344 7 memristifs comprenant au moins un dispositif memristif, chaque ensemble de dispositif memristif stockant un coefficient de ladite matrice de convolution. En réponse à un changement d'état d'un neurone d'entrée d'une matrice d'entrée, le réseau de neurones est apte à : 5 - interconnecter dynamiquement chaque ensemble de dispositifs memristifs stockant les coefficients de la matrice de poids aux neurones de sortie connectés au neurone d'entrée, et - pour chaque neurone de sortie, accumuler les valeurs des coefficients de poids stockées dans les ensembles de dispositifs memristifs interconnectés 10 dynamiquement au neurone de sortie dans un accumulateur de sortie, ce qui fournit la valeur de sortie du neurone de sortie. Selon un mode de réalisation, les neurones peuvent utiliser un codage temporel, l'interconnexion dynamique étant mise en oeuvre en réponse au déclenchement 15 d'un neurone d'entrée de la matrice d'entrée. En réponse à l'interconnexion dynamique, l'accumulation des valeurs des coefficients de poids peut alors être mise en oeuvre par propagation d'au moins une impulsion codant la valeur de chaque coefficient de poids, selon le codage 20 temporel, les valeurs accumulées dans les accumulateurs de sortie constituant les valeurs de sortie de la matrice de sortie. Le réseau de neurones peut comprendre un ensemble de commutateurs et un circuit logique de mise en correspondance des coefficients de poids synaptiques 25 avec les neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état, à partir de l'adresse du neurone d'entrée dans la matrice d'entrée, pour réaliser l'interconnexion dynamique. Chaque impulsion peut comprendre un train de bits codant l'adresse (X, Y) de 30 destination de l'impulsion suivant deux axes perpendiculaires X et Y, le repère (X, Y) correspondant au repère de la matrice d'entrée ; lorsque ladite impulsion arrive sur la matrice d'entrée, l'adresse (X, Y) codée représente l'emplacement du neurone d'entrée à activer.
3025344 8 Selon un mode de réalisation, l'interconnexion dynamique peut être réalisée en parallèle et en un seul cycle, en connectant simultanément l'ensemble des coefficients de poids stockés dans les dispositifs memristifs aux neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état.
5 Selon un autre mode de réalisation, l'interconnexion dynamique peut être réalisée semi-séquentiellement en connectant les coefficients de la matrice de poids stockés dans les dispositifs memristifs, une ligne de la matrice après l'autre, aux neurones de sortie connectés au neurone d'entrée ayant subi un changement Io d'état. En variante, l'interconnexion dynamique peut être réalisée semi-séquentiellement, en connectant les coefficients de la matrice de poids stockés dans les dispositifs memristifs, une colonne de la matrice après l'autre, aux neurones de sortie 15 connectés au neurone d'entrée ayant subi un changement d'état. Dans une autre variante encore, l'interconnexion dynamique peut être réalisée séquentiellement, en connectant les coefficients de la matrice de convolution, stockés dans lesdits dispositifs memristifs, l'un après l'autre, aux neurones de 20 sortie connectés au neurone d'entrée ayant subi un changement d'état. Selon une caractéristique, le réseau de neurones peut comprendre un accumulateur agencé à la sortie de chaque synapse, l'accumulateur réalisant l'accumulation de la valeur du coefficient de poids stockée dans les dispositifs memristifs de la synapse avec la valeur stockée dans l'accumulateur du neurone 25 de sortie correspondant, la valeur stockée dans l'accumulateur auxiliaire étant ensuite propagée par les impulsions dans l'accumulateur de la matrice de sortie. Selon une autre caractéristique, le réseau de neurones peut comprendre un accumulateur agencé au niveau de chaque neurone de sortie, la sortie de chaque dispositif memristif de la synapse étant propagée au niveau du neurone de sortie, 30 la valeur ainsi propagée étant accumulée avec la valeur stockée dans l'accumulateur.
3025344 9 Les sorties de neurones peuvent être groupées, tandis que les valeurs accumulées correspondant à des sorties groupées sont stockées dans un accumulateur commun. Selon une autre caractéristique encore, le réseau de neurones peut comprendre 5 un apprentissage en ligne de type STDP à partir de l'interconnexion dynamique. Les modes de réalisation proposés permettent ainsi de faire le calcul de convolution directement dans la mémoire et en parallèle, ce qui améliore la rapidité et l'efficacité énergétique de l'opération. Brève description des dessins 113 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit et des figures des dessins annexés dans lesquels: La figure 1 représente un exemple de réseau convolutionnel simple à trois couches, ainsi que la couche de sortie ; La figure 2 représente un exemple de réseau convolutionnel complexe, 15 incluant des couches de "pooling"; La figure 3 est un schéma montrant une couche de convolution constituée de plusieurs cartes/matrices de sortie ; La figure 4 illustre le principe de fonctionnement d'une couche convolutionnelle dans un tel réseau ; 20 La figure 5 est un schéma illustrant le codage impulsionnel et la propagation dans le réseau de neurones des impulsions ; La figure 6 représente un dispositif matériel implémentant un réseau de neurones convolutionnel impulsionnel, selon certains modes de réalisation ; La figure 7 est un organigramme représentant le procédé de convolution, 25 selon certains modes de réalisation ; - La figure 8 est une représentation schématique d'un autre exemple d'implémentation matérielle des opérations de convolution dans un réseau 3025344 10 de neurones avec regroupement des sorties (sous-échantillonnage en sortie) ; La figure 9 est une représentation schématique d'un autre exemple d'implémentation matérielle des opérations de convolution dans un réseau 5 de neurones avec apprentissage STDP ; La figure 10 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation parallèle (en un cycle) ; La figure 11 représente un exemple de réalisation matérielle du réseau de neurones correspondant à un mode de réalisation parallèle (1 seul cycle) 10 conformément au mode de réalisation de la figure 10 ; La figure 12 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation semi-séquentiel (en n cycles). La figure 13 représente un exemple de réalisation matérielle du réseau de neurones selon un mode un mode semi-séquentiel en Y ; 15 La figure 14 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation complètement séquentiel ; La figure 15 représente un exemple de réalisation matérielle du réseau de neurones correspondant à un mode de réalisation complètement séquentiel ; 20 La figure 16 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation semi-séquentiel ; La figure 17 représente un exemple de réalisation matérielle du réseau de neurones selon un mode semi-séquentiel en X ; La figure 18 est un organigramme représentant l'étape d'accumulation, 25 selon un mode de réalisation côté noyau ; La figure 19 représente un exemple de réalisation matérielle de l'accumulateur dans le mode de réalisation côté noyau en mode écriture-ajout ; 3025344 11 La figure 20 représente l'exemple de réalisation matérielle de la partie accumulation de la figure 19 en mode rétro-écriture ; La figure 21 est un organigramme représentant l'étape d'accumulation, selon un mode de réalisation de l'accumulation côté sortie ; et 5 La figure 22 représente un exemple de réalisation matérielle de l'accumulateur dans le mode de réalisation de l'accumulation côté sortie. Description détaillée La Figure 2 représente un exemple de réseau convolutionnel incluant des couches de regroupement (« pooling »), pour la classification d'images. Les images en bas 10 de la figure 2 représentent un extrait des noyaux de convolution de la première couche, après un apprentissage de type rétro-propagation du gradient, sur une base d'images telle que ImageNet. Un réseau de neurones artificiel (encore appelé réseau de neurones « formel » ou désigné simplement par l'expression « réseau de neurones » ci-après) est 15 constitué d'une ou plusieurs couches de neurones, interconnectées entre elles. Chaque couche est constituée d'un ensemble de neurones, qui sont connectés à une ou plusieurs couches précédentes. Chaque neurone d'une couche peut être connecté à un ou plusieurs neurones d'une ou plusieurs couches précédentes. La dernière couche du réseau est appelée « couche de sortie ».
20 Les neurones sont connectés entre eux par des synapses, ou poids synaptiques, qui pondèrent l'efficacité de la connexion entre les neurones, constituent les paramètres réglables d'un réseau et qui stockent l'information comprise dans le réseau. Les poids synaptiques peuvent être positifs ou négatifs. Les réseaux de neurones dit « convolutionnels » (ou encore « convolutional », 25 « deep convolutional », « convnets ») sont en outre composés de couches de types particuliers telles que les couches de convolution, les couches de regroupement (« pooling » en langue anglo-saxonne) et les couches complètement connectés (« fully connected »). Par définition, un réseau de neurones convolutionnel comprend au moins une couche de convolution ou de 30 « pooling ».
3025344 12 Comme illustré sur la figure 3, une couche de convolution ou de « pooling » peut être constituée d'une ou plusieurs matrices de sortie 14 (encore appelées « cartes de sortie » ou « output feature map » en langue anglo-saxonne), chaque carte de sortie pouvant être connectée à une ou plusieurs matrices d'entrée 11 (encore 5 appelées « cartes d'entrée »). Comme illustré sur la figure 4, une matrice de sortie notée 0 comprend des coefficients Oii, et a une taille notée (Oh, Ow). Cette matrice correspond à une matrice de neurones et les coefficients Oii correspondent aux valeurs de sortie de ces neurones, calculée à partir des entrées et des poids synaptiques. Une matrice ou carte d'entrée 11 peut correspondre à une carte de sortie d'une couche précédente, ou à une matrice d'entrée du réseau qui reçoit les stimuli ou une partie des stimuli à traiter. Un réseau peut être constitué d'une ou plusieurs matrices d'entrée. Il peut s'agir par exemple des composantes RGB, HSV, YUV ou de toute autre composante classique d'une image, avec une matrice par 15 composante. Une matrice d'entrée notée I comprend des coefficients IQ, et a une taille notée (/h, /w). Une carte de sortie 0 est connectée à une matrice d'entrée I par une opération de convolution, via un noyau de convolution 12 noté K (le noyau de convolution est encore appelé filtre, ou matrice de convolution), de taille (n, m) et comprenant des 20 coefficients Km. Chaque neurone de la carte de sortie 14 est connecté à une partie de la matrice d'entrée 11, cette partie étant encore appelée « sous-matrice d'entrée » ou « champ récepteur du neurone » et étant de même taille que la matrice de convolution K. La matrice de convolution K comprenant les poids synaptiques est commune pour l'ensemble des neurones de la carte de sortie 0 25 (les poids de la matrice K sont alors dits « poids partagés). Chaque coefficient de sortie de la matrice de sortie Oij satisfait alors la formule suivante : /min (n-1,1h-i.si) min (m-1,/w-j.sj) Oij = g Kk,1 k=0 1=0 3025344 13 Dans la formule ci-dessus, g() désigne la fonction d'activation du neurone, tandis que si et s1 désignent les paramètres de décalage (« stride » en langue anglosaxone) vertical et horizontal respectivement. Un tel décalage « stride » correspond au décalage entre chaque application du noyau de convolution sur la 5 matrice d'entrée. Par exemple, si le décalage est supérieur ou égal à la taille du noyau, alors il n'y a pas de chevauchement entre chaque application du noyau. Une carte de sortie 0 est connectée à une matrice d'entrée I par une opération de « pooling » qui réalise un sous-échantillonnage de la matrice d'entrée, ce qui fournit une matrice sous-échantillonnée. Le sous-échantillonnage peut être de 10 deux types : - Un type de sous-échantillonnage dit « MAX pooling » (regroupement maximal) selon l'équation ci-dessous: m = g (max kmin0 (n-1,/h-i.si)max i in (m-1,/w-j.si) T.o - Un type d'échantillonnage dit « AVERAGE pooling » (regroupement moyen) selon l'équation ci-dessous : Oij = g 1 min (n-1,/h-i.si) min (m-1,/w-j.si) k=0 1=0 n.
15 Les poids synaptiques associés aux connexions dans le cas d'une couche de « pooling » sont généralement unitaires et n'apparaissent donc pas dans les formules ci-dessus. Une couche complètement connectée comprend un ensemble de neurones, chaque neurone étant connecté à toutes les entrées de la couche. Chaque 20 neurone Oi dispose de ses propres poids synaptiques Wi j avec les entrées Ii correspondantes et effectue la somme pondérée des coefficients d'entrée avec les poids qui est ensuite passée à la fonction d'activation du neurone pour obtenir la sortie du neurone.
3025344 14 La fonction d'activation des neurones g() est généralement une fonction sigmoïde, comme par exemple la fonction tanh(). Pour les couches de « pooling », la fonction d'activation peut être par exemple la fonction Identité. Les poids synaptiques sont déterminés par apprentissage. L'apprentissage d'un 5 réseau de neurones consiste à trouver les valeurs optimales des poids synaptiques à partir d'une méthode d'optimisation et d'une base d'apprentissage. Il existe une multitude de méthodes d'apprentissage tels que la méthode de rétro-propagation du gradient, le principe de base consistant, à partir d'un stimulus en entrée du réseau, à calculer la sortie du réseau, la comparer à la sortie attendue 10 (dans le cas d'un apprentissage dit supervisé) et rétro-propager un signal d'erreur dans le réseau, qui vient modifier les poids synaptiques par une méthode de descente du gradient. Les réseaux de neurones peuvent être transposés en codage impulsionnel comme illustré sur la figure 5. Dans ce cas, les signaux propagés en entrée et en 15 sortie des couches du réseau ne sont plus des valeurs numériques, mais des impulsions électriques (assimilables à des impulsions Dirac). L'information qui était codée dans la valeur des signaux (normalisé entre -1 et 1) est alors codée temporellement avec l'ordre d'arrivée des impulsions (codage par rang, ou « rank order coding ») ou avec la fréquence des impulsions.
20 Dans le cas d'un codage par rang, l'instant d'arrivée de l'impulsion est inversement proportionnel à la valeur absolue du signal à coder. Le signe de l'impulsion détermine alors le signe de la valeur du signal à coder. Dans le cas d'un codage fréquentielle, la fréquence des impulsions, comprise entre fmin et fmax, est proportionnelle à la valeur absolue du signal à coder. Le 25 signe de l'impulsion détermine le signe de la valeur du signal à coder. Par exemple, en considérant une matrice d'entrée du réseau correspondant à la composante de luminance d'une image, normalisée entre 0 et 1, un pixel (ou coefficient de la matrice) blanc, codé par une valeur 1, émettra des impulsions à une fréquence fmax, un pixel noir, codé par une valeur 0, émettra des impulsions à 30 une fréquence fmin, tandis qu'un pixel gris, codé par une valeur x, émettra des impulsions à une fréquence f = fmin + x(fmax - fmin). Le codage peut également 3025344 15 être pseudo-fréquentiel, par exemple poissonien : dans ce cas fmax et fmin représentent des fréquences moyennes uniquement. La phase initiale des impulsions peut être aléatoire. Les impulsions peuvent également provenir directement d'un capteur, tel qu'une 5 rétine ou une cochlée artificielle, imitant le fonctionnement de leur équivalent biologique. Dans le cas d'un neurone impulsionnel, la somme pondérée des poids synaptiques avec les signaux d'entrée est remplacée par l'intégration des impulsions provenant des mêmes entrées pondérées par les poids synaptiques.
10 Toutes les impulsions sont identiques, excepté leur signe, si bien que leur intégrale peut être considérée comme unitaire ou normalisé. Par ailleurs, dans l'approche impulsionnelle, la fonction d'activation du neurone est remplacée par un seuillage qui est unitaire dans le cas de poids synaptiques normalisés entre -1 et 1. Lorsque la valeur absolue de l'intégration du neurone 15 dépasse le seuil défini par le seuillage, le neurone émet une impulsion en sortie, qui est propagée vers l'ensemble des neurones des couches suivantes connectés à ce neurone. Le signe de cette impulsion correspond au signe de l'intégration du neurone. Lorsque le neurone émet une impulsion, son intégration est remise à 0 et le neurone entre dans une période dite « réfractaire ».
20 Lorsqu'un neurone est en période « réfractaire », il ne peut pas émettre de nouvelle impulsion en sortie, jusqu'à la fin de la période réfractaire, qui peut être égale à la période minimale des impulsions se propageant dans le réseau. Les synapses artificielles d'un réseau de neurones peuvent être réalisées à partir de dispositifs memristifs. Un dispositif memristif est un composant électronique à 25 deux terminaux qui se comporte comme une résistance ou une conductance, dont la valeur peut être changée avec l'application d'un courant ou d'une tension à ses bornes. Un dispositif de ce type peut être caractérisé par les équations suivantes : i = G.v 3025344 16 dG = f (v, G) dt Dans les équations ci-dessus, G désigne la conductance du dispositif qui relie son courant d'entrée i à la tension à ses bornes y.
5 Un dispositif memristif peut être binaire et/ou stochastique. Une famille de dispositifs memristifs particulièrement adaptée à la réalisation de synapses artificielles dans un réseau de neurones est telle que la caractéristique f(v,G) est non linéaire, comme par exemple les dispositifs de type MIM (Metal-InsulatorMetal) qui constituent la cellule de base de plusieurs technologies de mémoires 10 non volatiles telles que RRAM « Resistive Random Access Memory », CBRAM « Conductive-Bridging RAM » et OxRAM « Oxide-based Resistive Random Access Memory ». Ainsi, une synapse peut être composée d'un ou plusieurs dispositifs memristifs. De nombreuses autres technologies peuvent en outre être considérées comme 15 memristives, comme la mémoire à changement de phase (PCRAM ou PCM « Phase Change Memory »), les transistors à grille flottante, les memristors, les memristors organiques, le transistor NOMFET « Nano-particle Organic Memory Field Effect Transistor ». Un réseau de neurones artificiel peut être réalisé en utilisant de tels dispositifs 20 memristifs en tant que synapses artificiels et en les intégrant dans une structure de type « crossbar ». La Figure 6 représente un dispositif matériel 100 implémentant une carte de sortie d'une couche de convolution d'un réseau de neurones convolutionnel impulsionnel, selon certains modes de réalisation.
25 Selon un aspect de l'invention, le dispositif 100 est constitué de synapses 10, chaque synapse étant implémentée à partir d'un ou plusieurs dispositifs memristifs, pour effectuer les opérations de convolution d'un réseau de neurones convolutionnel 11 sans qu'il soit nécessaire d'utiliser d'unités de calcul pour de telles opérations et des opérations de copie du noyau de convolution. Dans la 3025344 17 suite de la description, il sera fait référence principalement à un unique « dispositif memristif » comme élément constitutif d'une synapse à titre d'illustration. Toutefois, l'invention s'applique également à une synapse constituée de plusieurs dispositifs memristif en parallèle dont la conductance équivalente correspond à la 5 somme des conductances des dispositifs memristifs individuels. La matrice (« crossbar » en langue anglo saxonne) dans laquelle sont intégrés les dispositifs memristifs 10 est désignée par la référence 5. Sur la figure 6, les coefficients du noyau 12 sont numérotés de 1 à 9 et étalés verticalement. Bien que non limitée à de telles applications, le dispositif 100 peut être utilisé pour 10 réaliser une implémentation matérielle de réseaux de neurones convolutionnels pour la classification et la reconnaissance d'images. La suite de la description sera faite essentiellement en référence à des cartes d'entrée comprenant des neurones de type pixels, à titre d'illustration. Les opérations de convolutions mises en oeuvre par le dispositif 100 permettent de 15 déterminer chaque coefficient Oij de la matrice de sortie 14 pour une couche de convolution donnée à partir de la matrice d'entrée 11 (encore notée I) de la couche de convolution et du noyau de convolution 12 (encore notée K). L'opération de convolution à partir de laquelle est définie chaque coefficient de sortie Oii est donnée par l'équation 1 ci-dessous: /min (n-1,1h-i.s1) min (n-1,/w-j.sj) Oii = g i.si+k,j.s j+1. Kk,1 (1) k=0 1=0 20 Dans cette équation, les coefficients lij représentent les coefficients de la matrice d'entrée I de la couche de convolution considérée, et les coefficients Kk,I représentent les coefficients du noyau de convolution 12 (poids des connexions inter-neuronales). Plus particulièrement, le dispositif de réseau de neurones 100 utilise une pluralité 25 de dispositifs memristifs 10 pour stocker le ou les noyaux de convolution 12 associé(s) à une matrice de sortie de la couche de convolution. Chaque dispositif 3025344 18 memristif 10 a une valeur de résistance commutable électriquement et peut être de tout type (comme par exemple un transistor). Dans une forme de réalisation, le dispositif 100 peut utiliser un ou plusieurs dispositifs memristifs, constituant une synapse 10 pour chaque coefficient du noyau de convolution Km.
5 Les impulsions transitant entre les couches du réseau de neurones peuvent être codées au format AER (« Address-Event Representation »). Dans ce format, l'impulsion est numérique et constituée d'un train de bits codant l'adresse (X, Y) de destination de l'impulsion suivant deux axes perpendiculaires X et Y, le repère (X, Y) correspondant au repère de la matrice d'entrée, ainsi que le signe de 10 l'impulsion. Lorsque l'impulsion arrive sur la matrice d'entrée, l'adresse (X, Y) codée représente l'emplacement du neurone d'entrée à activer. Ainsi, lorsqu'une impulsion arrive sur la matrice d'entrée, son adresse (X, Y) donne l'emplacement à activer avec : X-*jetY-*i.
15 Selon une autre caractéristique, le dispositif 100 peut appliquer en complément une opération de codage temporel d'information pour réaliser chaque convolution entre la matrice d'entrée 1 d'une couche de convolution donnée et le noyau de convolution 12, l'opération de pondération des coefficients d'entrées I; j de la matrice d'entrée 1 d'une couche de convolution donnée avec les coefficients Kk,I 20 du noyau de convolution étant alors multiplexée temporellement. Selon un aspect de l'invention, l'opération de pondération est réalisée directement dans les dispositifs memristifs 10 stockant les coefficients correspondant aux poids du noyau de convolution, par la loi d'Ohm : I = G(conductance)*U, 25 où G désigne la conductance d'un ou plusieurs dispositifs memristifs formant une synapse, et U désigne la tension d'une impulsion qui est fixe, la valeur du coefficient d'entrée étant codée temporellement (par exemple par codage fréquentiel ou codage par rang). Le paramètre I est la valeur à accumuler dans le neurone de sortie correspondant.
30 Un neurone d'entrée 1 appartient au champ récepteur d'un ou plusieurs neurones de sortie 140.
3025344 19 Sur la figure 6, un neurone de la matrice d'entrée est activé (pixel dans l'exemple considéré) et est entouré par un cadre noir. Dans la représentation de l'état d'activation de la matrice 11, le pixel 28 de la matrice d'entrée est activé. En supposant que le noyau de convolution a une taille de 3x3 et que le décalage 5 « stride » est de 1, le pixel d'entrée considéré appartient au champ récepteur de 9 neurones de sortie (partie supérieure de la figure 6) : - le pixel activée est connecté au champ récepteur du neurone de sortie N°8, avec le coefficient N°9 du noyau de convolution (partie inférieure de la figure 6) ; - le pixel activée est connecté au champ récepteur du neurone de sortie N°9, avec 113 le coefficient N°8 du noyau de convolution ; - le pixel activée est connecté au champ récepteur du neurone de sortie N°10, avec le coefficient N°7 du noyau de convolution ; - etc. Selon un autre aspect de l'invention, les coefficients j de la matrice d'entrée I 15 peuvent être implémentés matériellement par une fréquence prédéfinie des impulsions tandis que les coefficients Ku sont stockés sous la forme d'une conductance électrique d'un dispositif memristif 10. Ainsi, chaque dispositif memristif 10 est configuré pour recevoir une impulsion pré-synaptique émise par un neurone de la matrice d'entrée 1 auquel il est connecté en amont. Telle 20 qu'utilisée ici, l'expression « impulsion pre-synaptique » désigne une impulsion émise par un neurone en direction d'une synapse à laquelle il est connecté en aval. Une impulsion pre-synaptique ainsi émise depuis un neurone d'entrée 11 se propage vers la synapse, matérialisée par le dispositif memristif 10, à laquelle le neurone d'entrée est connecté. Une impulsion d'entrée se propage du neurone 25 d'entrée aux neurones de sortie qui ont le neurone d'entrée dans leur champ récepteur, selon l'exemple de la figure 6. L'impulsion arrivant sur chaque neurone de sortie est pondérée par le poids synaptique correspondant au coefficient du noyau de convolution associée pour cette entrée. Cette pondération peut se faire électriquement par modulation de la tension de l'impulsion avec la conductance 3025344 20 équivalente de la synapse, constituée d'un ou plusieurs dispositifs memristifs, grâce à la loi d'Ohm. Une impulsion modulée de cette manière arrivant sur un neurone de sortie est alors intégrée dans le neurone (analogiquement ou numériquement), qui émet une impulsion en sortie si cette intégration dépasse 5 une valeur de seuil. Selon une caractéristique de l'invention, le dispositif 100 comprend une matrice d'interconnexion 13 configurée pour associer dynamiquement (opération dite de «mapping » dynamique en langue anglo-saxonne) chaque sortie 121 du noyau de convolution correspondant à un coefficient du noyau de convolution, avec une 10 position 140 de la matrice d'accumulation 14, lors de l'activation d'un neurone d'entrée. L'opération de « mapping » dynamique met en correspondance les coefficients du noyau, avec l'ensemble des neurones de sortie faisant intervenir l'entrée activée pour le calcul de la convolution, comme décrit par les équations précédentes. Par exemple, comme représenté sur la figure 6, lorsque le neurone 15 d'entrée 1 est déclenché, la ligne horizontale coupant la ligne verticale reliée à l'élément 9 dans la matrice 12 représentant le noyau de convolution 12 est connectée dynamiquement, au niveau de son extrémité 121, à la position 8 de l'accumulateur 14. Ainsi, pour une entrée Ii j de la matrice d'entrée activée (activée par exemple avec 20 une impulsion AER provenant d'une couche précédente ou d'un capteur type rétine ou cochlée artificielle avec pour adresse (X,Y)), les coefficients Km du noyau de convolution sont connectés aux sorties 0 i-k j-1 de la manière suivante : Si 'Sj Kk,1 Oi-k j-1 si ' sj Pour k = i mod si; k < + 1); k = k + si 1 = j mod si; 1 < min(m, j + 1); 1 = 1 + si L'opération d'interconnexion dynamique ( « mapping » dynamique) permet ainsi 25 d'inverser l'équation de convolution : 3025344 21 /min (n-1,1h-i.si) min (n-1,/w-j.sj) Oij = g Kk,1 k=0 1=0 L'opération de convolution se fait par accumulation des coefficients du noyau de convolution connectés dynamiquement aux accumulateurs respectifs 140 à chaque arrivée d'une impulsion sur les sorties 121. L'impulsion est propagée sur la ligne verticale 50.
5 Le « mapping » dynamique entre le noyau de convolution 12 et les sorties 140 est rendu possible grâce au codage impulsionnel des entrées, appliqué aux dispositifs memristifs. Lorsque la propagation des impulsions est déclenchée en fonction de la fréquence d'impulsion prédéfinie, les impulsions sont propagées vers les accumulateurs 140 10 respectifs auxquels ils sont connectés par la matrice d'interconnexion à travers des dispositifs memristifs. La figure 7 est un organigramme représentant le procédé de convolution, selon certains modes de réalisation. A l'étape 100, un neurone de la matrice d'entrée I, appartenant à une couche de 15 convolution donnée, est déclenché par un évènement. Un neurone d'entrée appartient au champ récepteur de un ou plusieurs neurones de sortie (i.e. le neurone d'entrée est connecté à ces neurones de sorties). Le neurone d'entrée peut être de tout type comme un pixel dans le cas d'une image en entrée codée en impulsionnel. L'évènement déclencheur peut être par exemple issu de la 20 couche de convolution précédente ou d'un senseur évènementiel, tel qu'une rétine, une cochlée, ou encore d'un codage fréquentiel de données statiques, tels que des images ou un spectre temps-fréquence. En réponse au déclenchement du neurone d'entrée, à l'étape 102, une correspondance dynamique est mise en oeuvre pour faire correspondre les 25 coefficients du noyau de convolution avec les sorties pour lesquelles le pixel d'entrée a une contribution.
3025344 22 A l'étape 101, en réponse au déclenchement du neurone d'entrée, les dispositifs memristifs 10 stockant les coefficients du noyau de convolution sont dynamiquement connectés aux neurones de sorties correspondants. L'étape 101 de mise en correspondance dynamique (« mapping » dynamique) entre les 5 dispositifs memristifs 10 et les neurones de sorties peut être mise en oeuvre selon différents types de méthodes de routage dynamique telles que : - Un routage parallèle ; - Un routage semi-séquentiel en y ; - Un routage séquentiel ; ou 10 - Un routage Semi-séquentiel en x. L'étape 101 est réitérée pour chaque nouveau neurone d'entrée déclenché si ce neurone d'entrée est différent du neurone déclenché précédemment. Les méthodes de routage dynamique peuvent être analogiques ou numérique. Chaque type de méthode de routage offre un compromis différent en nombre de 15 cycles et en nombre de commutateurs. Le routage parallèle par exemple, permet de propager l'impulsion d'entrée sur l'ensemble des neurones de sortie pour lesquels elle a une contribution en une fois, de manière simultanée, mais requière un nombre de commutateurs plus élevé pour le routage dynamique. Une étape d'accumulation 103 peut ensuite être mise en oeuvre à partir de la 20 propagation des impulsions. Dans un mode de réalisation, l'étape d'accumulation 103 est mise en oeuvre du côté du noyau de convolution, en deux sous-étapes (lecture-ajout puis rétro-écriture). En variante, elle peut être mise en oeuvre du côté des sorties 121 en une unique étape d'ajout-écriture. Dans le mode de réalisation où l'accumulation est mise en oeuvre du côté du 25 noyau de convolution en deux sous-étapes, pour chaque neurone de sortie 141 connecté à un dispositif memristif 10, la valeur de l'accumulation est propagée dans un premier temps depuis chaque neurone de sortie vers un accumulateur intermédiaire (accumulateur 22 sur les figures 8 et 9) présent dans les noeuds de sortie 121 de la matrice 12 contenant les coefficients du noyau de convolution 30 stockés par les dispositifs memristifs 10. Selon le type de routage, les impulsions 3025344 23 peuvent être propagées simultanément ou non. Par exemple, dans le cas d'un routage parallèle, elles peuvent être propagées simultanément. Dans le même temps, l'impulsion d'entrée est propagée à chaque synapse et est pondérée par la valeur de la synapse. Pour chaque synapse, l'impulsion, une fois pondérée, est 5 ajoutée dans l'accumulateur intermédiaire présent dans les noeuds de sortie 121 avec la valeur de l'accumulation précédemment stockée dans l'accumulateur 140 du neurone de sortie 141 correspondant (étape de lecture-ajout ou « read-add » en langue anglo-saxonne). Cette étape de lecture-ajout peut être effectuée en parallèle, en fonction du type de routage choisi pour l'interconnexion dynamique 10 (« mapping » dynamique). Dans un deuxième temps, lorsque l'accumulation a été effectuée pour l'ensemble des neurones de sortie 141 identifiés dans le champ récepteur du neurone d'entrée 110 qui s'est activé à l'étape 100, les valeurs accumulées dans les accumulateurs intermédiaires peuvent être propagées vers les neurones de sortie correspondants 141 et stockées dans les accumulateurs 15 140 correspondants, à l'étape 103 (étape de rétro-écriture ou « write back » en langue anglo-saxonne). L'étape 103 peut être réalisée en parallèle, en fonction du type de routage choisi pour le « mapping » dynamique. Dans le mode de réalisation où l'accumulation est mise en oeuvre du côté des neurones de sortie 141 en une unique étape d'ajout-écriture (« add-write »), 20 l'accumulation peut être effectuée directement dans les neurones de sortie 141 et être réalisée en parallèle, en fonction du type de routage choisi pour l'interconnexion dynamique. Dans un autre mode de réalisation où l'opération de « mapping » dynamique n'est pas mise en oeuvre en parallèle, l'étape de lecture-ajout (read-add) peut être 25 réalisée pour un premier groupe de synapse, puis l'étape de rétro-écriture (write- back) peut être exécutée pour ce même premier groupe, avant de passer au groupe suivant et de changer le « mapping » dynamique. Un tel mode de réalisation dispense d'avoir à réaliser à chaque fois deux fois la même correspondance (« mapping »), une première fois pour la lecture-ajout et une 30 deuxième fois pour la lecture-écriture. En outre, il permet de diminuer le nombre d'accumulateurs intermédiaires, puisque d'un groupe de synapse à l'autre, les mêmes accumulateurs peuvent être réutilisés.
3025344 24 Le réseau de neurones peut être réalisé en intégrant les dispositifs memristifs 10 dans une structure de type " crossbar ", avec ou sans dispositif de sélection (transistor, diode ou autre dispositif avec une non linéarité). La figure 8 est une représentation schématique d'un autre exemple 5 d'implémentation matérielle des opérations de convolution dans un réseau de neurones avec un regroupement des sorties par sous-échantillonnage. L'opération de regroupement des sorties par sous-échantillonnage consiste à rassembler les sorties voisines pour former une nouvelle matrice 14 de sortie plus petite.
10 Dans le mode de réalisation de la figure 8, le regroupement de sorties est effectué directement au niveau de l'accumulation, en mutualisant les accumulateurs 140 correspondant à la même sortie en des groupes 142, dans la matrice 14 mise à l'échelle. Le nombre d'accumulateurs et la taille de la matrice d'interconnexion sont ainsi 15 diminués. Selon une caractéristique de l'invention, la taille maximale de la matrice des dispositifs memristifs 10 peut être avantageusement égale à la taille du noyau de convolution 12, comme par exemple de taille 35x35, 11x11 ou 5x5. La taille peut être notamment limitée par les courants de fuite. Dans les modes de réalisation 20 utilisant une matrice d'interconnexion 13, la matrice d'interconnexion 13 (analogique) peut être de taille faible et peut être réalisée en CMOS. En variante, elle peut être réalisée matériellement avec des dispositifs memristifs. Le dispositif de réseau de neurones 100 peut en complément fonctionner avec une méthode apprentissage, comme par exemple une méthode d'apprentissage à 25 base de règle STDP (« Spike Timing Dependent Plasticity ») in-situ, ou en ligne. La matrice d'interconnexion réalise le décodage d'adresse permettant de mettre en correspondance les poids synaptiques avec les neurones de sortie pour une entrée activée donnée.
3025344 25 Dans l'exemple de la figure 9, chaque synapse est constituée de 3 dispositifs (chaque ligne implémentant un coefficient du noyau de convolution). Dans ce cas, une impulsion peut être propagée simultanément sur l'ensemble des colonnes pour obtenir en bout de chaque ligne une impulsion de courant pondérée par la 5 conductance équivalente de la synapse correspondant à la somme des conductances des dispositifs constitutifs de la synapse. Les impulsions sont propagées sur les lignes verticales 5 de la matrice « crossbar » 5. Dans un tel mode de réalisation (synapse est constituée de plusieurs dispositifs memristifs), l'étape d'accumulation 103 de la figure 7 peut être mise en oeuvre 10 séquentiellement, en activant un dispositif memristif après l'autre, avec un additionneur (1+x) par ligne, ou synapse, la valeur « 1 » étant ajoutée à la valeur « x » accumulée par le neurone de sortie 140 correspondant. Cela équivaut à avoir plusieurs colonnes de dispositifs, comme sur la figure 9. En variante, l'étape d'accumulation peut être mise en oeuvre en une seule étape, 15 en utilisant plusieurs seuils (autant que de dispositifs par synapse) et un additionneur par ligne. Les seuils peuvent être des multiples croissants du seuil de base, de manière à réaliser une numérisation du poids synaptique équivalent stocké dans l'ensemble des dispositifs constituant une ligne. Ce mode de réalisation est particulièrement adapté dans le cas de dispositifs binaires, ne 20 pouvant stocker qu'un état « ON » (actif) ou « OFF » (inactif). Le seuil de base est réglé pour se déclencher dans le cas où au moins l'un des dispositifs est à l'état « ON ». Par exemple, si la synapse équivalente est constituée de 4 dispositifs, dont 2 sont à l'état « ON », les deux premiers seuils se déclencheront sur les 4, codant ainsi la valeur de la synapse de 2/4. Un tel mode de réalisation peut être 25 mis en oeuvre en utilisant des accumulateurs 140 numériques ou, en variante, des accumulateurs analogiques, avec utilisation d'un convertisseur analogique-numérique (ADC) par ligne. La figure 11 est une représentation schématique d'un autre exemple d'implémentation matérielle des opérations de convolution dans un réseau de 30 neurones avec apprentissage STDP (« Spike-Timing-Dependent Plasticity » signifiant « plasticité fonction du temps d'occurrence des impulsions »).
3025344 26 L'apprentissage STDP peut se faire en une étape avec interaction d'impulsions pré- et post-synaptiques. Dans le cadre d'une règle d'apprentissage de type STDP mise en oeuvre par le réseau de neurones, des impulsions pre-synaptique et post-synaptique peuvent 5 par exemple être envoyées par les neurones d'entrée et de sortie en direction d'une synapse (constituée par un ou plusieurs dispositifs memristifs) pour agir sur la variation de sa conductance, par exemple comme décrit dans FR2977351 B1. Dans le mode de réalisation de la figure 11, un circuit d'écriture 15 est utilisé. Suite à l'activation d'un neurone de sortie, les coefficients du noyau de convolution lo associé sont mis en correspondance avec les entrées constituant le champ récepteur du neurone de sortie (mapping dynamique). Les coefficients du noyau sont alors modifiés de la manière suivante : - Si le temps de dernière activation de l'entrée tp' (temps pré-synaptique) précède immédiatement le temps d'activation du neurone tp't (temps post- 15 synaptique) et est dans la fenêtre temporelle de potentialisation du neurone (fenêtre LTP), alors le poids de la synapse (coefficient du noyau) est augmenté (LTP) ; - Si le temps de dernière activation de l'entrée n'est pas dans la fenêtre LTP, alors le poids de la synapse est diminué (LTD).
20 Sur la figure 11, t), représente le temps du dernier évènement sur un noeud, c'est- à-dire le temps pré-synaptique (stockage en mémoire). Le terme LTP (acronyme pour " Long Term Potentiation ") désigne les phases ou états correspondant à une augmentation de la conductance d'une synapse. La règle d'apprentissage STDP " Spike Timing Dependent Plasticity" consiste à 25 faire évoluer le poids d'une synapse en fonction de la distance temporelle entre les impulsions pré et post-synaptiques. L'état LTP correspond à l'état de potentialisation de la synapse et la phase LTP a une durée donnée correspondant à la durée pendant laquelle la conductance de la synapse augmente. Dans le cas d'une règle d'apprentissage STDP classique, la variation de la conductance de la 30 synapse peut dépendre des instants d'arrivée relatifs des deux impulsions.
3025344 27 En variante, l'apprentissage peut également être stochastique. L'opération de « mapping » dynamique permet d'implémenter efficacement cette règle d'apprentissage dans le cas d'un réseau convolutionel impulsionnel. Les figures 12 à 17 représentent des modes de réalisation de l'étape 5 d'interconnexion dynamique des dispositifs memristifs 10 et des neurones de sorties se trouvant dans le champ récepteur d'un neurone activé (étape 102 de la figure 7). La figure 12 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation parallèle (en un cycle). i.o A l'étape 110, un neurone d'entrée est déclenché (par exemple un pixel). Les étapes 112 et 114 correspondent à l'interconnexion dynamique entre les sorties 121 de la matrice 12 et les noeuds 141 correspondant aux neurones de sorties qui sont dans le champ récepteur du neurone déclenché. A l'étape 112, un décodage de l'adresse en X du neurone d'entrée est effectué.
15 Les lignes correspondantes de la matrice 12 sont ensuite activées (chaque ligne correspond à une synapse ou un coefficient du noyau différent). A l'étape 114, un décodage de l'adresse en Y du neurone d'entrée est effectué. Les lignes correspondantes de la matrice 12 sont ensuite activées. A l'étape 116, une accumulation des valeurs est réalisée dans la matrice de sortie zo 14 par propagation des impulsions comme décrit précédemment. La figure 13 représente un exemple de réalisation matérielle du réseau de neurones correspondant à un mode de réalisation parallèle (1 seul cycle) conformément au mode de réalisation de la figure 12. Les accumulateurs 140 (partie de droite) sont connectés aux coefficients du noyau 25 correspondant après décodage en X et en Y. Le nombre de commutateurs NTG utilisé dans la réalisation matérielle du réseau de neurones est alors donné par l'équation suivante: 3025344 28 NTG = m. n. Oh + m. Ow. Oh Ce mode de réalisation permet d'effectuer un calcul de convolution en un seul cycle, mais nécessite aussi un plus grand nombre de commutateurs. Ce mode est particulièrement adapté lorsque la rapidité de traitement du système est importante.
5 La figure 12 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation semi-séquentiel (en n cycles). A l'étape 130, un neurone d'entrée est déclenché (par exemple un pixel). L'interconnexion dynamique entre les sorties 121 de la matrice 12 et les noeuds 141 correspondant aux neurones de sorties qui sont dans le champ récepteur du 10 neurone déclenché comprend les étapes 132 à 135. Plus précisément, à l'étape 132, un décodage de l'adresse en X du neurone d'entrée est effectué. Les colonnes correspondantes de la matrice 12 sont ensuite activées. A l'étape 134, un décodage de l'adresse en Y du neurone d'entrée est effectué. Le 15 nombre de lignes à activer séquentiellement est défini par le paramètre n, qui correspond au nombre de lignes dans la matrice de convolution K (12). A l'étape 135, une ligne est activée (ligne courante). Si une ligne a été précédemment activée, cette ligne précédente est désactivée au préalable. A l'étape 136, une accumulation des valeurs est réalisée dans la matrice de sortie zo 14 par propagation d'impulsion sur la ligne activée courante. La ligne suivante est alors activée à l'étape 138 si le nombre de lignes déjà activée est inférieur à n (i.e. le nombre d'itération des étapes 135/136 est inférieur à n). La figure 13 représente un exemple de réalisation matérielle du réseau de 25 neurones correspondant à un mode de réalisation semi-séquentiel en Y, conformément au mode de réalisation de la figure 12.
3025344 29 Les accumulateurs 140 (partie de droite) sont connectés aux coefficients du noyau correspondant après décodage en X et en Y. La matrice 12 (partie de gauche) est réalisée matériellement par un ensemble de dispositifs memristifs 10. L'accumulation dans les accumulateurs 140 est réalisée 5 pour chaque ligne activée séquentiellement par un séquenceur. Le nombre de commutateurs NTG utilisé dans la réalisation matérielle du réseau de neurones est alors donné par l'équation suivante: NTG = M. n + m. Ow. Oh Ce mode de réalisation offre un compromis entre le mode entièrement parallèle et le mode entièrement séquentiel.
10 La figure 14 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation complètement séquentiel (en m.n cycles). A l'étape 150, un neurone d'entrée est déclenché (par exemple un pixel). L'interconnexion dynamique entre les sorties 121 de la matrice 12 et les noeuds 141 correspondant aux neurones de sorties qui sont dans le champ récepteur du 15 neurone déclenché comprend les étapes 152 à 156. Plus précisément, à l'étape 152, un décodage de l'adresse en Y du neurone d'entrée est effectué. Le nombre de lignes à activer séquentiellement est défini par le paramètre n. A l'étape 153, une ligne est activée (ligne courante). Si une ligne a été zo précédemment activée, cette ligne précédente est désactivée au préalable. A l'étape 154, un décodage de l'adresse en X du neurone d'entrée est effectué. Le nombre de colonnes à activer séquentiellement est défini par le paramètre m, qui correspond au nombre de colonnes dans la matrice de convolution K (12). A l'étape 155, une colonne est activée (colonne courante). Si une colonne a été 25 précédemment activée, cette colonne précédente est désactivée au préalable.
3025344 30 A l'étape 156, une accumulation des valeurs est réalisée dans la matrice de sortie 14 par propagation d'impulsions sur les lignes et colonnes courantes activées. La colonne suivante est alors activée à l'étape 157 si le nombre de lignes déjà activée est inférieur à m (i.e. nombre d'itération des étapes 153/156 est inférieur à 5 n). La ligne suivante est ensuite activée à l'étape 158 si le nombre de lignes déjà activée est inférieur à n (i.e. le nombre d'itération des étapes 153/156 est inférieur à n). Il est à noter que l'ordre des étapes symétriques relatives aux traitements des io lignes et des colonnes (152-153 et 154-155 ; 157 et 158) peut être inversé. La figure 15 représente un exemple de réalisation matérielle du réseau de neurones correspondant à un mode de réalisation complètement séquentiel, conformément au mode de réalisation de la figure 14. Chaque accumulateur 140 (partie de droite) est connecté séquentiellement au 15 coefficient du noyau correspondant après décodage en X et en Y. La matrice 12 (partie de gauche) est réalisée matériellement par un ensemble de dispositifs memristifs 10. L'accumulation dans les accumulateurs 140 est réalisée pour chaque ligne et colonne activée séquentiellement par un séquenceur. Le nombre de commutateurs NTG utilisé dans la réalisation matérielle du réseau de 20 neurones est alors donné par l'équation suivante: NTG = M. n + Ow. Oh Ce mode de réalisation minimise le nombre de commutateurs et donc la complexité de la matrice d'interconnexion, mais ne permet d'effectuer qu'une opération par cycle et par conséquent présente un intérêt a priori limité par rapport à une implémentation classique numérique d'un tel réseau où les accès mémoire 25 sont séquentiels. La figure 16 est un organigramme illustrant l'étape d'interconnexion dynamique, selon un mode de réalisation semi-séquentiel (en m cycles).
3025344 31 A l'étape 160, un neurone d'entrée est déclenché (par exemple un pixel). L'interconnexion dynamique entre les sorties 121 de la matrice 12 et les noeuds 141 correspondant aux neurones de sorties qui sont dans le champ récepteur du neurone déclenché comprend les étapes 162 à 165.
5 Plus précisément, à l'étape 162, un décodage de l'adresse en Y du neurone d'entrée est effectué. Les lignes correspondantes de la matrice 12 sont ensuite activées. A l'étape 164, un décodage de l'adresse en X du neurone d'entrée est effectué. Le nombre de colonnes à activer séquentiellement est défini par le paramètre m.
10 A l'étape 165, une colonne est activée (ligne courante). Si une colonne a été précédemment activée, cette colonne précédente est désactivée au préalable. A l'étape 166, une accumulation des valeurs est réalisée dans la matrice de sortie 14 par propagation d'impulsions sur la colonne activée courante. La colonne suivante est alors activée si le nombre de lignes déjà activée est 15 inférieur à m (i.e. le nombre d'itérations des étapes 165/166 est inférieur à m). La figure 17 représente un exemple de réalisation matérielle du réseau de neurones correspondant à un mode de réalisation semi-séquentiel en Y, conformément au mode de réalisation de la figure 16. Les accumulateurs 140 (partie de droite) sont connectés aux coefficients du noyau 20 correspondant après décodage en X et en Y. La matrice 12 (partie de gauche) est réalisée matériellement par un ensemble de dispositifs memristifs 10. L'accumulation dans les accumulateurs 140 est réalisée pour chaque colonne activée séquentiellement par un séquenceur. Le nombre de commutateurs NTG utilisé dans la réalisation matérielle du réseau de 25 neurones est alors donné par l'équation suivante: NTG = M. n + n. Oh + Ow. Oh 3025344 32 Comme représenté sur les figures 13, 15, 17, les connexions réalisées par le l'opération de « mapping » dynamique entre les synapses et les accumulateurs des neurones de sortie font transiter les impulsions pondérées par la valeur des synapses. Selon le codage de ces impulsions pondérées, les connexions peuvent 5 être réalisées de différentes manières : - par des connexions analogiques (1 seul fil), faisant transiter des impulsions analogiques dont l'amplitude ou la durée code la pondération ; - par des connexions numériques (1 seul fil, 1 bit), faisant transiter en série (bit par bit) la valeur de la pondération, codée sur un nombre fixe ou variable de bits. Un 10 codage numérique est alors utilisé, il peut être binaire ou unaire. - par des connexions numériques (N fils, N bits), faisant transiter en parallèle la valeur de la pondération, codée sur N bits. Un codage numérique est alors utilisé, il peut être binaire ou unaire. Les figures 18 à 22 représentent des modes de réalisation de l'étape 15 d'accumulation 103 de la figure 7. Plus précisément, la figure 18 est un organigramme représentant l'étape d'accumulation, selon un mode de réalisation côté noyau. A l'étape 180, un neurone d'entrée est déclenché (par exemple pixel). A l'étape 182, l'étape d'interconnexion dynamique est réalisée, par exemple selon zo l'un des modes de réalisation des figures 12 à 17. A l'étape 183, la valeur stockée dans l'accumulateur de chaque neurone de sortie 140, se trouvant dans le champ récepteur du neurone déclenché, est additionnée avec le poids synaptique correspondant au neurone d'entrée (stocké dans au moins un dispositif memristif). La valeur ainsi obtenue est stockée dans un 25 accumulateur 121 en sortie de la synapse connectant le neurone d'entrée et le neurone de sortie.
3025344 33 A l'étape 184, les valeurs accumulées en sortie des synapses sont écrites dans les accumulateurs 140 des neurones de sortie. La figure 19 représente un exemple de réalisation matérielle de l'accumulateur 14 dans le mode de réalisation côté noyau en mode écriture-ajout.
5 Chaque sortie 20 d'un coefficient du noyau de convolution peut être réalisée matériellement par un dispositif memristif 10, d'un additionneur 21, d'une mémoire de stockage 22, et d'un commutateur 23. Le commutateur 23 est configuré pour commuter entre les modes lecture-ajout (« read-add ») et rétro-écriture (write-back).
10 En mode lecture-ajout, chaque sortie 20 correspondant à un coefficient du noyau de convolution peut être réalisée matériellement par un ou des dispositifs memristifs 10 stockant le poids synaptique, l'additionneur 21 additionnant alors la valeur stockée dans l'accumulateur de chaque neurone de sortie 140 avec le poids stocké dans le(s) dispositif(s) memristif(s). La mémoire de stockage 22 en 15 sortie de la synapse stocke ensuite la valeur ainsi obtenue. La mémoire de stockage peut être réalisée en analogique ou en numérique. La figure 20 représente l'exemple de réalisation matérielle de la partie accumulation de la figure 19 en mode rétro-écriture (« write back). Une fois l'accumulation effectuée pour le groupe des neurones de sortie connecté par le 20 mapping dynamique, dans le champ récepteur du neurone d'entrée qui s'était activé (i.e. déclenché), les valeurs accumulées dans les accumulateurs 22 sont propagées vers les neurones de sortie correspondants dans les accumulateurs 140. La sortie matrice 14 comprend un mémoire de stockage 24 pour stocker la valeur 25 propagée issue des accumulateurs 22. La figure 21 est un organigramme représentant l'étape d'accumulation (étape 103 de la figure 7), selon un mode de réalisation de l'accumulation côté sortie. A l'étape 210, un neurone d'entrée est déclenché (par exemple pixel).
3025344 34 A l'étape 212, l'étape d'interconnexion dynamique est réalisée, par exemple selon l'un des modes de réalisation des figures 12 à 17. A l'étape 214, la valeur stockée dans l'accumulateur de chaque neurone de sortie 140, se trouvant dans le champ récepteur du neurone déclenché, est additionnée 5 avec le poids synaptique correspondant au neurone d'entrée (stocké dans au moins un dispositif memristif et préalablement propagé vers la matrice de sortie 14), du côté de la matrice de sortie. La valeur ainsi obtenue est directement stockée dans la matrice de sortie 14. La figure 22 représente un exemple de réalisation matérielle de l'accumulateur 14 10 dans le mode de réalisation côté sortie. Chaque sortie 20 d'un coefficient du noyau de convolution est connectée directement au(x) dispositif (s) memristif(s) 10 stockant la valeur du coefficient. Chaque sortie de la matrice 14 peut comprendre un additionneur 25 et une mémoire de stockage 23.
15 Chaque sortie 20 d'un coefficient du noyau de convolution peut être réalisée matériellement par le dispositif memristif 10 stockant le poids synaptique et propagée vers la matrice 14. L'additionneur 23 additionne alors directement la valeur stockée dans l'accumulateur de chaque neurone de sortie 140 avec le poids reçu. La mémoire de stockage 26 du côté de la matrice de sortie stocke la zo valeur ainsi obtenue. L'homme du métier comprendra que le procédé de convolution selon les différents modes de réalisation peut être mis en oeuvre de diverses manières par matériel (« hardware »), logiciel, ou une combinaison d'éléments matériels et de logiciels. L'invention n'est pas limitée aux modes de réalisation décrits ci-avant à titre 25 d'exemple non limitatif. Elle englobe toutes les variantes de réalisation qui pourront êtrne envisagées par l'homme du métier. En particulier, l'interconnexion dynamique s'applique également à des couches de regroupement « pooling » pour mettre en correspondance les entrées avec les neurones de sortie intervenant dans un calcul de « pooling ».
3025344 Par ailleurs, l'invention n'est pas limitée à un type particulier de dispositif memristif. Par exemple, les dispositifs memristifs peuvent être de type CBRAM (« Conductive bridging RAM »), OXRAM (« Oxide Based Resistive Memory »), PCRAM (« Phase change RAM ») ou PCM (" Phase-Change Memory ").
5 En outre l'invention n'est pas limitée aux applications décrites ci-avant et s'applique notamment à tout type d'applications de classifications de données audio, image, vidéo ou biologiques.

Claims (13)

  1. REVENDICATIONS1. Réseau de neurones convolutionnel (100) comprenant une pluralité de neurones artificiels agencés en une ou plusieurs couches, chaque couche de convolution comprenant une ou plusieurs matrices de sortie (14) comprenant un ensemble de neurones de sortie, chaque matrice de sortie étant connectée à une matrice d'entrée, comprenant un ensemble de neurones d'entrée, par des synapses artificielles associées à une matrice de convolution comprenant les coefficients de poids synaptiques correspondant aux neurones de sortie de ladite matrice de sortie, la valeur de sortie de chaque neurone de sortie étant déterminée à partir des neurones d'entrée de ladite matrice d'entrée auxquels le neurone de sortie est connecté et des coefficients de poids synaptiques de la matrice de convolution associée à ladite matrice de sortie, caractérisé en ce que chaque synapse est constituée d'un ensemble de dispositif memristifs comprenant au moins un dispositif memristif, chaque ensemble de dispositif memristif stockant un coefficient de ladite matrice de convolution, et en ce que, en réponse à un changement d'état d'un neurone d'entrée d'une matrice d'entrée, le réseau de neurones est apte à : - interconnecter dynamiquement chaque ensemble de dispositifs memristifs stockant les coefficients de la matrice de poids aux neurones de sortie connectés audit neurone d'entrée, et - pour chaque neurone de sortie, accumuler les valeurs des coefficients de poids stockées dans lesdits ensembles de dispositifs memristifs interconnectés dynamiquement audit neurone de sortie dans un accumulateur de sortie (140), ce qui fournit la valeur de sortie dudit neurone de sortie.
  2. 2. Réseau de neurones selon la revendication 1, caractérisé en ce que les neurones utilisent un codage temporel, et en ce que l'interconnexion dynamique est mise en oeuvre en réponse au déclenchement d'un neurone d'entrée de la matrice d'entrée (11).
  3. 3. Réseau de neurones selon la revendication 2, caractérisé en ce que, en réponse à l'interconnexion dynamique, l'accumulation des valeurs des coefficients de poids est mise en oeuvre par propagation d'au moins une impulsion codant la 3025344 37 valeur de chaque coefficient de poids, selon ledit codage temporel, lesdites valeurs accumulées dans les accumulateurs de sortie constituant les valeurs de sortie de ladite matrice de sortie (14). 5
  4. 4. Réseau de neurones selon la revendication 1, caractérisé en ce qu'il comprend un ensemble de commutateurs et un circuit logique de mise en correspondance des coefficients de poids synaptiques avec les neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état, à partir de l'adresse dudit neurone d'entrée dans la matrice d'entrée, pour réaliser ladite interconnexion 10 dynamique.
  5. 5. Réseau de neurones selon l'une des revendications 3 et 4, caractérisé en ce que chaque impulsion comprend un train de bits codant l'adresse (X, Y) de destination de l'impulsion suivant deux axes perpendiculaires X et Y, le repère (X, 15 Y) correspondant au repère de la matrice d'entrée, et en ce que lorsque ladite impulsion arrive sur la matrice d'entrée, ladite adresse (X, Y) codée représente l'emplacement du neurone d'entrée à activer.
  6. 6. Réseau de neurones selon l'une des revendications précédentes, caractérisé 20 en ce que l'interconnexion dynamique est réalisée en parallèle et en un seul cycle, en connectant simultanément l'ensemble des coefficients de poids stockés dans lesdits dispositifs memristifs (10) aux neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état. 25
  7. 7. Réseau de neurones selon l'une des revendications 1 à 6, caractérisé en ce que l'interconnexion dynamique est réalisée semi-séquentiellement, en connectant les coefficients de la matrice de poids stockés dans lesdits dispositifs memristifs (10), une ligne de la matrice après l'autre, aux neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état. 30
  8. 8. Réseau de neurones selon l'une des revendications 1 à 6, caractérisé en ce que l'interconnexion dynamique est réalisée semi-séquentiellement, en connectant les coefficients de la matrice de poids stockés dans lesdits dispositifs memristifs 3025344 38 (10), une colonne de la matrice après l'autre aux neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état.
  9. 9. Réseau de neurones selon l'une des revendications 1 à 6, caractérisé en ce 5 que l'interconnexion dynamique est réalisée séquentiellement, en connectant les coefficients de la matrice de convolution (5), stockés dans lesdits dispositifs memristifs (10), l'un après l'autre, aux neurones de sortie connectés au neurone d'entrée ayant subi un changement d'état.
  10. 10. Réseau de neurones selon l'une des revendications précédentes, caractérisé 10 en ce qu'il comprend un accumulateur (21, 22) agencé à la sortie de chaque synapse (5), ledit accumulateur réalisant l'accumulation de la valeur du coefficient de poids stockée dans les dispositifs memristifs de ladite synapse avec la valeur stockée dans l'accumulateur (140, 24) du neurone de sortie correspondant, la valeur stockée dans ledit accumulateur auxiliaire étant ensuite propagée par les 15 dites impulsions dans ledit accumulateur (140, 24) de la matrice de sortie.
  11. 11. Réseau de neurones selon l'une des revendications 1 à 9, caractérisé en ce qu'il comprend un accumulateur (23, 25) agencé au niveau de chaque neurone de sortie, la sortie de chaque dispositif memristif (10) de la synapse étant propagée au niveau du neurone de sortie, la valeur ainsi propagée étant accumulée avec la 20 valeur stockée dans l'accumulateur (140, 23).
  12. 12. Réseau de neurones selon l'une des revendications précédentes, caractérisé en ce que les sorties de neurones sont groupées, et en ce que les valeurs accumulées correspondant à des sorties groupées sont stockées dans un accumulateur commun (142). 25
  13. 13. Réseau de neurones selon l'une des revendications précédentes, caractérisé en ce qu'il comprend un apprentissage en ligne de type STDP à partir de l'interconnexion dynamique.
FR1458088A 2014-08-28 2014-08-28 Reseau de neurones convolutionnels Expired - Fee Related FR3025344B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1458088A FR3025344B1 (fr) 2014-08-28 2014-08-28 Reseau de neurones convolutionnels
PCT/EP2015/068955 WO2016030230A1 (fr) 2014-08-28 2015-08-18 Reseau de neurones convolutionnels
US15/505,231 US11055608B2 (en) 2014-08-28 2015-08-18 Convolutional neural network
EP15756132.5A EP3186752A1 (fr) 2014-08-28 2015-08-18 Reseau de neurones convolutionnels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1458088A FR3025344B1 (fr) 2014-08-28 2014-08-28 Reseau de neurones convolutionnels

Publications (2)

Publication Number Publication Date
FR3025344A1 true FR3025344A1 (fr) 2016-03-04
FR3025344B1 FR3025344B1 (fr) 2017-11-24

Family

ID=52450266

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1458088A Expired - Fee Related FR3025344B1 (fr) 2014-08-28 2014-08-28 Reseau de neurones convolutionnels

Country Status (4)

Country Link
US (1) US11055608B2 (fr)
EP (1) EP3186752A1 (fr)
FR (1) FR3025344B1 (fr)
WO (1) WO2016030230A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017186830A1 (fr) * 2016-04-27 2017-11-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
FR3113971A1 (fr) * 2020-09-08 2022-03-11 Thales dispositif implémentant un filtre convolutionnel d'un réseau de neurones

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015000120A1 (de) * 2015-01-07 2016-07-07 Merck Patent Gmbh Elektronisches Bauelement
US10387770B2 (en) * 2015-06-10 2019-08-20 Samsung Electronics Co., Ltd. Spiking neural network with reduced memory access and reduced in-network bandwidth consumption
US10540768B2 (en) * 2015-09-30 2020-01-21 Samsung Electronics Co., Ltd. Apparatus and method to segment object from image
CN109086877B (zh) * 2016-04-29 2020-05-08 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US9715656B1 (en) 2016-09-12 2017-07-25 International Business Machines Corporation Killing asymmetric resistive processing units for neural network training
US9940534B1 (en) * 2016-10-10 2018-04-10 Gyrfalcon Technology, Inc. Digital integrated circuit for extracting features out of an input image based on cellular neural networks
US10360470B2 (en) 2016-10-10 2019-07-23 Gyrfalcon Technology Inc. Implementation of MobileNet in a CNN based digital integrated circuit
US10366302B2 (en) 2016-10-10 2019-07-30 Gyrfalcon Technology Inc. Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor
US10366328B2 (en) 2017-09-19 2019-07-30 Gyrfalcon Technology Inc. Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit
US10402628B2 (en) 2016-10-10 2019-09-03 Gyrfalcon Technology Inc. Image classification systems based on CNN based IC and light-weight classifier
US10043095B2 (en) * 2016-10-10 2018-08-07 Gyrfalcon Technology, Inc. Data structure for CNN based digital integrated circuit for extracting features out of an input image
US10339445B2 (en) 2016-10-10 2019-07-02 Gyrfalcon Technology Inc. Implementation of ResNet in a CNN based digital integrated circuit
US10733505B2 (en) * 2016-11-10 2020-08-04 Google Llc Performing kernel striding in hardware
US10360494B2 (en) * 2016-11-30 2019-07-23 Altumview Systems Inc. Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules
US10248906B2 (en) 2016-12-28 2019-04-02 Intel Corporation Neuromorphic circuits for storing and generating connectivity information
CN106779060B (zh) * 2017-02-09 2019-03-08 武汉魅瞳科技有限公司 一种适于硬件设计实现的深度卷积神经网络的计算方法
DK3568810T3 (da) 2017-02-24 2023-11-13 Deepmind Tech Ltd Handlingsudvælgelse til forstærkningslæring ved hjælp af neurale netværk
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
KR102301232B1 (ko) * 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
KR20180136202A (ko) * 2017-06-14 2018-12-24 에스케이하이닉스 주식회사 컨볼루션 신경망 및 컨볼루션 신경망을 가진 신경망 시스템
US11216723B2 (en) 2017-08-11 2022-01-04 Syntiant Pulse-width modulated multiplier
US10699160B2 (en) 2017-08-23 2020-06-30 Samsung Electronics Co., Ltd. Neural network method and apparatus
CN109684901B (zh) * 2017-10-19 2023-06-06 富士通株式会社 图像处理装置和图像处理方法
US11301752B2 (en) 2017-10-24 2022-04-12 International Business Machines Corporation Memory configuration for implementing a neural network
CN107817898B (zh) * 2017-10-31 2022-07-22 努比亚技术有限公司 操作模式识别方法、终端及存储介质
CN107895174B (zh) * 2017-11-09 2020-01-07 京东方科技集团股份有限公司 图像分类和转换方法、装置以及图像处理系统
WO2019126030A1 (fr) * 2017-12-18 2019-06-27 Mythic, Inc. Systèmes et procédés de mappage de calculs matriciels vers un accélérateur de multiplication matriciel
WO2019210300A1 (fr) * 2018-04-27 2019-10-31 Carnegie Mellon University Réseau neuronal convolutif polynomial à sortance tardive
CN109858506B (zh) * 2018-05-28 2022-11-18 哈尔滨工程大学 一种面向卷积神经网络分类结果的可视化算法
US10417342B1 (en) 2018-07-03 2019-09-17 Gyrfalcon Technology Inc. Deep learning device for local processing classical chinese poetry and verse
US10311149B1 (en) 2018-08-08 2019-06-04 Gyrfalcon Technology Inc. Natural language translation device
CN109460817B (zh) * 2018-09-11 2021-08-03 华中科技大学 一种基于非易失存储器的卷积神经网络片上学习系统
CN112703511B (zh) * 2018-09-27 2023-08-25 华为技术有限公司 运算加速器和数据处理方法
CN111010492B (zh) * 2018-10-08 2022-05-13 瑞昱半导体股份有限公司 图像处理电路及相关的图像处理方法
CN111048135A (zh) * 2018-10-14 2020-04-21 天津大学青岛海洋技术研究院 一种基于忆阻器内存计算的cnn处理装置及其工作方法
CN109448068B (zh) * 2018-10-16 2020-07-31 西南大学 一种基于忆阻器交叉阵列的图像重构系统
US10387772B1 (en) 2018-10-22 2019-08-20 Gyrfalcon Technology Inc. Ensemble learning based image classification systems
US11133059B2 (en) 2018-12-06 2021-09-28 Western Digital Technologies, Inc. Non-volatile memory die with deep learning neural network
CN112154460B (zh) * 2018-12-06 2024-05-28 西部数据技术公司 具有深度学习神经网络的非易失性存储器管芯
US11557107B2 (en) 2019-01-02 2023-01-17 Bank Of America Corporation Intelligent recognition and extraction of numerical data from non-numerical graphical representations
US11556763B2 (en) 2019-02-19 2023-01-17 International Business Machines Corporation Multi-kernel configuration for convolutional neural networks
CN114041140A (zh) * 2019-04-09 2022-02-11 成都时识科技有限公司 事件驱动脉冲卷积神经网络
US11520521B2 (en) 2019-06-20 2022-12-06 Western Digital Technologies, Inc. Storage controller having data augmentation components for use with non-volatile memory die
US11501109B2 (en) 2019-06-20 2022-11-15 Western Digital Technologies, Inc. Non-volatile memory die with on-chip data augmentation components for use with machine learning
US11741344B2 (en) * 2019-12-09 2023-08-29 Bank Of America Corporation Custom convolutional neural network architectures for exposure detection
CN113033759A (zh) * 2019-12-09 2021-06-25 南京惟心光电系统有限公司 脉冲卷积神经网络算法、集成电路、运算装置及存储介质
TWI727641B (zh) * 2020-02-03 2021-05-11 華邦電子股份有限公司 記憶體裝置及其操作方法
US11562240B2 (en) 2020-05-27 2023-01-24 International Business Machines Corporation Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
CN111681696B (zh) * 2020-05-28 2022-07-08 中国科学院微电子研究所 基于非易失存储器的存储和数据处理方法、装置及设备
CN112561034A (zh) * 2020-12-04 2021-03-26 深兰人工智能(深圳)有限公司 一种神经网络加速装置
CN116707514B (zh) * 2023-08-09 2023-11-03 苏州浪潮智能科技有限公司 一种多输出忆阻器等效电路、应用系统及控制方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9269043B2 (en) * 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
US6999953B2 (en) * 2002-07-03 2006-02-14 Energy Conversion Devices, Inc. Analog neurons and neurosynaptic networks
US9269042B2 (en) * 2010-09-30 2016-02-23 International Business Machines Corporation Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices
EP2748765B1 (fr) * 2011-08-25 2022-12-14 Cornell University Codeur rétinien pour vision industrielle
US10140573B2 (en) * 2014-03-03 2018-11-27 Qualcomm Incorporated Neural network adaptation to current computational resources
US9346167B2 (en) * 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US20150339589A1 (en) * 2014-05-21 2015-11-26 Brain Corporation Apparatus and methods for training robots utilizing gaze-based saliency maps

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D. ROCLIN ET AL: "Spiking neural network for embedded image sensors", LETI/LIST ANNUAL RESEARCH REPORT 2013, 12 June 2014 (2014-06-12), pages 93, XP055196597, Retrieved from the Internet <URL:http://www-leti.cea.fr/en/content/download/2117/26809/file/DACLE Scientific Report 2013 - low definition.pdf> [retrieved on 20150612] *
S. G. RAMASUBRAMANIAN ET AL: "SPINDLE: SPINtronic Deep Learning Engine for large-scale neuromorphic computing", PROCEEDINGS OF THE 2014 INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN (ISLPED'14), 11 August 2014 (2014-08-11), pages 15 - 20, XP058053992, DOI: 10.1145/2627369.2627625 *
T. M. TAHA ET AL: "Exploring the design space of specialized multicore neural processors", PROCEEDINGS OF THE 2013 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN'13), 4 August 2013 (2013-08-04), XP032542398, DOI: 10.1109/IJCNN.2013.6707074 *
T. SERRANO-GOTARREDONA ET AL: "A proposal for hybrid memristor-CMOS spiking neuromorphic learning systems", IEEE CIRCUITS AND SYSTEMS MAGAZINE, vol. 13, no. 2, 22 May 2013 (2013-05-22), pages 74 - 88, XP011510883, DOI: 10.1109/MCAS.2013.2256271 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017186830A1 (fr) * 2016-04-27 2017-11-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
FR3050846A1 (fr) * 2016-04-27 2017-11-03 Commissariat Energie Atomique Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
US11423296B2 (en) 2016-04-27 2022-08-23 Commissariat A L'energie Atomique Et Aux Energies Alternatives Device and method for distributing convolutional data of a convolutional neural network
FR3113971A1 (fr) * 2020-09-08 2022-03-11 Thales dispositif implémentant un filtre convolutionnel d'un réseau de neurones
WO2022053502A1 (fr) * 2020-09-08 2022-03-17 Thales Dispositif implémentant un filtre convolutionnel d'un réseau de neurones

Also Published As

Publication number Publication date
US20170200078A1 (en) 2017-07-13
US11055608B2 (en) 2021-07-06
FR3025344B1 (fr) 2017-11-24
WO2016030230A1 (fr) 2016-03-03
EP3186752A1 (fr) 2017-07-05

Similar Documents

Publication Publication Date Title
FR3025344A1 (fr) Reseau de neurones convolutionnels
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d&#39;un reseau de neurones convolutionnel
WO2017186830A1 (fr) Dispositif et procede de distribution de donnees de convolution d&#39;un reseau de neurones convolutionnel
Kataeva et al. Efficient training algorithms for neural networks based on memristive crossbar circuits
Srinivasan et al. Restocnet: Residual stochastic binary convolutional spiking neural network for memory-efficient neuromorphic computing
KR102545128B1 (ko) 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템
Panda et al. Asp: Learning to forget with adaptive synaptic plasticity in spiking neural networks
EP3659072B1 (fr) Calculateur pour reseau de neurones impulsionnel avec agregation maximale
US20190311267A1 (en) Noise injection training for memory-based learning
US20200117986A1 (en) Efficient processing of convolutional neural network layers using analog-memory-based hardware
EP2965269B1 (fr) Organe à neurone artificiel et memristor
JP2022541909A (ja) 再構成可能な時間符号化畳み込みスパイキングニューラルネットワークにおける特徴のイベントベースの分類
Hopkins et al. Spiking neural networks for computer vision
Zhang et al. Memristive quantized neural networks: A novel approach to accelerate deep learning on-chip
Alaeddine et al. Deep residual network in network
Maan et al. Memristive threshold logic circuit design of fast moving object detection
Vianello et al. Resistive memories for spike-based neuromorphic circuits
Giraldo et al. Deep learning based background subtraction: a systematic survey
Farhadi et al. Combining regularization and dropout techniques for deep convolutional neural network
Muramatsu et al. Combining spiking neural networks with artificial neural networks for enhanced image classification
Bürger et al. Volatile memristive devices as short-term memory in a neuromorphic learning architecture
Ernoult Rethinking biologically inspired learning algorithmstowards better credit assignment for on-chip learning
Liu et al. Rerise: An adversarial example restoration system for neuromorphic computing security
EP4264497A1 (fr) Mise a profit de la faible densite de donnees ou de poids non-nuls dans un calculateur de somme ponderee
Allred et al. Convolving over time via recurrent connections for sequential weight sharing in neural networks

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160304

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

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

ST Notification of lapse

Effective date: 20230405