FR 3124621 A1 20221230 FR 2106683 A 20210623 Procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels, procédé de traitement de données et circuit électronique associés Ce procédé d’apprentissage de modèles d’un réseau de neurones est mis en œuvre à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie ; et par un circuit électronique comprenant un arrangement de cellules mémoire agencées en matrices, chaque matrice étant associée à un neurone, chaque cellule étant associée à un poids synaptique, chaque rangée étant associée à un modèle, le procédé comprenant : - initialiser, pour chaque rangée, D poids d’apprentissage à une même valeur, chacun étant associé à une valeur d’apprentissage d’entrée, - initialiser l’arrangement de cellules ; - effectuer les opérations suivantes pour chaque rangée : + i) pour chaque valeur d’apprentissage d’entrée d’un lot de B couples parmi les D couples, commander les cellules de la rangée pour calculer une valeur de sortie correspondante, + ii) déterminer une perte globale pour le lot via une somme pondérée de B pertes unitaires, une perte unitaire étant obtenue pour chaque valeur d’apprentissage d’entrée et multipliée par le poids d’apprentissage correspondant, + iii) programmer les cellules de la rangée avec des poids synaptiques modifiés, obtenus en calculant des gradients via une rétropropagation à partir de la perte globale, + iv) calculer une variable d’évaluation du modèle via une somme des poids d’apprentissage pour des classifications erronées, et si la variable d’évaluation est inférieure ou égale à un seuil prédéfini, passer à la rangée suivante, et sinon effectuer à nouveau les opérations i) à iv). Figure pour l’abrégé : Aucune Procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels, procédé de traitement de données et circuit électronique associés La présente invention concerne un procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels, le procédé étant mis en œuvre à partir d’un groupe de données d’apprentissage et par un circuit électronique comprenant un arrangement de cellules mémoire. L’invention concerne également un procédé de traitement de données, notamment de classification de données, mis en œuvre par un circuit électronique implémentant un ensemble de modèles d’un réseau de neurones artificiels, ledit ensemble de modèles ayant été préalablement entraîné en mettant en œuvre un tel un procédé d’apprentissage. L’invention concerne aussi un circuit électronique configuré pour mettre en œuvre un tel ensemble de modèles d’un réseau de neurones artificiels. Le circuit électronique comprend un arrangement de cellules mémoire agencées sous forme d’une pluralité de matrices, chaque matrice de cellules mémoire étant associée à un neurone artificiel respectif, où chaque cellule mémoire est associée à un poids synaptique respectif dudit neurone, et un dispositif électronique de commande de l’arrangement de cellules mémoire. L’invention concerne le domaine de calculateurs, également appelé puces, électroniques de mise en œuvre de réseaux de neurones artificiels, aussi notés ANN (de l’anglais Artificial Neural Networks ), également appelés réseaux neuronaux, ces calculateurs électroniques permettant d’entraîner le réseau de neurones à partir de données d’apprentissage lors d’une phase d’apprentissage, également appelée apprentissage sur puce (de l’anglais on-chip learning ), puis d’utiliser le réseau de neurones lors d’une phase d’inférence. De tels calculateurs ou puces électroniques offrent alors, via la mise en œuvre de ces réseaux de neurones, de nombreuses applications, telles que la classification ou l’identification d’objets préalablement détectés par un capteur. Une application est par exemple l’apprentissage, puis la reconnaissance, d’identités de personnes dont le visage a été détecté par un détecteur de visage via un capteur d’images. Une autre application est l’apprentissage de caractéristiques, telles que des caractéristiques de voix humaines captées par un capteur sonore, et les caractéristiques apprises sont ensuite utilisées pour prétraiter les données pour l’apprentissage spécialisé sur la voix d’une personne. Pour une telle mise en œuvre de réseau de neurones artificiels, on connaît un circuit électronique du type précité comprenant un arrangement de cellules mémoire, telles que des cellules mémoire résistives, chaque cellule mémoire permettant de mémoriser, c’est-à-dire de stocker, un poids synaptique respectif de l’un des neurones du réseau de neurones. Les articles « Equivalent-accuracy accelerated neural-network training using analogue memory » de S. Ambrogio et al, publié dans la revue Nature en 2018, ci-après Ambrogio (2018) ; « Large-scale neural networks implemented with non-volatile memory as the synaptic weight element: Impact of conductance response. » de S. Sidler at al publié pour la 46 e conférence ESSDERC (European Solid-State Device Research Conference) ; « Fully hardware-implemented memristor convolutional neural network » de P. Yao et al, publié dans la revue Nature en 2018 ; « Experimental demonstration and tolerancing of a large-scale neural network (165 000 synapses) using phase-change memory as the synaptic weight element » de G. Burr et al, IEEE 2015 ; « Mixed-precision deep learning based on computational memory » de S.R. Nandakumar et al, publié dans la revue « Frontiers in Neuroscience » en 2020 ; et « In situ learning using intrinsic memristor variability via Markov chain Monte Carlo sampling » de T. Dalgaty et al, publié dans la revue Nature en 2021, décrivent de tels circuits électroniques pour la mise en œuvre de réseaux de neurones artificiels. De tels circuits électroniques avec des matrices de cellules mémoire résistives non-volatiles permettent une mise en œuvre efficace des réseaux de neurones artificiels, puisqu'ils évaluent facilement l'opération point, ou produit, requise lors de l'inférence pour générer des prédictions et lors de l'apprentissage pour calculer les mises à jour de poids synaptiques qui doivent être appliquées à chaque cellule, comme décrit dans l’article précité de S. Ambrogio et al, aussi appelé Ambrogio (2018). Les calculs liés aux réseaux de neurones artificiels s'effectuent dans les cellules mémoire et de manière analogique, ce qui implique qu’il n’est pas nécessaire de fournir de l'énergie pour transporter les données entre la mémoire et le traitement, ceci constituant normalement un goulot d'étranglement pour l'apprentissage/l'inférence des réseaux neuronaux. Cependant, les cellules mémoire résistives ne peuvent pas être mises à jour, c’est-à-dire programmées, avec une grande précision en raison de leurs propriétés aléatoires intrinsèques, comme indiqué dans l’article « Statistical fluctuations in HfO x resistive-switching memory: part I-set/reset variability » de S. Ambrogio et al, IEEE 2014, ci-après Ambrogio (2014). Par conséquent, l'apprentissage sur puce (de l’anglais on-chip learning , ou online learning , ou encore in-situ learning ) de réseaux de neurones avec des circuits électroniques à base de cellules mémoire résistives, également appelées cellules RRAM (de l’anglais Resistive Random-Access Memory ) ne permet pas d’effectuer un apprentissage de bonne précision, à moins de recourir à des techniques d'atténuation énergivores, telles que celles décrites dans l’article précité de S. Sidler at al. Le caractère aléatoire des mises à jour des cellules mémoire résistives engendre une mise à jour imprécise des poids synaptiques, empêche un algorithme de rétropropagation de diminuer, i.e. descendre, correctement un gradient d'erreur de sorte qu'il ne converge pas vers un bon optimum. Les travaux décrits dans l’article précité de P. Yao et al visent alors à atténuer, dans une certaine mesure, le caractère aléatoire par une programmation itérative en boucle fermée où les cellules mémoire sont programmées de manière répétée jusqu'à ce que leur valeur de conductance se situe dans une marge d'erreur tolérée prédéterminée. Cependant, une telle approche consomme de grandes quantités d'énergie et de temps, et n'augmente finalement que légèrement la précision. L’approche présentée dans l’article précité de G. Burr et al propose l'utilisation d'une programmation incrémentale par laquelle des impulsions sont appliquées à chaque cellule mémoire pour augmenter ou diminuer sa conductance de manière aléatoire. La proposition de l’article Ambrogio (2018) étend l'utilisation d'impulsions incrémentielles, en utilisant un transistor à chaque point de croisement du réseau, i.e. pour chaque cellule mémoire, transistor dont la grille est commandée par un condensateur pour augmenter la précision de mises à jour - en se basant sur le contrôle précis de la charge du condensateur, plutôt que sur le changement de conductance pour 99% des mises à jour. Cependant, les besoins énergétiques, ainsi que la densité de mémoire dégradée (due à l'incorporation de condensateurs à grande échelle), sont également des inconvénients importants. Une autre approche, décrite dans l’article précité de de S.R. Nandakumar et al, est basée sur l'accumulation d'erreurs dans une mémoire numérique de haute précision, ce qui module la programmation des cellules mémoire résistives. Dans une autre direction, l’article précité de de T. Dalgaty et al propose une exploitation des propriétés aléatoires des cellules mémoire résistives disposées sous forme de rangées de cellules successives, chaque rangée correspondant aux poids synaptiques d’un neurone respectif, en utilisant l'échantillonnage de Monte Carlo à chaîne de Markov, au lieu de la rétropropagation, pour apprendre les paramètres du réseau de neurones, notamment ses poids synaptiques. Cependant, la méthode de Monte Carlo à chaîne de Markov pose problème lors de l'extension aux modèles d'apprentissage profond à grande échelle et aux ensembles de données volumineux. Le but de l’invention est alors de proposer un procédé d’apprentissage d’un réseau de neurones artificiels, et un circuit électronique associé, permettant d’améliorer l’apprentissage du réseau de neurones, afin d’offrir ensuite une mise en œuvre plus précise du réseau de neurones, notamment pour les applications précitées de classification ou d’identification d’objets. A cet effet, l’invention a pour objet un procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels, chaque neurone artificiel étant apte à effectuer une somme pondérée de valeur(s) d’entrée, puis à appliquer une fonction d’activation à la somme pondérée pour délivrer une valeur de sortie, chaque valeur d’entrée étant reçue de la part d’un élément respectif connecté en entrée dudit neurone et multipliée par un poids synaptique associé à la connexion entre ledit neurone et l’élément respectif, le procédé étant mis en œuvre à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie, D étant un nombre entier supérieur à 1 ; et par un circuit électronique comprenant un arrangement de cellules mémoire agencées sous forme d’une pluralité de matrices, chaque matrice de cellules mémoire étant associée à un neurone artificiel respectif, où chaque cellule mémoire est associée à un poids synaptique respectif dudit neurone, chaque rangée de cellules mémoire étant associée à un modèle respectif, le procédé comprenant les étapes suivantes : - initialiser, pour chaque rangée respective de cellules mémoire, D poids d’apprentissage à une même valeur initiale, chacun étant associé à une valeur d’apprentissage d’entrée respective, - initialiser l’arrangement de cellules mémoire en appliquant une séquence de réinitialisation à chaque cellule mémoire ; - effectuer les opérations suivantes pour chaque rangée respective de cellules mémoire, et une rangée après l’autre de manière itérative : + i) pour chaque valeur d’apprentissage d’entrée d’un lot de B couples de valeurs d’entrée et de sortie parmi ledit groupe de D couples, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, commander les cellules mémoire de la rangée respective pour la pluralité de matrices, afin de calculer une valeur de sortie correspondant à la valeur d’apprentissage d’entrée respective, + ii) déterminer une perte globale pour le lot via une somme pondérée de B pertes unitaires, une perte unitaire étant obtenue pour chaque valeur d’apprentissage d’entrée respective en appliquant une fonction de perte à la valeur de sortie calculée par rapport à la valeur d’apprentissage de sortie respective, chaque perte unitaire étant multipliée par le poids d’apprentissage associé à la valeur d’apprentissage d’entrée respective, + iii) programmer les cellules mémoire de la rangée respective pour la pluralité de matrices avec des poids synaptiques modifiés, obtenus en calculant des gradients via un algorithme de rétropropagation à partir de la perte globale, + iv) calculer une variable d’évaluation du modèle courant via une somme des poids d’apprentissage pour des classifications erronées, chaque classification erronée correspondant à une étiquette associée à la valeur de sortie calculée distincte d’une étiquette associée à la valeur d’apprentissage de sortie respective, + si la variable d’évaluation du modèle courant est inférieure ou égale à un seuil prédéfini, passer à la rangée suivante associée au modèle suivant, et + si la variable d’évaluation du modèle courant est supérieure au seuil prédéfini, effectuer à nouveau les opérations i) à iv) précédentes. Ainsi, le procédé d’apprentissage selon l’invention permet, via le circuit électronique comportant l’arrangement de cellules mémoire où chaque rangée de cellules est associée à un modèle respectif, d’effectuer l’apprentissage de plusieurs modèles du réseau de neurones, de manière itérative pour un modèle après l’autre, à savoir pour une rangée après l’autre, en passant à la rangée suivante associée au modèle suivant seulement si la variable d’évaluation du modèle courant est inférieure ou égale au seuil prédéfini, ce qui permet d’avoir une précision minimale pour chaque modèle à l’issue de son apprentissage. Ce seuil prédéfini est de préférence choisi de manière à ce que la précision du modèle à l’issue de son apprentissage soit au moins meilleure qu'une estimation aléatoire, ce seuil étant alors par exemple égal 50%, i.e. 0,5, pour une application de classification binaire. Lors de la phase ultérieure d’inférence du réseau de neurones, préalablement entraîné lors de la phase d’apprentissage, chaque donnée reçue en entrée du réseau de neurones est de préférence traitée via plusieurs modèles de l’ensemble pour obtenir plusieurs données intermédiaires, chacune en sortie d’un modèle respectif, et une donnée résultante, destinée à être délivrée en sortie du réseau de neurones, est alors calculée à partir de ces données intermédiaires. La précision du traitement pour cette donnée, telle que la précision de la classification ou de l’identification, est alors meilleure de par la prise en compte de cette pluralité de données intermédiaires, comme le montrent les résultats obtenus avec le procédé d’apprentissage selon l’invention. De préférence, un poids prédictif est calculé en outre pour chaque modèle respectif en fonction de la variable d’évaluation associée à ce modèle, et les poids d’apprentissage pour le modèle suivant sont déterminés en outre à partir du poids prédictif du modèle courant, lesdits poids d’apprentissage étant de préférence augmentés pour les classifications erronées avec le modèle courant, ce qui permet alors, lors de l’apprentissage du modèle suivant, de chercher à améliorer l’apprentissage pour les classifications qui étaient précédemment erronées, ceci afin d’améliorer encore la précision de prédiction du réseau de neurones au global pour l’ensemble des modèles. En outre, le poids prédictif calculé pour chaque modèle permet ensuite lors de la phase d’inférence, et en particulier lors du calcul de la donnée résultante, de pondérer chaque donnée intermédiaire en fonction du poids prédictif associé au modèle ayant permis d’obtenir ladite donnée intermédiaire. Suivant d’autres aspects avantageux de l’invention, le procédé d’apprentissage comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - si la variable d’évaluation du modèle courant est inférieure ou égale à un seuil prédéfini, le procédé comporte en outre, préalablement au passage à la rangée suivante associée au modèle suivant : calculer un poids prédictif du modèle courant en fonction de ladite variable d’évaluation, et déterminer des poids d’apprentissage pour le modèle suivant et à partir du poids prédictif du modèle courant, lesdits poids d’apprentissage étant augmentés pour les classifications erronées ; le poids prédictif du modèle courant vérifiant de préférence l’équation suivante : où α n représente le poids prédictif du modèle courant, n étant un indice entier associé au modèle courant, ln représente la fonction logarithme népérien, et ∈ n représente la variable d’évaluation du modèle courant ; chaque poids d’apprentissage pour le modèle suivant vérifiant de préférence l’équation suivante : où W i,n et W i,n+1 représentent les poids d’apprentissage pour le modèle courant, et respectivement pour le modèle suivant, i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant compris entre 1 et D ; n et n+1 étant les indices entiers associés au modèle courant, et respectivement au modèle suivant, e représente la fonction exponentielle, y i et y* i représentent les étiquettes associées à la valeur de sortie calculée, et respectivement à la valeur d’apprentissage de sortie, et α n représente le poids prédictif du modèle courant ; - chaque cellule mémoire comporte au moins un composant mémoire et au moins un interrupteur, chaque interrupteur étant connecté à un composant mémoire respectif ; chaque composant mémoire étant de préférence un composant mémoire résistif ; chaque composant mémoire résistif étant de préférence encore choisi parmi le groupe consistant en : un composant OxRAM, un composant PCRAM, un composant CBRAM, un composant MRAM, un composant FLASH et un composant ferromagnétique ; chaque poids synaptique étant de préférence encore encodé via une conductance de l’au moins un composant mémoire ; - chaque cellule mémoire comporte des premier et deuxième composants mémoire et des premier et deuxième interrupteurs, le premier interrupteur étant connecté au premier composant mémoire et le deuxième interrupteur étant connecté au deuxième composant mémoire ; chaque poids synaptique étant de préférence encodé via la conductance du premier composant mémoire si ledit poids est positif, et via la conductance du deuxième composant mémoire si ledit poids est négatif ; et - le nombre de modèles correspondant au nombre de rangées dans chaque matrice de cellules mémoire est supérieur à 50, de préférence supérieur à 100, de préférence encore supérieur à 150. L’invention a également pour objet un procédé de traitement de données, notamment de classification de données, le procédé étant mis en œuvre par un circuit électronique implémentant un ensemble de modèles d’un réseau de neurones artificiels, le circuit électronique comprenant un arrangement de cellules mémoire agencées sous forme d’une pluralité de matrices, chaque matrice de cellules mémoire étant associée à un neurone artificiel respectif, où chaque cellule mémoire est associée à un poids synaptique respectif dudit neurone, chaque rangée de cellules mémoire étant associée à un modèle respectif, le procédé comprenant : - une phase d’apprentissage du réseau de neurones artificiels, lors de laquelle l’ensemble de modèles du réseau de neurones artificiels est entraîné à partir d’un groupe de données d’apprentissage, et - une phase d’inférence du réseau de neurones artificiels, lors de laquelle des données, reçues en entrée du circuit électronique, sont traitées, notamment classées, via le réseau de neurones artificiels, préalablement entraîné lors de la phase d’apprentissage, la phase d’apprentissage étant effectuée en mettant en œuvre un procédé d’apprentissage tel que défini ci-dessus. Suivant d’autres aspects avantageux de l’invention, le procédé de traitement comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - l’ensemble de modèles comporte N modèles, N étant un nombre entier, N>1 ; et lors de la phase d’inférence, chaque donnée reçue est traitée en parallèle via P modèle(s) de l’ensemble, pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier, 1≤P≤N ; et une donnée résultante est calculée à partir de la ou des P donnée(s) intermédiaire(s) ; et - lors de la phase d’inférence, la donnée résultante est une somme pondérée de la ou des P donnée(s) intermédiaire(s). L’invention a aussi pour objet un circuit électronique configuré pour mettre en œuvre un ensemble de modèles d’un réseau de neurones artificiels, chaque neurone artificiel étant apte à effectuer une somme pondérée de valeur(s) d’entrée, puis à appliquer une fonction d’activation à la somme pondérée pour délivrer une valeur de sortie, chaque valeur d’entrée étant reçue de la part d’un élément respectif connecté en entrée dudit neurone et multipliée par un poids synaptique associé à la connexion entre ledit neurone et l’élément respectif, le circuit électronique comprenant : - un arrangement de cellules mémoire agencées sous forme d’une pluralité de matrices, chaque matrice de cellules mémoire étant associée à un neurone artificiel respectif, où chaque cellule mémoire est associée à un poids synaptique respectif dudit neurone, et - un dispositif électronique de commande de l’arrangement de cellules mémoire, chaque rangée de cellules mémoire étant associée à un modèle respectif, et pour un apprentissage de l’ensemble de modèles à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie, D étant un nombre entier supérieur à 1, le dispositif électronique de commande est configuré, en commandant l’arrangement de cellules mémoire, pour : - initialiser, pour chaque rangée respective de cellules mémoire, D poids d’apprentissage à une même valeur initiale, chacun étant associé à une valeur d’apprentissage d’entrée respective, - initialiser l’arrangement de cellules mémoire en appliquant une séquence de réinitialisation à chaque cellule mémoire ; - effectuer les opérations suivantes pour chaque rangée respective de cellules mémoire, et une rangée après l’autre de manière itérative : + i) pour chaque valeur d’apprentissage d’entrée d’un lot de B couples de valeurs d’entrée et de sortie parmi ledit groupe de D couples, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, commander les cellules mémoire de la rangée respective pour la pluralité de matrices, afin de calculer une valeur de sortie correspondant à la valeur d’apprentissage d’entrée respective, + ii) déterminer une perte globale pour le lot via une somme pondérée de B pertes unitaires, une perte unitaire étant obtenue pour chaque valeur d’apprentissage d’entrée respective en appliquant une fonction de perte à la valeur de sortie calculée par rapport à la valeur d’apprentissage de sortie respective, chaque perte unitaire étant multipliée par le poids d’apprentissage associé à la valeur d’apprentissage d’entrée respective, + iii) programmer les cellules mémoire de la rangée respective pour la pluralité de matrices avec des poids synaptiques modifiés, obtenus en calculant des gradients via un algorithme de rétropropagation à partir de la perte globale, + iv) calculer une variable d’évaluation du modèle courant via une somme des poids d’apprentissage pour des classifications erronées, chaque classification erronée correspondant à une étiquette associée à la valeur de sortie calculée distincte d’une étiquette associée à la valeur d’apprentissage de sortie respective, + si la variable d’évaluation du modèle courant est inférieure ou égale à un seuil prédéfini, passer à la rangée suivante associée au modèle suivant, et + si la variable d’évaluation du modèle courant est supérieure au seuil prédéfini, effectuer à nouveau les opérations i) à iv) précédentes. Suivant un autre aspect avantageux de l’invention, le circuit électronique comprend la caractéristique suivante : - l’ensemble de modèles comporte N modèles, N étant un nombre entier supérieur à 1 ; et pour une inférence du réseau de neurones artificiels, le dispositif électronique de commande est configuré, en commandant l’arrangement de cellules mémoire et pour chaque donnée reçue en entrée, pour : - traiter la donnée via P modèle(s) de l’ensemble, pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier inférieur ou égal à N, et P ≥ 1 ; et - calculer une donnée résultante à partir de la ou des P donnée(s) intermédiaire(s). Ces caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : la est une vue schématique d’un circuit électronique, selon l’invention, configuré pour mettre en œuvre un ensemble de modèles d’un réseau de neurones artificiels, en particulier pour effectuer l’apprentissage dudit réseau, le circuit électronique comprenant un arrangement de cellules mémoire agencées sous forme d’une pluralité de matrices, et un dispositif électronique de commande de l’arrangement de cellules mémoire ; chaque matrice de cellules mémoire étant associée à un neurone artificiel respectif, où chaque cellule mémoire est associée à un poids synaptique respectif dudit neurone ; la est une vue schématique, d’une part, d’une rangée de cellules mémoire mise en œuvre lors de l’apprentissage pour calculer une valeur en sortie d’un neurone respectif, et d’autre part, de plusieurs rangées de cellules mémoire mises en œuvre simultanément lors de la phase d’inférence, afin de calculer plusieurs valeurs intermédiaires en sortie d’un même neurone respectif, puis de pondérer de préférence lesdites valeurs intermédiaires avec un poids prédictif associé à chaque modèle respectif ; selon un premier exemple où chaque cellule mémoire comporte au moins un composant mémoire OxRAM, c’est-à-dire un composant mémoire à base d’oxyde d’hafnium ; la est une vue schématique d’une colonne de cellules mémoire, selon un deuxième exemple où chaque cellule mémoire comporte au moins un composant mémoire PCRAM, c’est-à-dire un composant mémoire à changement de phase ; la est un organigramme d’un procédé de traitement de données selon l’invention, le procédé étant mis en œuvre par le circuit électronique de la et comprenant une phase d’apprentissage de l’ensemble de modèles du réseau de neurones artificiels, effectuée en mettant en œuvre un procédé d’apprentissage selon l’invention ; suivie d’une phase d’inférence du réseau de neurones, lors de laquelle des données reçues en entrée du circuit électronique sont traitées via le réseau de neurones, préalablement entraîné lors de la phase d’apprentissage ; la est une vue d’un ensemble de courbes de résultats selon l’invention, avec un premier graphique comportant une représentation d’un taux de précision unitaire obtenu pour chaque modèle individuellement, d’un poids prédictif calculé pour chaque modèle, et d’un taux de précision pour le réseau de neurones, et un deuxième graphique comportant une courbe montrant l’évolution du taux de précision du réseau de neurones en fonction du nombre de modèles mis en œuvre pour ledit réseau de neurones ; selon une première variante ; et la est une vue analogue à celle de la , selon une deuxième variante. On entend par classe, également appelée tâche, un regroupement de données semblables, ou de même type ; et à chaque classe, ou tâche (de l’anglais task ), est associée une étiquette (de l’anglais label ), également appelée identifiant. La classification d’un objet ou d’une donnée est alors le rangement de ladite donnée ou dudit objet dans une classe respective, cette classification étant typiquement effectuée via l’attribution, c’est-à-dire le calcul, d’une étiquette pour ladite donnée ou ledit objet, l’étiquette indiquant alors la classe qui a été calculée pour ladite donnée ou ledit objet. On entend par objet une réalisation concrète d’une classe, par exemple un objet physique ou une personne, et plus généralement un élément présent dans une scène captée par un capteur, notamment du type décrit ci-après. La scène est alors typiquement représentée sous forme d’images ou de vidéos dans le cas d’un capteur d’images ou d’un capteur infrarouge, sous forme sonore dans le cas d’un capteur sonore, ou encore sous forme de nuage(s) de points dans le cas d’un capteur lidar ou radar. Sur la , un circuit électronique 10 est configuré pour mettre en œuvre un ensemble de modèles d’un réseau de neurones artificiels 15, également appelé ANN (de l’anglais Artificial Neural Network ). Dans l’exemple de la , le circuit électronique 10 est en complément facultatif connecté à un capteur 18, et forme avec le capteur 18 un système électronique de détection configuré pour détecter un ou plusieurs objets, non représentés. Le système électronique de détection est typiquement un détecteur d’éléments présents dans la scène captée par le capteur, tels que des visages, apte à reconnaître les éléments préalablement identifiés et/ou à détecter des éléments inconnus, c’est-à-dire des éléments qui n’ont pas été préalablement été identifiés. En particulier, le circuit électronique 10 est configuré pour entraîner, c’est-à-dire pour apprendre, le réseau de neurones artificiels 15 ; puis pour utiliser le réseau de neurones 15, préalablement entraîné, afin de calculer de nouvelles valeurs de sortie à partir de nouvelles valeurs d’entrée. En d’autres termes, le circuit électronique 10 est de préférence configuré pour effectuer à la fois l’apprentissage et l’inférence du réseau de neurones 15. Dans la présente description, les termes « apprentissage » (de l’anglais l earning ) et « entraînement » (de l’anglais t raining ) sont considérés comme équivalents, c’est-à-dire qu’ils ont la même signification, et sont alors employés de manière interchangeable. Comme connu en soi, chaque neurone artificiel est apte à effectuer une somme pondérée de valeur(s) d’entrée, puis à appliquer une fonction d’activation f à la somme pondérée pour délivrer une valeur de sortie, chaque valeur d’entrée étant reçue de la part d’un élément respectif connecté en entrée dudit neurone et multiplié par un poids synaptique associé à la connexion entre ledit neurone et l’élément respectif. L’élément respectif connecté en entrée dudit neurone est une variable d’entrée du réseau de neurones 15 lorsque ledit neurone appartient à une première couche, également appelée couche d’entrée, dudit réseau de neurones 15 ; ou bien est un neurone d’une couche précédente du réseau de neurones 15 lorsque ledit neurone appartient à une couche intermédiaire ou encore à une dernière couche, également appelée couche de sortie, du réseau de neurones 15. Comme connu en soi, la fonction d’activation f, également appelée fonction de seuillage ou encore fonction de transfert, permet d’introduire une non-linéarité dans le traitement effectué par chaque neurone artificiel. Des exemples classiques d’une telle fonction d’activation f sont la fonction sigmoïde, la fonction tangente hyperbolique, et la fonction de Heaviside, et la fonction d’unité de rectification linéaire, également appelée ReLU (de l’anglais Rectified Linear Unit ). Le circuit électronique 10 est alors configuré pour, via la mise en œuvre du réseau de neurones 15, traiter un ensemble de donnée(s), l’ensemble de donnée(s) correspondant typiquement à un ou plusieurs signaux captés par le capteur 18. Le circuit électronique 10 est alors par exemple configuré pour interpréter une scène captée par le capteur 18, c’est-à-dire pour identifier et/ou pour reconnaître un type d’un ou plusieurs éléments, tels que personnes ou objets physiques, présents dans la scène captée et correspondant au signal ou aux signaux captés par le capteur 18. Le circuit électronique 10 comprend un arrangement de cellules mémoire 20 agencé sous forme d’une pluralité de matrices 22, chaque matrice 22 de cellules mémoire 20 étant associée à un neurone artificiel respectif, où chaque cellule mémoire 20 est associée à un poids synaptique respectif dudit neurone. Au sein de l’arrangement de cellules mémoire 20, les matrices 22 sont de préférence juxtaposées les unes aux autres, et l’arrangement est bidimensionnel. En variante, l’arrangement est tridimensionnel, et les matrices 22 sont en partie juxtaposées et en partie superposées, i.e. empilées, les unes sur les autres. Dans l’exemple de la , par souci de simplification du dessin, seule une matrice 22 de cellules mémoire 20 est représentée, ladite matrice 22 étant associée à un neurone artificiel respectif. Dans l’exemple de la , pour l’agencement des cellules mémoire 20 sous forme de la matrice 24, le circuit électronique 10 comprend des premières lignes 26 et des deuxièmes lignes 28 connectées aux cellules mémoire 20, les premières lignes 26 étant également appelées lignes horizontales, les premières lignes 26chaque première ligne 26 étant reliée à une rangée respective de cellules mémoire 20, et les deuxièmes lignes 28 étant également appelées lignes verticales, chaque deuxième ligne 28 étant connectée à une colonne de cellules mémoire 20. Dans l’exemple de la , à chaque cellule mémoire 20 est connectée au moins une première ligne 26, et de préférence deux premières lignes 26, et au moins une deuxième ligne 28. De préférence, parmi les premières lignes 26, certaines sont des premières lignes de commande, notées 26A ou WL (de l’anglais Word Line ), et d’autres des premières lignes de lecture, notées 26B ou BL (de l’anglais Bit Line ). Les deuxièmes lignes 28 sont également notées SL (de l’anglais Source Line , ou encore Sense Line ). Le circuit électronique 10 comprend en outre un dispositif électronique 30 de commande de l’arrangement de cellules mémoire 20. Dans l’exemple de la , le dispositif électronique de commande 30 comporte un premier module de commande 32 configuré pour commander les premières lignes 26 et un deuxième module de commande 34 configuré pour commander les deuxièmes lignes 28. De préférence, les premier et deuxième modules de commande 32, 34 permettent d’effectuer une commande entièrement numérique des cellules mémoire 20 via les première(s) et deuxième(s) lignes 26, 28. En complément facultatif, le dispositif électronique de commande 30 comporte une pluralité d’amplificateurs de détection de pré-charge, également notés PCSA (de l’anglais P re- C harge S ense A mplifier ), avec typiquement un amplificateur de détection de pré-charge pour chaque colonne de la matrice 24, comme représenté sur la Comme connu en soi, par exemple dans l'article « Digital Biologically Plausible Implementation of Binarized Neural Networks with Differential Hafnium Oxide Resistive Memory Arrays » de T. Hirtzlin et al, les amplificateurs de détection de pré-charge (PCSA) sont configurés pour être utilisés pendant les opérations de lecture des cellules de mémoire 20. Les amplificateurs de détection de pré-charge sont très efficaces en consommation d’énergie et offrent un rendement énergétique élevé, en raison de leur fonctionnement en deux phases, à savoir une phase de pré-charge et une phase de décharge, évitant tout chemin direct entre une tension d'alimentation et une masse. Ce rendement énergétique élevé est principalement dû à la grande vitesse de calcul, le courant circulant dans les cellules mémoire 20 pendant un temps très court, typiquement pendant quelques nanosecondes ou quelques dizaines de nanosecondes. En variante, le dispositif électronique de commande 30 comporte une pluralité d’amplificateurs tampons de courant, en lieu et place des amplificateurs de détection de pré-charge. Chaque amplificateur tampon de courant permet de lire le courant et de le mettre simultanément en tampon dans un circuit analogique qui évalue la fonction d'activation du neurone, par exemple un circuit de neurones LIF, tel que celui décrit dans l’article « A silicon neuron » de Mahowald, Misha, et Rodney Douglas, publié dans Nature en 1991. Chaque amplificateur tampon de courant évite de numériser, ou binariser, le signal, et consomme donc moins d'énergie.Le réseau de neurones 15 comprend des neurones d’entrée pour recevoir des valeurs d’entrée, des neurones de sortie pour délivrer des valeurs de sortie, et des neurones intermédiaires entre les neurones d’entrée et de sortie, un poids synaptique étant associé à chaque connexion entre deux neurones respectifs. Dans l’exemple de la , par souci de simplification des dessins, seules deux couches successives du réseau de neurones 15 sont représentées, à savoir une première couche avec des premiers neurones 40 et une deuxième couche avec des deuxièmes neurones 42, avec des connexions neuronales multiples entre les premiers et les deuxièmes neurones 40,42, un poids synaptique respectif étant alors associé à chaque connexion neuronale entre deux neurones respectifs 40, 42. L’homme du métier comprendra que la première couche avec les premiers neurones 40 et la deuxième couche avec les deuxièmes neurones 42 sont représentatives de toute paire de couches successives du réseau de neurones 15. Comme cela est connu en soi, l’apprentissage du réseau de neurones 15 comprend un passage en avant (de l’anglais forward pass ) incluant le calcul d’une valeur de sortie en appliquant le réseau de neurones 15 à une valeur d’apprentissage d’entrée respective dans une direction vers l’avant, c’est-à-dire depuis les neurones d’entrée vers les neurones de sortie, symbolisé par une flèche F1 sur la depuis les premiers neurones 40 vers les deuxièmes neurones 42. L’apprentissage du réseau de neurones 15 comprend en outre une mise à jour des poids synaptiques via un algorithme de rétropropagation correspondant à un passage en arrière (de l’anglais backward pass ), symbolisé par une flèche F2 à la , depuis les deuxièmes neurones 42 vers les premiers neurones 40. Le capteur 18 est connu en soi, et est par exemple un capteur d’image(s) configuré pour prendre une ou plusieurs images de la scène, et les transmettre au circuit électronique 10. En variante, le capteur 18 est un capteur sonore, un capteur de détection d’objets, tel qu’un capteur lidar, un capteur radar, un capteur infrarouge, un capteur de proximité capacitif, un capteur de proximité inductif, un capteur de proximité à effet Hall ou encore un capteur de présence, configuré pour acquérir un signal caractéristique en fonction de la présence ou de l’absence d’objet(s), puis pour le transmettre au circuit électronique 10. Chaque cellule mémoire 20 comporte au moins un composant mémoire 50 et au moins un interrupteur 52, chaque interrupteur 52 étant connecté à un composant mémoire 50 respectif. Chaque interrupteur 52 est commandable, en particulier pour effectuer une opération d’écriture du composant mémoire 50 associé audit interrupteur 52, et respectivement une opération de lecture dudit composant mémoire 50. Chaque interrupteur 52 est aussi utilisé pour limiter le courant de programmation circulant dans la cellule mémoire 20, ce qui permet de déterminer, de façon imprécise, la valeur stockée dans la cellule mémoire 20, telle qu’une conductance programmée. Dans l’exemple des figures 2 et 3, chaque cellule mémoire 20 comporte deux composants mémoire 50, à savoir un premier composant mémoire 50A et un deuxième composant mémoire 50B, et deux interrupteurs 52, à savoir un premier interrupteur 52A et un deuxième interrupteur 52B, le premier interrupteur 52A étant connecté au premier composant mémoire 50A, et le deuxième interrupteur 52B étant connecté au deuxième composant mémoire 50B. Dans l’exemple des figures 2 et 3, chaque poids synaptique est de préférence alors encodé via le premier composant mémoire 50A si ledit poids est positif, et via le deuxième composant mémoire 50B si ledit poids est négatif. Chaque composant mémoire 50 est de préférence un composant mémoire résistif, également appelé composant RRAM (de l’anglais R esistive R andom A ccess M emory ). Chaque poids synaptique est alors typiquement encodé via une conductance de l’au moins un composant mémoire 50. Lorsqu’en complément facultatif chaque cellule mémoire 20 comporte deux composants mémoire 50, à savoir les premier et deuxième composants mémoire 50A, 50B, chaque poids synaptique est alors de préférence encodé via la conductance du premier composant mémoire 50A si ledit poids est positif, et via la conductance du deuxième composant mémoire 50B si ledit poids est négatif. Lorsqu’en complément facultatif chaque composant mémoire 20 est un composant mémoire résistif, chaque composant mémoire résistif est par exemple choisi parmi le groupe consistant en : un composant OxRAM (de l’anglais ha fnium- O xide R andom A ccess M emory ), également appelé composant de mémoire vive résistive à oxyde d’hafnium ; un composant PCRAM (de l’anglais P hase C hange Random Access Memory ), aussi noté PCM (de l’anglais P hase C hange M emory ), également appelé composant de mémoire vive à changement de phase ; un composant CBRAM (de l’anglais C onductiv e B ridging Random Access Memory ) également appelé composant de mémoire vive à pontage conducteur ; un composant MRAM (de l’anglais M agnetic Random Access Memory ), également appelé composant de mémoire vive magnétique ; un composant FLASH ; et un composant de mémoire ferromagnétique ou ferroélectrique. Chaque interrupteur 52 forme un composant de commutation. Chaque interrupteur 52 est de préférence un transistor, tel qu’un transistor à effet de champ, également noté FET (de l’anglais Field Effect Transistor ), en particulier un transistor à effet de champ à grille métal-oxyde, également noté MOSFET (de l’anglais Metal Oxide Semi c onductor Field Effect Transistor ), également appelé transistor MOS (de l’anglais Metal Oxide Silicon ), par exemple un transistor NMOS. En variante, l’interrupteur 52 est en forme d’un matériau de commutation, par exemple celui décrit dans l’article « Innovative pcm+ ots device with high sub-threshold non-linearity for non-switching reading operations and higher endurance performance » de G Navarro et al, IEEE 2017. Dans l’exemple des figures 2 et 3, chaque cellule mémoire 20 est en forme d’une structure 2T2R dans laquelle les deux interrupteurs 52, tels que deux transistors, correspondent aux « 2T », et les deux composants mémoire 50, tels que deux composants mémoire résistifs, également notés RRAM, correspondent aux « 2R ». Dans l’exemple des figures 2 et 3, chaque interrupteur 52 en forme d’un transistor respectif a une électrode de commande, également appelée électrode grille ; et deux électrodes de conduction, à savoir une électrode de source et une électrode de drain. Chaque interrupteur 52 est typiquement connecté via son électrode de grille à une première ligne de commande 26A respective, généralement appelée ligne de mot et notée WL (de l’anglais Word Line ), par l’une de ses électrodes de conduction au composant mémoire 50, et par l’autre de ses électrodes de conduction à une première ligne de lecture 26B respective. Dans l’exemple de la , chaque composant mémoire 50 est typiquement un composant OxRAM ; et la connexion de chaque cellule mémoire 20 aux première(s) et deuxième(s) lignes de commande 26, 28 respectives afin de former une rangée de cellules mémoire 20 respectives est celle décrite dans l’article précité de T. Dalgaty et al, avec l’agencement en rangées des cellules mémoire. Cet agencement en rangées, c’est-à-dire en ligne, de cellules mémoire 20 de type OxRAM de l’exemple de la , adapté pour calculer une valeur de sortie A apte à être délivrée par un neurone artificiel respectif suite à l’application de la fonction d’activation f à la somme pondérée de valeur(s) d’entrée, cette somme pondérée correspondant au produit scalaire du vecteur V de valeurs d’entrée par un vecteur G de poids synaptiques. Selon cet exemple de la , l’agencement en rangées de cellules mémoire 20 de type OxRAM est également décrit la demande européenne EP 20305450.7, déposée le 6 mai 2020 et intitulée « Bayesian neural network with resistive memory hardware accelerator and method for programming the same », notamment en regard des figures 5A à 7D. Dans l’exemple de la , chaque composant mémoire 50 est un composant PCRAM, également appelé noté PCM. Dans cet exemple, chaque interrupteur 52 en forme d’un transistor est typiquement connecté via son électrode à grille à une ligne de mot WL 0 , où 0 est une valeur à titre d’exemple d’un indice entier n associé à une rangée de cellules mémoire 20, cet indice n étant par exemple compris entre 0 et N-1 où N représente le nombre de rangées de cellules mémoire 20 dans chaque matrice 24 de cellules mémoire 20. L’exemple de la correspond alors à la rangée R 0 . Chaque ligne de mot WL 0 correspond à une première ligne de commande 26A, et chaque interrupteur 52 est en outre connecté via son électrode de drain à une ligne de bit, également notée BL (de l’anglais Bit Line ), correspondant à une première ligne de lecture 26B respective, et via son électrode de source à l’une des deux électrodes d’un composant mémoire 50 respectif, l’autre électrode dudit composant mémoire 50 étant connectée à une ligne de détection, ou encore à une ligne de lecture, également notée SL m (de l’anglais Sense Line ), où m est un indice entier compris entre 0 et M-1, de manière analogue à l’exemple de la . Chaque ligne de détection SL m correspond typiquement à une deuxième ligne 28 respective. Lorsque chaque composant mémoire 50 est un composant PCRAM, le composant mémoire est également appelé composant C-RAM ou CRAM (de l’anglais Chalcogenide Random Access Memory ), et un tel composant de mémoire à changement de phase exploite le comportement du matériau chalcogénure. Pour certains composants de mémoire à changement de phase, la chaleur produite par le passage d’un courant électrique dans un élément chauffant généralement constitué de nitrure de titane est utilisée soit pour chauffer et refroidir rapidement le chalcogénure, le rendant ainsi amorphe, soit pour le maintenir dans sa plage de température de cristallisation pendant un certain temps, le faisant alors passer à l’état cristallin. En outre, le composant de mémoire à changement de phase a également la capacité d’atteindre un certain nombre d’états intermédiaires distincts, ce qui permet alors de contenir plusieurs bits dans un seul composant mémoire 50. Chaque amplificateur de détection de pré-charge, également noté PCSA, comprend par exemple six composants de commutation T1, T2, T3, T4, T5, T6, à savoir un premier composant de commutation T1, un deuxième composant de commutation T2, un troisième composant de commutation T3, un quatrième composant de commutation T4, un cinquième composant de commutation T5 et un sixième composant de commutation T6, comme illustré sur la . Chaque composant de commutation T1, T2, T3, T4, T5, T6 comporte deux électrodes de conduction et une électrode de commande. Dans l'exemple de la , chaque composant de commutation T1, T2, T3, T4, T5, T6 est un transistor, tel qu'un FET, notamment un transistor MOSFET ou MOS. En conséquence, les deux électrodes de conduction sont une électrode de source et une électrode de drain ; et l'électrode de commande est une électrode de grille. Chaque amplificateur de détection de pré-charge PCSA est connecté à une ligne d'alimentation Vdd ; à une ligne d'horloge CLK ; et à deux lignes de sortie complémentaires, à savoir une première ligne de sortie Out et une deuxième ligne de sortie Outb complémentaire de la première ligne de sortie Out. Dans l'exemple de la , le premier composant de commutation T1 est relié par ses électrodes de conduction entre la ligne d'alimentation Vdd et la deuxième ligne de sortie Outb et par son électrode de commande à la ligne d'horloge CLK. Le deuxième composant de commutation T2 est relié par ses électrodes de conduction entre la ligne d'alimentation Vdd et la première ligne de sortie Out et par son électrode de commande à la ligne d'horloge CLK. Dans l'exemple de la , le premier et le deuxième composant de commutation T1, T2 sont des transistors PMOS, leur électrode de source étant reliée à la ligne d'alimentation Vdd. Dans l'exemple de la , le troisième composant de commutation T3 est relié par ses électrodes de conduction entre la ligne d'alimentation Vdd et la deuxième ligne de sortie Outb et par son électrode de commande à la première ligne de sortie Out. Le quatrième composant de commutation T4 est relié par ses électrodes de conduction entre la ligne d'alimentation Vdd et la première ligne de sortie Out et par son électrode de commande à la deuxième ligne de sortie Outb. Dans l'exemple de la , les troisième et quatrième composants de commutation T3, T4 sont des transistors PMOS, leur électrode de source étant reliée à la ligne d'alimentation Vdd. Dans l'exemple de la , le cinquième composant de commutation T5 est relié par ses électrodes de conduction entre la deuxième ligne de sortie Outb et une première ligne de bit BLb et par son électrode de commande à la première ligne de sortie Out. Le sixième composant de commutation T6 est relié par ses électrodes de conduction entre la première ligne de sortie Out et une deuxième ligne de bit BL et par son électrode de commande à la deuxième ligne de sortie Outb. Dans l'exemple de la , les cinquième et sixième composants de commutation T5, T6 sont des transistors NMOS, leur électrode de source étant reliée à la ligne de bit BL, BLb respective. Dans l'exemple des figures 2 et 3 et de manière conventionnelle, la connexion électrique entre une électrode et une ligne respective est symbolisée par un point ; et le croisement de deux lignes sans point à l'intersection de ces deux lignes correspond à une absence de connexion électrique entre ces deux lignes. Chaque rangée de cellules mémoire 20 est associée à un modèle respectif dudit ensemble de modèles du réseau de neurones artificiels 15. Chaque rangée de cellules mémoire 20 est typiquement une rangée horizontale (de l’anglais row ). Le nombre N de rangées dans chaque matrice 24 de cellules mémoire 20, correspondant au nombre de modèles de l’ensemble de modèles du réseau de neurones 15, est par exemple supérieur à 50, de préférence supérieur à 100, et de préférence encore supérieur à 150. Le dispositif de commande 30 est configuré pour commander l’arrangement de cellules mémoire 20, notamment pour mettre en œuvre un apprentissage de l’ensemble de modèles du réseau de neurones 15, lors d’une phase d’apprentissage 100 et à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie, D étant un nombre entier supérieur à 1, puis pour mettre en œuvre une inférence dudit réseau de neurones 15 lors d’une phase d’inférence 150, le réseau de neurones étant préalablement entraîné lors de la phase d’apprentissage 100. Pour l’apprentissage de l’ensemble de modèles du réseau de neurones 15, le dispositif de commande 30 est configuré, en commandant l’arrangement de cellules mémoire 20, pour initialiser, pour chaque rangée R n respective de cellules mémoire 20, D poids d’apprentissage W i , n à une même valeur initiale, chaque poids d’apprentissage W i , n étant associé à une valeur d’apprentissage d’entrée respective. Le dispositif de commande 30 est en outre configuré pour initialiser l’arrangement de cellules mémoire 20 en appliquant une séquence de réinitialisation à chaque cellule mémoire 20. La séquence de réinitialisation est connue en soi, et dépend du type de composant mémoire 50 inclus dans chaque cellule mémoire 20. Pour l’apprentissage de l’ensemble de modèles, le dispositif de commande 30 est configuré en outre, en commandant l’arrangement de cellules mémoire 20, pour effectuer les opérations suivantes pour chaque rangée R n respective de cellules mémoire 20, et une rangée après l’autre de manière itérative : + i) pour chaque valeur d’apprentissage d’entrée d’un lot (de l’anglais batch ou mini-batch ) de B couples de valeurs d’entrée et de sortie parmi ledit groupe de D couples, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, commander les cellules 20 de la rangée R n respective pour la pluralité de matrices 22, afin de calculer une valeur de sortie correspondant à la valeur d’apprentissage d’entrée respective, telle que la valeur A à la , également notée Y i , où i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant par exemple compris entre 1 et D ; + ii) déterminer une perte globale L pour le lot via une somme pondérée de B pertes unitaires J(Y i ), une perte unitaire J(Y i ) étant obtenue pour chaque valeur d’apprentissage d’entrée respective en appliquant une fonction de perte J à la valeur de sortie Y i calculée par rapport à la valeur d’apprentissage de sortie Y* i respective, chaque perte unitaire J(Y i ) étant multipliée par le poids d’apprentissage W i,n associé à la valeur d’apprentissage d’entrée respective, où n est un indice entier associé au modèle courant, n étant par exemple compris entre 0 et N-1 ; + iii) programmer les cellules 20 de la rangée R n respective pour la pluralité de matrices 22 avec des poids synaptiques modifiés, obtenus en calculant des gradients via un algorithme de rétropropagation à partir de la perte globale L ; et + iv) calculer une variable d’évaluation ∈ n du modèle courant via une somme des poids d’apprentissage pour des classifications erronées, chaque classification erronée correspondant à une étiquette y i associée à la valeur de sortie calculée distincte d’une étiquette y* i associée à la valeur d’apprentissage de sortie respective. Après avoir effectué les opérations i) à iv) précitées, le dispositif de commande 30 est configuré en outre pour comparer la variable d’évaluation ∈ n du modèle courant à un seuil prédéfini S ; et déterminer ainsi si la variable d’évaluation ∈ n du modèle courant d’indice n est inférieure ou égale au seuil prédéfini S, et passer alors à la rangée suivante R n+1 associée au modèle suivant d’indice n+1 ; ou bien si la variable d’évaluation ∈ n du modèle courant est au contraire supérieure au seuil prédéfini S, et effectuer alors à nouveau les opérations i) à iv) précitées. Autrement dit, le dispositif de commande 30 est configuré et effectuer alors à nouveau les opérations i) à iv) précitées, tant que la variable d’évaluation ∈ n du modèle courant est supérieure au seuil prédéfini S. Le dispositif de commande 30 est typiquement configuré pour initialiser, pour chaque rangée R n respective de cellules mémoire 20, les D poids d’apprentissage W i, n à la valeur initiale égale à 1/D, qui est alors commune à tous les poids d’apprentissage W i, n . Le seuil prédéfini S pour la comparaison de la variable d’évaluation ∈ n du modèle courant est alors par exemple égal à 0,5, correspondant à une probabilité de classification correcte égale à 50%. Le dispositif électronique de commande 30 est par exemple configuré pour déterminer la perte globale L, selon l’équation suivante : où L n représente la perte globale du modèle courant, n étant un indice entier associé au modèle courant, D représente le nombre de couples de valeurs d’entrée et de sortie dans le groupe de données d’apprentissage, D étant un nombre entier supérieur à 1, B représente le nombre de couples de valeurs d’entrée et de sortie dans le lot, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, W i,n représentent les poids d’apprentissage pour le modèle courant, i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant compris entre 1 et D, J(Y i,n ) représente les pertes unitaires obtenues pour le modèle courant. Le dispositif électronique de commande 30 est par exemple configuré pour calculer la variable d’évaluation ∈ n du modèle courant, selon l’équation suivante : où ∈ n représente la variable d’évaluation du modèle courant, n étant un indice entier associé au modèle courant, W i,n représentent les poids d’apprentissage pour le modèle courant, i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant compris entre 1 et D, et y i et y* i représentent les étiquettes associées à la valeur de sortie Y i calculée, et respectivement à la valeur d’apprentissage de sortie Y* i . En complément facultatif, si la variable d’évaluation ∈ n du modèle courant est inférieure ou égale au seuil prédéfini S, le dispositif électronique de commande 30 est configuré en outre pour, préalablement au passage à la rangée suivante R n+1 associée au modèle suivant, calculer un poids prédictif α n du modèle courant en fonction de ladite variable d’évaluation ∈ n . Selon ce complément facultatif, le dispositif électronique de commande 30 est par exemple configuré pour calculer le poids prédictif α n du modèle courant, selon l’équation suivante : où α n représente le poids prédictif du modèle courant, n étant un indice entier associé au modèle courant, ln représente la fonction logarithme népérien, et ∈ n représente la variable d’évaluation du modèle courant. Selon ce complément facultatif, le dispositif électronique de commande 30 est optionnellement configuré en outre pour déterminer des poids d’apprentissage W i,n+1 pour le modèle suivant et à partir du poids prédictif α n du modèle courant, lesdits poids d’apprentissage W i,n+1 étant augmentés pour les classifications erronées. Selon ce complément facultatif, le dispositif électronique de commande 30 est par exemple configuré pour déterminer chaque poids d’apprentissage W i,n+1 pour le modèle suivant, selon l’équation suivante : où W i,n et W i,n+1 représentent les poids d’apprentissage pour le modèle courant, et respectivement pour le modèle suivant, i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant compris entre 1 et D ; n et n+1 étant les indices entiers associés au modèle courant, et respectivement au modèle suivant, e représente la fonction exponentielle, y i et y* i représentent les étiquettes associées à la valeur de sortie Y i calculée, et respectivement à la valeur d’apprentissage de sortie Y* i , et α n représente le poids prédictif du modèle courant. L’homme du métier observera que dans l’exemple d’une classification binaire, les étiquettes y i et y* i appartiennent à l’ensemble {+1 ; -1} de par une fonction de signe implémentée dans la couche de sortie du réseau de neurones 15, et les zéros ne sont pas utilisés comme étiquette ou comme sortie. Cela signifie que les poids d’apprentissage W i,n+1 sont augmentés pour les classifications erronées, i.e. si y i différent de y* i , et inversement diminués pour les classifications correctes, i.e. si y i égal à y* i . En complément, pour l’inférence du réseau de neurones artificiels 15, le dispositif électronique de commande 30 est configuré, en commandant l’arrangement de cellules mémoire 20 et pour chaque donnée reçue en entrée, pour traiter la donnée via P modèle(s) de l’ensemble, pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier inférieur ou égal à N, et P ≥ 1 ; puis pour calculer une donnée résultante à partir de la ou des P donnée(s) intermédiaire(s). Le premier module de commande 32 et le second module de commande 34 sont configurés pour être pilotés de manière coordonnée, connue en soi, par exemple pour la technologie RAM (de l’anglais Random Access Memory ), de manière à faire fonctionner les cellules mémoire 20, en particulier les composants mémoire 50, selon des états d'opération bien connus, à savoir un état de maintien pour conserver une valeur contenue dans un composant mémoire 50 respectif, un état d'écriture pour écrire une nouvelle valeur dans un composant mémoire 50 respectif, et un état de lecture pour lire la valeur d'un composant mémoire 50 respectif. Le fonctionnement du circuit électronique 10 selon l'invention va maintenant être expliqué en regard de la représentant un organigramme d'un procédé de traitement de données, notamment de classification de données, via l’implémentation du réseau de neurones artificiels 15 avec le circuit électronique 10, le procédé comprenant une phase d'apprentissage 100 dans laquelle un procédé, selon l'invention, d’apprentissage de l’ensemble de modèles du réseau de neurones 15 est mis en œuvre, puis une phase d'inférence 150 dans laquelle le réseau de neurones artificiels 15, préalablement entraîné, est utilisé pour calculer des valeurs de sortie, afin de traiter, notamment de classifier, i.e. classer, lesdites données. La phase d’apprentissage 100 comprend une étape 200 d’initialisation, pour chaque rangée R n respective de cellules mémoire 20, des D poids d’apprentissage W i , n à une même valeur initiale, cette valeur initiale étant typiquement égale à 1/D afin d’avoir une somme totale des poids d’apprentissage W i , n normalisée à 1. Chaque poids d’apprentissage est également noté W i , n , où i est l’indice entier associé à la valeur d’apprentissage d’entrée, i.e. au couple correspondant de valeurs d’apprentissage d’entrée et de sortie, et n est l’indice entier associé au modèle courant. A l’issue de l’étape d’initialisation des poids d’apprentissage 200, le circuit électronique 10 initialise, lors de l’étape suivante 210 et via son dispositif de commande 30, l’arrangement de cellules mémoire 20. Cette étape d’initialisation est effectuée en appliquant, à chaque cellule mémoire 20, la séquence de réinitialisation connue en soi, ladite séquence étant propre à chaque technologie de cellule mémoire 20, en particulier à chaque type de composant mémoire 50 parmi les types de composants mémoire définis ci-dessus. Le circuit électronique 10 initialise ensuite lors de l’étape 220 la valeur de l’indice n associé au modèle courant, par exemple à la valeur 0. L’homme du métier comprendra bien entendu que cette étape 220 d’initialisation de l’indice n est alternativement effectuée avant l’étape d’initialisation 210, ou encore avant l’étape d’initialisation 200. Après ces étapes d’initialisation 200, 210, 220, le circuit électronique 10, en particulier son dispositif de commande 30, effectue pour chaque rangée R n respective de cellules mémoire 20, et une rangée après l’autre de manière itérative, une succession d’opérations correspondant aux étapes 230 à 280 qui vont être décrites ci-après. Lors de l’étape 230, le circuit électronique 10 commande, via son dispositif de commande 30, les cellules mémoire 20 de la rangée d’indice n, également notée R n , afin de calculer la ou les valeurs de sortie associées à la ou aux valeurs d’entrée d’un lot de B couple(s) de valeurs d’entrée et de sortie parmi le groupe global de données d’apprentissage, c’est-à-dire parmi le groupe de D couples de valeurs d’apprentissage d’entrée et de sortie, B et D étant des nombres entiers, et B ≤ D. La commande des cellules mémoire 20 de la rangée d’indice n est de préférence effectuée en appliquant les tensions de commande respectives à toutes les colonnes en parallèle, et les courants, correspondant au produit de la tension de commande par la conductance de la cellule mémoire 20 correspondante, s'additionnent le long de la rangée d’indice n selon la loi de Kirchhoff, pour à la fin de la rangée d’indice n un courant correspondant alors au produit scalaire du vecteur V et du vecteur G. En variante, la commande des cellules mémoire 20 de la rangée d’indice n est effectuée de manière séquentielle, une cellule mémoire 20 après l’autre. Lors de cette étape de commande 230, les cellules mémoire 20 de la rangée R n respective sont alors commandées, afin de multiplier la valeur d’entrée par chaque poids synaptique associé au neurone correspondant à la matrice 22 pour laquelle la rangée R n est commandée. Ces différents produits de valeur d’entrée et de poids synaptique sont alors sommés via la première ligne 26 correspondante, afin d’obtenir la somme pondérée de valeurs d’entrée, puis la fonction d’activation f est appliquée à cette somme pondérée pour délivrer la valeur de sortie, comme représenté sur la portion de la associée à la phase d’apprentissage 100. De préférence, pour les neurones de la dernière couche du réseau 15, une fonction de signe est mise en œuvre après l’application de la fonction d’activation f à la somme pondérée, ou encore directement à la somme pondérée sans application préalable de la fonction d’activation f. Dans l’exemple de la , les valeurs d’entrée correspondent au vecteur V, et sont, selon leur signe, encodées sous forme des valeurs respectives de tension -V[0], V[0], -V[1], V[1], …, -V[M-1], V[M-1]. Dans cet exemple de la , les poids synaptiques correspondent au vecteur G, et la somme pondérée de valeurs d’entrée correspond alors au produit scalaire du vecteur V et du vecteur G. La valeur de sortie, notée A dans cet exemple, est obtenue par application de la fonction d’activation f à ce produit scalaire V.G. En complément, dans cet exemple de la , chaque poids synaptique est encodé via les premier et deuxième composants mémoire 50A, 50B, et le vecteur de poids synaptique G est alors égal à un premier vecteur de poids G + moins un deuxième vecteur de poids G - , le deuxième vecteur de poids G - permettant d’encoder les poids négatifs, et le premier vecteur de poids G + permettant d’encoder les poids positifs. L’homme du métier comprendra en outre que, dans cet exemple, M poids synaptiques sont associés aux neurones respectifs, le nombre de cellules mémoire 20 incluses dans la rangée R n étant égal à M. En outre, les valeurs de tension -V[0] à V[M-1] appliquées sur les deuxièmes lignes 28 pour les différentes cellules mémoire 20 de la rangée R n sont de préférence identiques d’une cellule mémoire 20 à l’autre, afin de multiplier la même valeur d’entrée par chaque poids synaptique respectif. Les valeurs de tension négative -V[0], -V[1], …, -V[M-1] sont par exemple obtenues en entrant la tension positive correspondante V[0], V[1], …, V[M-1] dans un amplificateur tampon inverseur de tension pour chaque colonne. A l’issue de l’étape de commande 130, le circuit électronique 10 détermine, lors de l’étape suivante 240 et via son dispositif de commande 30, la perte globale L pour ledit lot via la somme pondérée de D pertes unitaires J(Y i ), la perte globale L pour le modèle courant d’indice n, c’est-à-dire pour la rangée R n étant de préférence notée L n . Cette détermination de la perte globale L n est par exemple effectuée selon l’équation (1) précédente. Le circuit électronique 10 passe ensuite à l’étape suivante 250 pour programmer, via son dispositif de commande 30, les cellules mémoire 20 de la rangée R n respective avec les poids synaptiques modifiés qui ont été obtenus en calculant les gradients via l’algorithme de rétropropagation à partir de la perte globale L n , et ceci pour la pluralité de matrices 22. Cette programmation des cellules mémoire 20 avec les poids synaptiques modifiés est typiquement effectuée en appliquant une séquence de programmation à chaque cellule mémoire 20, la séquence de programmation étant connue en soi et dépendant de la technologie de chaque cellule mémoire 20, notamment du type de chaque composant mémoire 50. La programmation de cellules mémoire 20 de type OxRAM est par exemple décrite dans l’article « In situ learning using intrinsic memristor variability via Markov chain Monte Carlo sampling » de T. Dalgaty et al ou encore dans dans l'article « Digital Biologically Plausible Implementation of Binarized Neural Networks with Differential Hafnium Oxide Resistive Memory Arrays » de T. Hirtzlin et al. La programmation de cellules mémoire 20 de type PCRAM est par exemple décrite dans l’article « Equivalent-accuracy accelerated neural-network training using analogue memory » de S. Ambrogio et al, ou encore dans la demande EP 21305677.3 déposée le 25 mai 2021. Pour la programmation des cellules mémoire 20 de la rangée R n respective avec les poids synaptiques modifiés, le circuit électronique 10 et en particulier son dispositif de commande 30 sont configurés pour quantifier chaque poids synaptique modifié, notamment pour déterminer une plage de valeurs cible associée à ce poids synaptique, ceci en fonction de la technologie de chaque cellule mémoire 20, et en particulier du type de composant mémoire 50. Le circuit électronique 10 et son dispositif de commande 30 sont configurés alors pour appliquer la séquence de programmation à chaque cellule mémoire 20 tant que la valeur obtenue après programmation ne correspond pas au poids synaptique quantifié, typiquement tant que la valeur obtenue après programmation n’est pas incluse dans la plage de valeurs cible déterminée, associée à ce poids synaptique. En particulier, le circuit électronique 10 et son dispositif de commande 30 sont configurés pour appliquer la séquence de programmation à chaque cellule mémoire 20 tant que la conductance du composant mémoire 50 obtenue après programmation n’est pas incluse dans la plage cible de valeurs de conductance, déterminée pour ledit poids synaptique modifié. A l’issue de cette étape de programmation 250, le circuit électronique 10 passe à l’étape suivante 260 lors de laquelle il calcule, notamment via son dispositif de commande 30, la variable d’évaluation ∈ n du modèle courant, ceci via la somme des poids d’apprentissage W i,n associée aux classifications erronées, c’est-à-dire les poids d’apprentissage W i,n pour lesquels l’étiquette y i associée à la valeur de sortie calculée diffère de l’étiquette y* i associée à la valeur d’apprentissage de sortie respective. La variable d’évaluation ∈ n est par exemple calculée selon l’équation (2) précédente. Le circuit électronique 10 compare ensuite, lors de l’étape suivante 270, la valeur d’évaluation ∈ n , calculée lors de l’étape 260 précédente, avec le seuil prédéfini S, par exemple égal à 0,5 lorsque les poids d’apprentissage W i, n ont été initialisés de manière normalisée à la valeur 1/D. Lors de cette étape de comparaison 270, le circuit électronique 10 détermine si la variable d’évaluation ∈ n du modèle courant est inférieure ou égale au seuil prédéfini S, et passe alors à l’étape suivante 280. Sinon, si la variable d’évaluation ∈ n du modèle courant est supérieure au seuil prédéfini S, c’est-à-dire si le test effectué lors de l’étape 270 est négatif, le circuit électronique 10 retourne à l’étape 230 afin d’effectuer à nouveau les étapes 230 à 260, c’est-à-dire d’effectuer à nouveau les opérations i) à iv) telles que définies ci-dessus. Lors de l’étape 280, le circuit électronique 10 incrémente la valeur de l’indice n d’une unité, afin d’effectuer les opérations i) à iv) pour la rangée suivante R n+1 , c’est-à-dire pour le modèle suivant d’indice n+1. En complément facultatif, lors de cette étape 280, et préalablement à l’incrémentation de l’indice n d’une unité, c’est-à-dire préalablement au passage à la rangée suivante R n+1 associée au modèle suivant d’indice n+1, le circuit électronique 10 calcule le poids prédictif α n du modèle courant en fonction de la variable d’évaluation ∈ n calculée lors de l’étape 260. Le calcul du poids prédictif α n est par exemple effectué selon l’équation (3) précédente. En complément facultatif encore, lors de l’étape 280, à la suite du calcul du poids prédictif α n et préalablement à l’incrémentation de l’indice n d’une unité, le circuit électronique 10 détermine en outre les poids d’apprentissage W i , n+1 pour le modèle suivant d’indice n+1 et à partir du poids prédictif α n du modèle courant, lesdits poids d’apprentissage W i , n+1 étant augmentés pour les classifications erronées. La détermination de ces poids d’apprentissage W i , n+1 pour le modèle suivant est par exemple effectuée selon l’équation (4) précédente. Selon ce complément facultatif, pour les classifications non erronées, c’est-à-dire pour les classifications correctes, les poids d’apprentissage W i , n+1 pour le modèle suivant sont de préférence diminués par rapport aux poids d’apprentissage W i , n utilisés pour le modèle courant, comme par exemple selon l’équation (4) précédente. A l’issue de l’étape 280, le circuit électronique 10 teste lors de l’étape suivante 290 si l’indice n suite à son incrémentation est inférieur ou égal à N-1, le nombre de rangées R n étant égal à N et l’indice n étant compris entre 0 et N-1, et le cas échéant retourne à l’étape 230 afin d’effectuer les opérations i) à iv) pour le modèle suivant. Lors de l’étape de test 290, si la valeur incrémentée de l’indice n n’est pas inférieure ou égale à N-1, et est en particulier égale à N, alors le circuit électronique 10 achève la phase d’apprentissage 100, puisque l’ensemble des modèles du réseau de neurones 15 a fait l’objet dudit apprentissage, notamment des opérations i) à iv) telles que définies ci-dessus. Lors de la phase d’inférence 150, chaque donnée reçue par le réseau de neurones 15 est traitée via P modèle(s) de l’ensemble pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier avec P compris entre 1 et N. Après l’obtention de la ou des P donnée(s) intermédiaire(s), le circuit électronique 10 calcule une donnée résultante à partir de la ou des P donnée(s) intermédiaire(s). La donnée résultante est par exemple une somme pondérée de la ou des P donnée(s) intermédiaire(s). De préférence, le nombre P de modèle(s) utilisé(s) pour la phase d’inférence 150 est égal au nombre total N de modèles de l’ensemble préalablement entraîné lors de la phase d’apprentissage 100. En variante, le nombre P de modèle(s) utilisé(s) lors de la phase d’inférence 150 est strictement inférieur au nombre total N de modèles, et le ou les P modèles utilisés lors de la phase d’inférence 150 sont alors de préférence ceux ayant les poids prédictifs α n les plus élevés. En complément facultatif, lorsque la donnée résultante est une somme pondérée de la ou des P donnée(s) intermédiaire(s), la pondération est de préférence effectuée avec les poids prédictifs α n . Dans l’exemple de la , une valeur de sortie résultante, notée Y out , délivrée en sortie du réseau de neurones 15, est une somme pondérée des N valeurs intermédiaires, obtenues avec le neurone respectif de la couche de sortie, et vérifie par exemple l’équation suivante : où Y out représente la valeur de sortie résultante apte à être délivrée en sortie du neurone respectif de la couche de sortie du réseau de neurones 15, A n représente la valeur intermédiaire calculée en sortie dudit neurone pour le modèle respectif d’indice n, n étant un indice entier associé au modèle respectif et compris entre 0 et N-1, α n représente le poids prédictif du modèle respectif d’indice n, f représente la fonction d’activation dudit neurone respectif, V représente le vecteur de données d’entrée, et G n représente le vecteur de poids synaptiques associée audit neurone pour le modèle respectif d’indice n. De préférence, dans l’exemple de l’application de classification binaire, la fonction de signe est mise en œuvre après l’application de la fonction d’activation f à la somme pondérée, ou encore directement à la somme pondérée sans application préalable de la fonction d’activation f, et le poids prédictif α n est alors appliqué au résultat de la mise en œuvre de ladite fonction de signe. En outre, dans ce cas, la valeur de sortie résultante Y out correspond à l’une, ou respectivement l’autre, des 2 classes de la classification binaire selon que la valeur de sortie résultante Y out est positive, ou respectivement négative. Dans ce cas, il est alors inutile de diviser le numérateur de l’équation (5) par la somme des poids prédictifs α n . Aussi, dans l’exemple de l’application de classification binaire, la valeur de sortie résultante Y out vérifie par exemple l’équation suivante : où Y out représente la valeur de sortie résultante apte à être délivrée en sortie du neurone respectif de la couche de sortie du réseau de neurones 15, A n représente la valeur intermédiaire calculée en sortie dudit neurone pour le modèle respectif d’indice n, n étant un indice entier associé au modèle respectif et compris entre 0 et N-1, α n représente le poids prédictif du modèle respectif d’indice n, sgn représente la fonction signe, retournant +1 si le terme auquel elle est appliquée est positif, et -1 sinon, f représente la fonction d’activation dudit neurone respectif, V représente le vecteur de données d’entrée, et G n représente le vecteur de poids synaptiques associée audit neurone pour le modèle respectif d’indice n. Ainsi, le procédé d’apprentissage du réseau de neurones artificiels 15 et le circuit électronique 10 selon l’invention permettant d’améliorer l’apprentissage du réseau de neurones 15, afin d’offrir ensuite une mise en œuvre plus précise du réseau de neurones 15, notamment pour les applications précitées de classification ou d’identification d’objets. Cet apprentissage amélioré ressort notamment de simulations effectuées, dont les résultats sont représentés sur les figures 5 et 6. Les résultats représentés sur la correspondent à des simulations effectuées en utilisant une première variante de simulation de chaque cellule mémoire 20, en particulier de chaque composant mémoire 50, de préférence résistif ; et ceux représentés sur la correspondent à des simulations effectuées en utilisant une deuxième variante de simulation de chaque cellule mémoire 20, moins bruitée que la première variante, cette deuxième variante de simulation étant sans bruit. La montre un premier graphique 400 comportant une première courbe 410 représentant un taux de précision unitaire T n obtenu pour chaque modèle individuellement, une deuxième courbe 420 représentant le poids prédictif α n calculé pour chaque modèle, et un premier segment 430 en trait pointillé représentant un taux de précision T global obtenu au global pour le réseau de neurones 15. La montre aussi un deuxième graphique 450 comportant une troisième courbe 460 représentant l’évolution du taux de précision T global du réseau de neurones 15 en fonction du nombre N de modèles mis en œuvre pour ledit réseau de neurones 15. Chaque taux de précision correspond par exemple au ratio du nombre de classifications correctes (i.e. non-erronées) par rapport au nombre total de classifications effectuées, ceci pour un modèle respectif dans le cas du taux de précision unitaire T n , et pour le réseau de neurones 15 avec la pluralité de modèles mise en œuvre dans le cas du taux de précision global T global . La est une vue analogue à celle de la , selon la deuxième variante de simulation de chaque cellule mémoire 20, et montre de manière analogue un troisième graphique 500 comportant une quatrième courbe 510 représentant le taux de précision unitaire T n obtenu pour chaque modèle individuellement, une cinquième courbe 520 représentant le poids prédictif α n calculé pour chaque modèle, et un deuxième segment 530 en trait pointillé représentant le taux de précision T global obtenu au global pour le réseau de neurones 15. La montre aussi un quatrième graphique 550 comportant une sixième courbe 560 représentant l’évolution du taux de précision T global du réseau de neurones 15 en fonction du nombre N de modèles mis en œuvre pour ledit réseau de neurones 15, et selon la deuxième variante de simulation de chaque cellule mémoire 20. Les figures 5 et 6 montrent alors que, quelle que soit la variante de simulation de chaque cellule mémoire 20 parmi les première et deuxième variantes de simulation, le taux de précision T global obtenu au global pour le réseau de neurones 15 est à chaque fois proche de 90% (ou 0,9), celui-ci étant de 92 % (ou 0,92) selon la première variante de simulation et de 89%(ou 0,89) selon la deuxième variante de simulation. Le taux de précision T global ainsi obtenu pour le réseau de neurones 15 avec le procédé d’apprentissage et le circuit électronique 10 selon l’invention est alors bien meilleur que les taux de précision unitaires T n obtenus pour chaque modèle individuellement, ceux-ci étant d’environ 55,7 % (i.e. environ 0,557) en moyenne, avec un écart-type de 13,6 % (i.e. 0,136). En effet, le procédé d’apprentissage selon l’invention permet, via le circuit électronique 10 comportant l’arrangement de cellules mémoire 20 où chaque rangée R n de cellules mémoire 20 est associée à un modèle respectif, d’effectuer l’apprentissage de plusieurs modèles du même réseau de neurones 15, de manière itérative pour un modèle après l’autre, à savoir pour une rangée après l’autre, en passant à la rangée suivante R n+1 associée au modèle suivant seulement si la variable d’évaluation du modèle courant ∈ n est inférieure ou égale au seuil prédéfini S, ce qui permet d’avoir une précision minimale pour chaque modèle à l’issue de son apprentissage. Cela permet aussi de programmer chaque cellule mémoire 20 avec beaucoup moins d'exigences en matière de précision qu’avec les procédés d’apprentissage de l’état de la technique. Dans l'article « Fully hardware-implemented memristor convolutional neural network » de P. Yao et al, il est par exemple nécessaire d’effectuer jusqu’à 100 opérations de programmation en boucle fermée pour que la valeur de conductance programmée soit dans une plage ou fenêtre souhaitée de valeurs, alors qu’avec le procédé selon l’invention seules quelques opérations de programmation, par exemple 3, 4 ou 5 au maximum, sont suffisantes pour que la valeur de conductance programmée soit dans la plage souhaitée pour obtenir ensuite la précision globale nécessaire. Lors de la phase d’inférence 150 du réseau de neurones 15, chaque donnée reçue en entrée du réseau de neurones 15 est alors traitée via plusieurs modèles de l’ensemble pour obtenir plusieurs données intermédiaires, chacune en sortie d’un modèle respectif, et une donnée résultante, destinée à être délivrée en sortie du réseau de neurones 15, est alors calculée à partir de ces données intermédiaires. Le traitement de la donnée reçue en entrée via plusieurs modèles de l’ensemble est par exemple effectué de manière séquentielle, c’est-à-dire une rangée après l’autre. Dans l’exemple de la , un seul vecteur V de tensions d’activation est applicable aux colonnes de la matrice 24 à un instant donné. En variante, dans le cas où les deuxièmes lignes 28 sont distinctes d’une rangée à l’autre de la matrice 24, le traitement de la donnée reçue en entrée via plusieurs modèles de l’ensemble est effectué en parallèle pour toutes les rangées à la fois., c’est-à-dire une rangée après l’autre. La précision du traitement pour cette donnée, telle que la précision de la classification ou de l’identification, est alors meilleure de par la prise en compte combinée de cette pluralité de données intermédiaires, plutôt qu’un traitement qui serait effectué sur la base d’une unique donnée intermédiaire, correspondant à un unique modèle, comme dans l’état de la technique. Les figures 5 et 6 montrent en outre un résultat un peu meilleur pour la première variante de simulation avec un taux de précision global T global de 92%, que pour la deuxième variante de simulation avec un taux de précision global T global de 89%, la deuxième variante de simulation étant pourtant moins bruitée que la première variante de simulation. Ceci est probablement dû au caractère aléatoire de la mise à jour qui permet aux mises à jour des paramètres de faire des sauts entre les valeurs de poids discrétisées. En imaginant une mémoire déterministe, le gradient appliqué à la cellule mémoire 20 devrait être plus grand que la précision (la différence entre les états discrétisés) pour que la valeur change. Le caractère aléatoire de la cellule mémoire 20 facilite les sauts entre les valeurs de poids synaptiques qui sont différentes de l'itération précédente, de sorte que le modèle est en quelque sorte mieux à même d'explorer l'espace du modèle et de descendre dans un minimum quelque part. La première variante de simulation, plus bruitée, présente alors un caractère plus aléatoire que la deuxième variante de simulation, ce qui offre de meilleurs résultats. Procédé d’apprentissage d’un ensemble de modèles d’un réseau de neurones artificiels (15), chaque neurone artificiel étant apte à effectuer une somme pondérée de valeur(s) d’entrée, puis à appliquer une fonction d’activation (f) à la somme pondérée pour délivrer une valeur de sortie (A, A i , Y i ), chaque valeur d’entrée étant reçue de la part d’un élément respectif connecté en entrée dudit neurone et multipliée par un poids synaptique associé à la connexion entre ledit neurone et l’élément respectif, le procédé étant mis en œuvre à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie, D étant un nombre entier supérieur à 1 ; et par un circuit électronique (10) comprenant un arrangement de cellules mémoire (20) agencées sous forme d’une pluralité de matrices (22), chaque matrice (22) de cellules mémoire (20) étant associée à un neurone artificiel respectif, où chaque cellule mémoire (20) est associée à un poids synaptique respectif dudit neurone, chaque rangée (R n ) de cellules mémoire (20) étant associée à un modèle respectif, le procédé étant caractérisé en ce qu’il comprend les étapes suivantes : - initialiser (200), pour chaque rangée (R n ) respective de cellules mémoire (20), D poids d’apprentissage (W i, n ) à une même valeur initiale, chacun étant associé à une valeur d’apprentissage d’entrée respective, - initialiser (210) l’arrangement de cellules mémoire (20) en appliquant une séquence de réinitialisation à chaque cellule mémoire (20) ; - effectuer les opérations suivantes pour chaque rangée (R n ) respective de cellules mémoire (20), et une rangée après l’autre de manière itérative : + i) pour chaque valeur d’apprentissage d’entrée d’un lot de B couples de valeurs d’entrée et de sortie parmi ledit groupe de D couples, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, commander (230) les cellules mémoire (20) de la rangée (R n ) respective pour la pluralité de matrices (22), afin de calculer une valeur de sortie (Y i ) correspondant à la valeur d’apprentissage d’entrée respective, + ii) déterminer (240) une perte globale (L) pour le lot via une somme pondérée de B pertes unitaires (J(Y i )), une perte unitaire (J(Y i )) étant obtenue pour chaque valeur d’apprentissage d’entrée respective en appliquant une fonction de perte (J) à la valeur de sortie (Y i ) calculée par rapport à la valeur d’apprentissage de sortie respective, chaque perte unitaire (J(Y i )) étant multipliée par le poids d’apprentissage (W i,n ) associé à la valeur d’apprentissage d’entrée respective, + iii) programmer (250) les cellules mémoire (20) de la rangée (R n ) respective pour la pluralité de matrices (22) avec des poids synaptiques modifiés, obtenus en calculant des gradients via un algorithme de rétropropagation à partir de la perte globale (L), + iv) calculer (260) une variable d’évaluation (∈ n ) du modèle courant via une somme des poids d’apprentissage (W i,n ) pour des classifications erronées, chaque classification erronée correspondant à une étiquette (y i ) associée à la valeur de sortie (Y i ) calculée distincte d’une étiquette (y* i ) associée à la valeur d’apprentissage de sortie (Y* i ) respective, + si la variable d’évaluation (∈ n ) du modèle courant est inférieure ou égale à un seuil prédéfini (S), passer à la rangée suivante (R n+1 ) associée au modèle suivant, et + si la variable d’évaluation (∈ n ) du modèle courant est supérieure au seuil prédéfini (S), effectuer à nouveau les opérations i) à iv) précédentes. Procédé selon la revendication 1, dans lequel, si la variable d’évaluation (∈ n ) du modèle courant est inférieure ou égale à un seuil prédéfini (S), le procédé comporte en outre, préalablement au passage à la rangée suivante (R n+1 ) associée au modèle suivant : calculer (280) un poids prédictif (α n ) du modèle courant en fonction de ladite variable d’évaluation (∈ n ), et déterminer (280) des poids d’apprentissage (W i,n+1 ) pour le modèle suivant et à partir du poids prédictif (α n ) du modèle courant, lesdits poids d’apprentissage (W i,n+1 ) étant augmentés pour les classifications erronées ; le poids prédictif (α n ) du modèle courant vérifiant de préférence l’équation suivante : où α n représente le poids prédictif du modèle courant, n étant un indice entier associé au modèle courant, ln représente la fonction logarithme népérien, et ∈ n représente la variable d’évaluation du modèle courant ; chaque poids d’apprentissage (W i,n+1 ) pour le modèle suivant vérifiant de préférence l’équation suivante : où W i,n et W i,n +1 représentent les poids d’apprentissage pour le modèle courant, et respectivement pour le modèle suivant, i est un indice entier associé à la valeur d’apprentissage d’entrée, i étant compris entre 1 et D ; n et n+1 étant les indices entiers associés au modèle courant, et respectivement au modèle suivant, e représente la fonction exponentielle, y i et y* i représentent les étiquettes associées à la valeur de sortie (Y i ) calculée, et respectivement à la valeur d’apprentissage de sortie (Y* i ), et α n représente le poids prédictif du modèle courant. Procédé selon la revendication 1 ou 2, dans lequel chaque cellule mémoire (20) comporte au moins un composant mémoire (50) et au moins un interrupteur (52), chaque interrupteur (52) étant connecté à un composant mémoire (50) respectif ; chaque composant mémoire (50) étant de préférence un composant mémoire résistif ; chaque composant mémoire résistif étant de préférence encore choisi parmi le groupe consistant en : un composant OxRAM, un composant PCRAM, un composant CBRAM, un composant MRAM, un composant FLASH et un composant ferromagnétique ; chaque poids synaptique étant de préférence encore encodé via une conductance de l’au moins un composant mémoire (50). Procédé selon la revendication 3, dans lequel chaque cellule mémoire (20) comporte des premier (50A) et deuxième (50B) composants mémoire et des premier (52A) et deuxième (52B) interrupteurs, le premier interrupteur (52A) étant connecté au premier composant mémoire (50A) et le deuxième interrupteur (52B) étant connecté au deuxième composant mémoire (50B) ; chaque poids synaptique étant de préférence encodé via la conductance du premier composant mémoire (50A) si ledit poids est positif, et via la conductance du deuxième composant mémoire (50B) si ledit poids est négatif. Procédé selon l’une quelconque des revendications précédentes, dans lequel le nombre (N) de modèles correspondant au nombre (N) de rangées (R 0 , R 1 , …, R N-1 ) dans chaque matrice (24) de cellules mémoire (20) est supérieur à 50, de préférence supérieur à 100, de préférence encore supérieur à 150. Procédé de traitement de données, notamment de classification de données, le procédé étant mis en œuvre par un circuit électronique (10) implémentant un ensemble de modèles d’un réseau de neurones artificiels (15), le circuit électronique (10) comprenant un arrangement de cellules mémoire (20) agencées sous forme d’une pluralité de matrices (22), chaque matrice (22) de cellules mémoire (20) étant associée à un neurone artificiel respectif, où chaque cellule mémoire (20) est associée à un poids synaptique respectif dudit neurone, chaque rangée (R n ) de cellules mémoire (20) étant associée à un modèle respectif, le procédé comprenant : - une phase (100) d’apprentissage du réseau de neurones artificiels (15), lors de laquelle l’ensemble de modèles du réseau de neurones artificiels (15) est entraîné à partir d’un groupe de données d’apprentissage, et - une phase (150) d’inférence du réseau de neurones artificiels (15), lors de laquelle des données, reçues en entrée du circuit électronique (10), sont traitées, notamment classées, via le réseau de neurones artificiels (15), préalablement entraîné lors de la phase d’apprentissage (100), caractérisé en ce que la phase d’apprentissage est effectuée en mettant en œuvre un procédé d’apprentissage selon l’une quelconque des revendications précédentes. Procédé selon la revendication 6, dans lequel l’ensemble de modèles comporte N modèles, N étant un nombre entier, N>1 ; et lors de la phase d’inférence (150), chaque donnée reçue est traitée en parallèle via P modèle(s) de l’ensemble, pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier, 1≤P≤N ; et une donnée résultante est calculée à partir de la ou des P donnée(s) intermédiaire(s). Procédé selon la revendication 7, dans lequel lors de la phase d’inférence (150), la donnée résultante est une somme pondérée de la ou des P donnée(s) intermédiaire(s). Circuit électronique (10) configuré pour mettre en œuvre un ensemble de modèles d’un réseau de neurones artificiels (15), chaque neurone artificiel étant apte à effectuer une somme pondérée de valeur(s) d’entrée, puis à appliquer une fonction d’activation (f) à la somme pondérée pour délivrer une valeur de sortie (Y i ), chaque valeur d’entrée étant reçue de la part d’un élément respectif connecté en entrée dudit neurone et multipliée par un poids synaptique associé à la connexion entre ledit neurone et l’élément respectif, le circuit électronique (10) comprenant : - un arrangement de cellules mémoire (20) agencées sous forme d’une pluralité de matrices (22), chaque matrice (22) de cellules mémoire (20) étant associée à un neurone artificiel respectif, où chaque cellule mémoire (20) est associée à un poids synaptique respectif dudit neurone, et - un dispositif électronique (30) de commande de l’arrangement de cellules mémoire (20), caractérisé en ce que chaque rangée (R n ) de cellules mémoire (20) est associée à un modèle respectif, et en ce que, pour un apprentissage de l’ensemble de modèles à partir d’un groupe de données d’apprentissage comportant D couples de valeurs d’entrée et de sortie, D étant un nombre entier supérieur à 1, le dispositif électronique de commande (30) est configuré, en commandant l’arrangement de cellules mémoire (20), pour : - initialiser, pour chaque rangée (R n ) respective de cellules mémoire (20), D poids d’apprentissage (W i, n ) à une même valeur initiale, chacun étant associé à une valeur d’apprentissage d’entrée respective, - initialiser l’arrangement de cellules mémoire (20) en appliquant une séquence de réinitialisation à chaque cellule mémoire (20) ; - effectuer les opérations suivantes pour chaque rangée (R n ) respective de cellules mémoire (20), et une rangée après l’autre de manière itérative : + i) pour chaque valeur d’apprentissage d’entrée d’un lot de B couples de valeurs d’entrée et de sortie parmi ledit groupe de D couples, B étant un nombre entier supérieur à 1, B étant inférieur ou égal à D, commander les cellules mémoire (20) de la rangée (R n ) respective pour la pluralité de matrices (22), afin de calculer une valeur de sortie (Y i ) correspondant à la valeur d’apprentissage d’entrée respective, + ii) déterminer une perte globale (L) pour le lot via une somme pondérée de B pertes unitaires (J(Y i )), une perte unitaire (J(Y i )) étant obtenue pour chaque valeur d’apprentissage d’entrée respective en appliquant une fonction de perte (J) à la valeur de sortie (Y i ) calculée par rapport à la valeur d’apprentissage de sortie (Y* i ) respective, chaque perte unitaire (J(Y i )) étant multipliée par le poids d’apprentissage (W i,n ) associé à la valeur d’apprentissage d’entrée respective, + iii) programmer les cellules mémoire (20) de la rangée (R n ) respective pour la pluralité de matrices (22) avec des poids synaptiques modifiés, obtenus en calculant des gradients via un algorithme de rétropropagation à partir de la perte globale (L), + iv) calculer une variable d’évaluation (∈ n ) du modèle courant via une somme des poids d’apprentissage (W i,n ) pour des classifications erronées, chaque classification erronée correspondant à une étiquette (y i ) associée à la valeur de sortie calculée (Y i ) distincte d’une étiquette (y* i ) associée à la valeur d’apprentissage de sortie (Y* i ) respective, + si la variable d’évaluation (∈ n ) du modèle courant est inférieure ou égale à un seuil prédéfini (S), passer à la rangée suivante (R n+1 ) associée au modèle suivant, et + si la variable d’évaluation (∈ n ) du modèle courant est supérieure au seuil prédéfini (S), effectuer à nouveau les opérations i) à iv) précédentes. Circuit électronique (10) selon la revendication 9, dans lequel l’ensemble de modèles comporte N modèles, N étant un nombre entier supérieur à 1 ; et pour une inférence du réseau de neurones artificiels (15), le dispositif électronique de commande (30) est configuré, en commandant l’arrangement de cellules mémoire (20) et pour chaque donnée reçue en entrée, pour : - traiter la donnée via P modèle(s) de l’ensemble, pour obtenir P donnée(s) intermédiaire(s), chacune en sortie d’un modèle respectif, P étant un nombre entier inférieur ou égal à N, et P ≥ 1 ; et - calculer une donnée résultante à partir de la ou des P donnée(s) intermédiaire(s).