FR 3156954 A1 20250620 FR 2314326 A 20231215 Procédé d’apprentissage avec entropie différentielle des poids synaptiques d’un réseau de neurones, procédé de traitement, programme d’ordinateur, calculateur et système de traitement associés L’invention concerne un procédé d’apprentissage de poids synaptiques d’un réseau de neurones artificiels (RN) configuré pour traiter, notamment pour classifier, des données, le réseau de neurones artificiels étant configuré pour être mis en œuvre par un calculateur électronique (20) connecté à un capteur (15), pour le traitement d’au moins un objet issu du capteur (15). Le procédé est mis en œuvre par ordinateur et comprend la détermination des poids du réseau de neurones à partir de données d’apprentissage, chaque poids déterminé étant une valeur quantifiée appartenant à un ensemble prédéfini de valeurs quantifiées ; les poids étant déterminés par minimisation d’une fonction de coût, la fonction de coût dépendant d’un terme d’erreur correspondant à une erreur de prédiction et d’un terme entropique. Le terme entropique dépend d’une entropie différentielle totale des poids quantifiés. Figure pour l'abrégé : Figure 1 Procédé d’apprentissage avec entropie différentielle des poids synaptiques d’un réseau de neurones, procédé de traitement, programme d’ordinateur, calculateur et système de traitement associés La présente invention concerne un procédé d’apprentissage de poids synaptiques d’au moins une couche d’un réseau de neurones artificiels, chaque neurone artificiel d’une couche respective é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, l’élément respectif étant une variable d’entrée du réseau de neurones ou un neurone d’une couche précédente du réseau de neurones. Le procédé est mis en œuvre par ordinateur, et comprend l’apprentissage des poids du réseau de neurones à partir de données d’apprentissage, chaque poids issu dudit apprentissage étant une valeur quantifiée appartenant à un ensemble de valeurs quantifiées. 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 calculateur électronique implémentant un tel réseau de neurones artificiels. L’invention a aussi pour objet un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un tel procédé d’apprentissage. L’invention a également pour objet un calculateur électronique de traitement de données, notamment de classification de données, via la mise en œuvre d’un tel réseau de neurones artificiels ; ainsi qu’un système électronique de traitement d’objet(s), comprenant un capteur et un tel calculateur électronique connecté au capteur, le calculateur étant configuré pour traiter chaque objet issu du capteur. L’invention concerne le domaine de l’apprentissage de réseaux de neurones artificiels, aussi notés ANN (de l’anglais Artificial Neural Networks ), également appelés réseaux neuronaux. Les réseaux de neurones artificiels sont par exemple des réseaux de neurones convolutifs, aussi notés CNN (de l’anglais Convolutional Neural Networks ), des réseaux de neurones récurrents, tels que des réseaux récurrents à mémoire court-terme et long terme, également notés LTSM (de l’anglais Long Short- Term Memory ), ou encore des réseaux de neurones transformeurs (de l’anglais Transformers ), utilisés typiquement dans le domaine du traitement automatique des langues (TAL). L’invention concerne aussi le domaine de calculateurs intégrés électroniques, également appelé puces, de mise en œuvre de tels réseaux de neurones, ces calculateurs électroniques permettant d’utiliser le réseau de neurones lors d’une phase d’inférence, après une phase préalable d’apprentissage du réseau de neurones à partir de données d’apprentissage, la phase d’apprentissage étant typiquement mise en œuvre par ordinateur. Un réseau de neurones est généralement composé d'une succession de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente. Plus précisément, chaque couche comprend des neurones et des synapses prenant leurs entrées sur les sorties des neurones de la couche précédente. Chaque couche est reliée à la suivante par une pluralité de synapses. Un poids synaptique est associé à chaque synapse. C’est un nombre ou encore une distribution, qui prend des valeurs positives comme négatives. Dans le cas d’une couche dense, l’entrée d’un neurone est la somme pondérée des sorties des neurones de la couche précédente, la pondération étant faite par les poids synaptiques et suivie d’une activation via une fonction d’activation. De tels réseaux de neurones consomment d’importantes ressources mémoire et calculatoire pour leur stockage et leur inférence. Les ressources nécessaires peuvent être trop importantes pour permettre leur utilisation dans des systèmes embarqués. Une technique connue permettant une diminution d’une empreinte mémoire lors de la phase d’apprentissage est basée sur la quantification du réseau. La quantification consiste à réduire le nombre de bits utilisés pour coder chaque poids synaptique, de sorte que l'empreinte mémoire totale soit réduite du même facteur. Cette quantification est définie par une fonction de quantification des poids synaptiques. L’article « Entropy-Constrained Training of Deep Neural Networks » de S. Wiedemann et al décrit un procédé d’apprentissage du type précité, avec une quantification de précision fixe des poids synaptiques. A cet effet, le procédé d’apprentissage comprend une minimisation d’une entropie du réseau qui permet de mesurer notamment la complexité explicite du réseau en termes d’empreinte mémoire en bits, l’entropie étant mesurée par rapport à une probabilité empirique de la distribution des poids synaptiques. Afin de minimiser l’entropie des poids du réseau, il est nécessaire de dériver un gradient de l’entropie par rapport aux paramètres du réseau. S. Wiedemann et al proposent alors d’utiliser une relaxation continue de l’entropie afin de la rendre différentiable. Toutefois, un tel procédé ne donne pas entière satisfaction. Le but de l’invention est alors de proposer un procédé d’apprentissage d’un réseau de neurones permettant ensuite de réduire l’empreinte mémoire du réseau sans perte d’efficacité de traitement des données et de faciliter l’inférence dudit réseau de neurones par un calculateur. A cet effet, l’invention a pour objet un procédé d’apprentissage de poids synaptiques d’au moins une couche d’un réseau de neurones artificiels configuré pour traiter, notamment pour classifier, des données, le réseau de neurones artificiels étant configuré pour être mis en œuvre par un calculateur électronique connecté à un capteur, pour le traitement d’au moins un objet issu du capteur, chaque neurone artificiel d’une couche respective é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, l’élément respectif étant une variable d’entrée du réseau de neurones ou un neurone d’une couche précédente du réseau de neurones, le procédé étant mis en œuvre par ordinateur et comprenant l’étape suivante : - détermination des poids du réseau de neurones à partir de données d’apprentissage, chaque poids déterminé étant une valeur quantifiée appartenant à un ensemble prédéfini de valeurs quantifiées ; les poids étant déterminés par minimisation d’une fonction de coût, la fonction de coût dépendant d’un terme d’erreur correspondant à une erreur de prédiction et d’un terme entropique, le terme entropique dépendant d’une entropie différentielle totale des poids quantifiés. Avec le procédé de l’état de la technique, la fonction obtenue après par relaxation continue est inutilisable en pratique, le procédé de l’état de la technique effectue alors des approximations bayésiennes pour obtenir la dérivée de la fonction obtenue. Ces approximations introduisent un aléa sur la quantification des poids. Avec le procédé selon l’invention, la fonction de coût comporte aussi un terme entropique qui dépend de l’entropie différentielle totale des poids quantifiés. Cela permet alors de calculer plus simplement et plus efficacement le gradient de la fonction de coût. L’entropie différentielle totale forme une bonne approximation différentiable de l’entropie discrète. L’entropie différentielle évite alors d’introduire un aléa lié à une approximation bayésienne tout en réduisant l’empreinte mémoire du réseau. Le procédé d’apprentissage selon l’invention permet alors déterminer les poids du réseaux de neurones en prenant en compte l’entropie des poids quantifiés, l’entropie étant par exemple mesurée par rapport à une probabilité empirique de la distribution des poids synaptiques. De plus, minimiser l’entropie permet d’augmenter un potentiel de compression des poids lors d’une étape ultérieure optionnelle de compression, ce qui permet d’avoir un levier additionnel de réduction de l’empreinte mémoire du réseau. 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 : - le réseau de neurones comprend des groupes de poids du réseau, chaque groupe de poids comprenant au moins un poids quantifié appartenant à l’ensemble, et l’entropie différentielle totale est une somme de produits pour lesdits groupes, chaque produit étant un produit d’un cardinal d’un groupe respectif et de l’entropie différentielle) dudit groupe ; - la fonction de coût est la somme du terme d’erreur et du terme entropique ; le terme entropique étant de préférence le produit d’un facteur multiplicatif et d’une fonction d’objectif entropique, la fonction d’objectif entropique dépendant de l’entropie différentielle totale des poids quantifiés ; la fonction de coût vérifiant de préférence encore l’équation : où L représente la fonction de coût, L cls représente le terme d’erreur, κ représente le facteur multiplicatif, et L entropy représente la fonction d’objectif entropique ; - la fonction d’objectif entropique dépend en outre d’un objectif entropique total prédéfini ; - la fonction d’objectif entropique dépend d’une différence entre l’entropie différentielle totale et l’objectif entropique total ; - la minimisation de la fonction de coût comprend le calcul d’un gradient de la fonction de coût ; - à chaque groupe de poids est associé un paramètre de précision égal au nombre de bits utilisés pour le codage de l’au moins un poids du groupe, et lorsque chaque paramètre de précision est un entier et lorsque la distribution des poids quantifiés de chaque groupe suit une loi normale arrondie, la dérivée - par rapport aux poids d’un groupe respectif - de la fonction d’objectif entropique vérifie l’équation suivante : où L entropy représente la fonction d’objectif entropique, W représente le groupe respectif de poids, V(W) représente la variance de la loi normale, E(W) représente l’espérance de la loi normale, représente l’objectif entropique total, et n est le nombre de poids quantifiés du groupe W ; - à chaque groupe de poids est associé un paramètre de précision égal au nombre de bits utilisés pour le codage de l’au moins un poids du groupe, et lorsque chaque paramètre de précision est un réel positif, la fonction d’objectif entropique dépendant des paramètres de précision, la dérivée - par rapport au paramètre de précision d’un groupe respectif - de la fonction d’objectif entropique vérifie l’équation : où L entropy représente la fonction d’objectif entropique, λ W représente le paramètre de précision du groupe respectif, W représente le groupe respectif de poids, H W représente l’entropie différentielle du groupe W, représente l’objectif entropique totale, représente la partie entière inférieure, et représente la partie entière supérieure ; - l’ensemble prédéfini de valeurs quantifiées inclut un nombre impair de valeurs ; - l’ensemble inclut la valeur nulle ; les valeurs quantifiées positives de l’ensemble étant de préférence symétriques, des valeurs quantifiées négatives de l’ensemble par rapport à la valeur nulle ; - le procédé comprend en outre, après l’étape de détermination des poids, une étape de compression des poids déterminés ; - la compression est réalisée via un codage entropique ; et - le codage entropique est un codage à systèmes numériques asymétriques ; le codage entropique étant de préférence un codage à systèmes numériques asymétriques en tableau. 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 calculateur électronique implémentant un réseau de neurones artificiels, le procédé comprenant : - une phase d’apprentissage du réseau de neurones artificiels, et - une phase d’inférence du réseau de neurones artificiels, lors de laquelle des données, reçues en entrée du calculateur é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. L’invention concerne également un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé d’apprentissage tel que défini ci-dessus. L’invention a également pour objet un calculateur électronique de traitement de données, notamment de classification de données, via la mise en œuvre d’un réseau de neurones artificiels, le calculateur électronique étant destiné à être connecté à un capteur, pour le traitement d’au moins un objet issu du capteur, chaque neurone artificiel d’une couche respective du réseau de neurones é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, l’élément respectif étant une variable d’entrée du réseau de neurones ou un neurone d’une couche précédente du réseau de neurones, le calculateur comprenant : - un module d’inférence configuré pour inférer le réseau de neurones artificiels préalablement entraîné, pour le traitement, notamment la classification, de données reçues en entrée du calculateur électronique, le réseau de neurones artificiels préalablement entraîné lors d’une phase d’apprentissage étant issu d’un programme d’ordinateur tel que défini ci-dessus. Suivant d’autres aspects avantageux de l’invention, le calculateur comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le module d’inférence est configuré pour effectuer la somme pondérée de valeur(s) d’entrée, puis pour appliquer une fonction d’activation à la somme pondérée ; - lors de la phase d’apprentissage les poids du réseau de neurones artificiels sont compressés, et le module d’inférence comprend en outre une unité de décompression configurée pour décompresser lesdits poids compressés ; la compression étant de préférence effectuée via un codage entropique, et l’unité de décompression effectuant alors un décodage entropique des poids compressés ; et - le codage entropique est un codage à systèmes numériques asymétriques en tableau, et l’unité de décompression comprend une table de décodage du codage à systèmes numériques asymétriques en tableau. L’invention a également pour objet un système électronique de traitement d’objet(s), comprenant un capteur et un calculateur électronique connecté au capteur, le calculateur étant configuré pour traiter au moins un objet issu du capteur, le calculateur étant tel que défini ci-dessus. L’invention apparaîtra 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 dans lesquels : FIG. 1 la FIG. 1 est une représentation schématique d’un système électronique de traitement d’objets selon l’invention, comprenant un capteur, et un calculateur électronique connecté au capteur, le calculateur étant configuré pour traiter, via la mise en œuvre d’un réseau de neurones artificiels, au moins un objet issu du capteur ; FIG. 2 la FIG. 2 est une représentation schématique d’un ensemble de valeurs quantifiées sur 4 bits, utilisé pour l’apprentissage des poids du réseau de neurones selon l’invention ; FIG. 3 la FIG. 3 est une représentation schématique d’une unité de décompression incluse dans le calculateur de la FIG. 1 , l’unité de décompression configuré pour décompresser des poids quantifiés compressés par codage à systèmes numériques asymétriques en tableau (tANS) ; FIG. 4 la FIG. 4 est un organigramme d’un procédé, selon l’invention, de traitement de données, notamment de classification de données, le procédé étant mis en œuvre par le calculateur électronique de la FIG. 1 , implémentant le réseau de neurones artificiels ; FIG. 5 la FIG. 5 est une représentation de la distribution des poids d’une couche de deux réseaux distincts de neurones, à savoir un premier réseau de neurones entrainé lors d’un apprentissage sans terme entropique et un deuxième réseau de neurones entrainé lors d’un apprentissage avec un terme entropique selon l’invention ; FIG. 6 la FIG. 6 est une vue de plusieurs courbes obtenues avec un réseau de neurone entrainé selon l’invention pour différentes précisions de quantifications, chaque courbe représentant l’évolution d’une performance du réseau en fonction de l’entropie des poids du réseau pour une précision respective de quantification ; FIG. 7 la FIG. 7 est un histogramme représentant la répartition du nombre de poids quantifiés distincts pour chaque couche d’un réseau de neurones ; et FIG. 8 la FIG. 8 est une représentation de la répartition de l’empreinte mémoire par couche pour deux réseaux distincts, à savoir pour un réseau de neurones non compressé d’une part et pour un réseau de neurones compressé par codage à systèmes numériques asymétriques (ANS) d’autre part. Sur la FIG. 1 , un système électronique 10 de traitement d’objet(s) est configuré pour traiter un ou plusieurs objets, non représentés, et comprend un capteur 15 et un calculateur électronique 20 connecté au capteur 15, le calculateur 20 étant configuré pour traiter au moins un objet issu du capteur 15. Le système électronique de traitement 10 est par exemple un système électronique de détection d’objet(s), le capteur 15 étant alors un détecteur d’objet(s) et le calculateur 20 étant configuré pour traiter au moins un objet détecté par le détecteur d’objet(s). Le système électronique de traitement 10 forme par exemple un détecteur de visages apte à reconnaitre les visages de personnes préalablement identifiées et/ou à détecter des visages de personnes inconnues, c’est-à-dire des visages de personnes qui n’ont pas été préalablement identifiées. Le calculateur 20 permet alors d’apprendre les identités des personnes détectées, et aussi d’identifier des personnes inconnues. Le capteur 15 est connu en soi. Le capteur 15 est par exemple un détecteur d’objet(s) configuré pour détecter un ou plusieurs objets, ou encore un capteur d’image(s) configuré pour prendre une ou plusieurs images d’une scène, et les transmettre au calculateur 20. En variante, le capteur 15 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 calculateur 20. Le calculateur 20 est configuré pour traiter un ensemble de donnée(s), l’ensemble de donnée(s) correspondant typiquement à un ou plusieurs signaux captés par le capteur 15. Le calculateur 20 est alors typiquement configuré pour interpréter une scène captée par le capteur 15, c’est-à-dire pour identifier et/ou pour reconnaitre un type d’un ou plusieurs éléments - tels que personnes ou objets physiques - présents dans la scène captée et correspondants au signal ou aux signaux captés par le capteur 15. Le calculateur 20 est configuré pour effectuer un traitement de données, notamment une classification de données, via la mise en œuvre d’un réseau RN de neurones artificiels, celui-ci comportant typiquement plusieurs couches de traitement successives CTi, où i est un indice entier supérieur ou égal à 1. Dans l’exemple de la FIG. 1 , l’indice i est par exemple égal à 1, 2 et respectivement 3, avec des première CT1, deuxième CT2 et troisième CT3 couches de traitement représentées sur cette FIG. 1 . Chaque couche de traitement respective CTi comporte, comme connu en soi, un ou plusieurs neurones artificiels 22, également appelés neurones formels. Les couches de traitement CTi sont typiquement agencées de manière successive au sein du réseau de neurones RN, et les neurones artificiels 22 d’une couche de traitement donnée sont typiquement connectés à leur entrée aux neurones artificiels 22 de la couche précédente, et en sortie aux neurones artificiels 22 de la couche suivante. Les neurones artificiels 22 de la première couche, telle que la première couche de traitement CT1, sont connectés en entrée aux variables d’entrées, non représentées, du réseau de neurones RN, et les neurones artificiels 22 de la dernière couche de traitement, telle que la troisième couche de traitement CT3, sont connectés en sortie aux variables de sortie, non représentées, du réseau de neurones RN. Dans l’exemple de la FIG. 1 , la deuxième couche de traitement CT2 forme alors une couche intermédiaire dont les neurones artificiels 22 sont connectés en entrée aux neurones artificiels 22 de la première couche de traitement CT1, et en sortie aux neurones artificiels 22 de la troisième couche de traitement CT3. Comme connu en soi, à chaque neurone artificiel 22 est associée une opération, c’est-à-dire un type de traitement, à effectuer par ledit neurone artificiel 22 au sein de la couche de traitement correspondante. Chaque neurone artificiel 22 est typiquement 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 22 et multiplié par un poids synaptique associé à la connexion entre ledit neurone 22 et l’élément respectif. L’élément respectif connecté en entrée dudit neurone 22 est une variable d’entrée du réseau de neurones RN lorsque ledit neurone appartient à une première couche, également appelée couche d’entrée, dudit réseau de neurones RN ; ou bien est un neurone d’une couche précédente du réseau de neurones RN 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 RN. Comme connu en soi, la fonction d’activation, é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 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 réseau de neurones RN est par exemple un réseau de neurones convolutifs, et les couches de traitement CT1, CT2, CT3 sont alors typiquement chacune choisies parmi le groupe consistant en : une couche de convolution, une couche de normalisation de batch, une couche de mise en commun, une couche de correction et une couche entièrement connectée (de l’anglais fully connected ). Selon un premier aspect de l’invention, dans l’exemple de la FIG. 1 , un module d’apprentissage 25, externe au calculateur 20, est configuré pour effectuer un apprentissage, également appelé entrainement, du réseau de neurones RN. Dans l’exemple de la FIG. 1 , le calculateur 20 comprend alors seulement un module d’inférence 30 configuré pour inférer le réseau de neurones RN préalablement entraîné, pour le traitement, notamment la classification, de données reçues en entrée du calculateur 20. Le calculateur 20 est alors configuré pour utiliser le réseau de neurones RN, préalablement entraîné, afin de calculer de nouvelles valeurs de sortie à partir de nouvelles valeurs d’entrée. En d’autres termes, il est configuré pour effectuer seulement l’inférence du réseau de neurones RN. Le calculateur 20 est de préférence un calculateur embarqué, et est typiquement réalisé sous forme d’un processeur ou d’un microcontrôleur. Dans l’exemple de la FIG. 1 , le module d’apprentissage 25 est réalisé sous forme d’un logiciel, c’est-à-dire sous forme d’un programme d’ordinateur. Il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple un médium apte à mémoriser des instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. Sur le support lisible est alors mémorisé un programme d’ordinateur comprenant des instructions logicielles. Dans l’exemple de la FIG. 1 , le module d’inférence 30 est réalisé sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gate Array ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Application Specific Integrated Circuit ). En variante, non représentée, le calculateur 20 comprend à la fois le module d’apprentissage 25 et le module d’inférence 30. Selon cette variante, le module d’apprentissage 25 et le module d’inférence 30 sont réalisés chacun sous forme d’un composant logique programmable, tel qu’un FPGA, ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC. Selon cette variante, le calculateur 20 est alors configuré pour effectuer à la fois l’apprentissage et l’inférence du réseau de neurones RN. Le module d’apprentissage 25 est configuré pour effectuer l’apprentissage du réseau de neurones RN, notamment des valeurs de poids synaptique - également appelés poids synaptiques selon une terminologie plus courte - d’au moins une couche CT1, CT2, CT3 du réseau de neurones RN à partir de données d’apprentissage, et de préférence de chaque couche CT1, CT2, CT3 dudit réseau de neurones RN. Par exemple, le module d’apprentissage 25 est configuré pour effectuer un algorithme de rétropropagation (de l’anglais back-propagation ) du gradient. Le module d’apprentissage 25 est en outre configuré pour effectuer la quantification desdits poids synaptiques par une fonction, dite quantificateur, chaque poids synaptique issu dudit apprentissage étant une valeur quantifiée appartenant à un ensemble EQ de valeurs quantifiées. Par exemple, le quantificateur est défini tel que la valeur quantifiée d’un poids w i,j , la valeur quantifiée étant notée vérifie l’équation suivante : [1] où w i,j est le j-ème poids de la i-ème couche de traitement CTi, est le j-ème poids quantifié de la i-ème couche de traitement CTi, et représente la valeur maximale parmi les valeurs absolues des poids synaptiques. Le quantificateur selon l’équation [1] est celui utilisé dans la méthode SAT, décrite dans l’article « Towards Efficient Training for Neural Network Quantization » de Q. Jin et al. Dans la suite de la description, sauf autre précision, on entend par « poids », une valeur de poids synaptique et par « poids quantifié », une valeur quantifiée de poids synaptique. Le réseau de neurones RN comprend une pluralité de groupes W i de poids quantifiés du réseau, chaque groupe W i comprenant au moins un poids quantifié appartenant à l’ensemble EQ. Un groupe W i est par exemple une couche CTi du réseau de neurones RN. Dans la suite de la description, la notation W correspond à un groupe quelconque W i . En d’autres termes, l’indice i n’est pas précisé quand la caractéristique décrite est applicable à chacun des groupes W i . Dans chaque groupe W, la répartition des poids quantifiés suit une variable aléatoire discrète de loi de probabilité empirique. A chaque groupe W de poids quantifiés est associé un paramètre de précision λ W égal au nombre de bits utilisés pour le codage de l’au moins un poids quantifié du groupe W respectif. Les données d’apprentissage comprennent un ensemble de données d'exemples utilisées pendant le processus d'apprentissage. Les données comprennent une pluralité d’entrées Xi, chaque entrée Xi étant associée à un label Yi, qui est par exemple un nombre binaire ou un réel. Une entrée Xi est par exemple un vecteur comprenant n valeurs correspondant à des caractéristiques connues. L’apprentissage a pour but de déterminer des poids synaptiques qui permettent de prédire au mieux la valeur des labels Yi à partir des valeurs d’entrées Xi correspondantes. A cet effet, le module d’apprentissage 25 est configuré pour déterminer les poids par minimisation d’une fonction de coût L. La fonction de coût L dépend d’un terme d’erreur L cls correspondant à une erreur de prédiction et d’un terme entropique. Le module d’apprentissage 25 est en outre configuré pour calculer le gradient de la fonction de coût L. Par exemple, la fonction de coût L est la somme du terme d’erreur L cls correspondant à une erreur de prédiction et du terme entropique. Le terme d’erreur L cls mesure l’écart entre des prédictions Y’i du réseau de neurones RN à partir des poids déterminés et des entrées Xi et la véritable valeur de labels Yi des données d’apprentissage. Le terme d’erreur L cls est par exemple l’entropie croisée entre les prédictions Y’i et les labels Yi. Le terme entropique dépend d’une entropie différentielle totale H tot des poids quantifiés. Le terme entropique est par exemple le produit d’un facteur multiplicatif κ et d’une fonction d’objectif entropique L entropy , la fonction d’objectif entropique L entropy dépendant de l’entropie différentielle totale H tot des poids quantifiés. La fonction de cout L vérifie alors typiquement l’équation suivante : [2] où L représente la fonction de coût, L cls représente le terme d’erreur, κ représente le facteur multiplicatif, et L entropy représente la fonction d’objectif entropique. Par exemple, le facteur κ prend une valeur fixe tout au long de l’entrainement, de préférence sensiblement égale à 0.1. En variante, le facteur κ prend une valeur progressive qui croit linéairement durant une première partie de l’entrainement jusqu’à une valeur seuil, puis garde la valeur seuil durant le reste de l’entrainement. La croissance linéaire est par exemple configurée pour avoir lieu pour les vingt premières itérations d’apprentissage, les itérations d’apprentissage étant également appelées époques (de l’anglais epoch ). La croissance linéaire est par exemple configurée pour avoir lieu pour les vingt premières époques de l’algorithme de rétropropagation. La fonction d’objectif entropique L entropy dépend de préférence en outre d’un objectif entropique total Ĥ prédéfini. En particulier, la fonction d’objectif entropique L entropy dépend d’une différence entre l’entropie différentielle totale H tot et l’objectif entropique total Ĥ. Selon un exemple de réalisation, les paramètres de précision λ W sont des entiers. L’entropie différentielle totale H tot est alors une somme de produits pour les groupes W, chaque produit étant un produit d’un cardinal |W| d’un groupe W respectif et de l’entropie différentielle H W dudit groupe. L’entropie différentielle totale H tot vérifie alors l’équation suivante : [3] où H tot est l’entropie différentielle totale des poids quantifiés, |W| est le cardinal du groupe W, i.e. le nombre de poids inclus dans le groupe W, H W est l’entropie différentielle du groupe W. Par exemple, la fonction d’objectif entropique L entropy vérifie l’équation : [4] où L entropy est la fonction d’objectif entropique, │W│est le cardinal du groupe W, H W est l’entropie différentielle du groupe W, et Ĥ est l’objectif entropique total. L’entropie différentielle H W étend le concept de l’entropie de Shannon aux lois de probabilité continues. L’entropie différentielle H W est par exemple l’entropie binaire différentielle des poids du groupe W. La loi de probabilité empirique de la variable aléatoire discrète des poids quantifiés pour chaque groupe W étant discrète, l’entropie différentielle H W correspond donc à une approximation de l’entropie de Shannon de la variable aléatoire discrète des poids quantifiés pour chaque groupe W. La démonstration de la validité de cette approximation sera décrite plus tard. La variable aléatoire discrète des poids quantifiés correspond effectivement à l’arrondi d’une variable aléatoire continue X qui suit une loi de probabilité continue. Cette loi de probabilité continue est utilisée pour le calcul de l’entropie différentielle H W . Dans la suite de description, on entend par le terme « entropie », l’entropie de Shannon. Dans le cas particulier où les poids de chaque groupe W suivent une variable aléatoire discrète correspondant à l’arrondi de la variable aléatoire continue X suivant une loi normale de variance V(X) et d’espérance E(X), le module d’apprentissage 25 est configuré pour calculer la dérivée par rapport au(x) poids de chaque groupe W respectif de la fonction d’objectif entropique L entropy , telle que définie par l’équation [4], par exemple selon l’équation suivante : [5] où L entropy est la fonction d’objectif entropique, V(W) est la variance de la deuxième variable aléatoire continue X du groupe W respectif, E(W) est l’espérance de la deuxième variable aléatoire continue X du groupe W respectif, Ĥ est l’objectif entropique total, et n est le nombre de poids quantifiés du groupe W. En variante, les paramètres de précision λ W sont des réels positifs. La fonction d’objectif entropique L entropy dépend alors en outre des paramètres de précision λ W . En particulier, la fonction d’objectif entropique L entropy vérifie l’équation suivante : [6] où L entropy est la fonction d’objectif entropique, λ W est le paramètre de précision du groupe W respectif, Ĥ est l’objectif entropique total, H W(k) est l’entropie des poids quantifiés à la précision k, représente la partie entière, aussi appelée partie entière inférieure (de l’anglais floor , ou plancher en français), et représente la partie entière supérieure (de l’anglais ceiling , ou plafond en français). Cette variante permet de fournir les précisions de quantification optimales par groupe W minimisant l’entropie des poids. Avantageusement, le module d’apprentissage 25 est en outre configuré pour calculer la dérivée par rapport au paramètre de précision λ W de la fonction d’objectif entropique L entropy , par exemple selon l’équation suivante : [7] où L entropy représente la fonction d’objectif entropique, λ W représente le paramètre de précision du groupe respectif, W représente le groupe respectif de poids, H W représente l’entropie différentielle du groupe W, représente l’objectif entropique totale, représente la partie entière inférieure, et représente la partie entière supérieure. Selon un complément facultatif, le module d’apprentissage 25 est configuré pour effectuer l’apprentissage des poids à partir de données d’apprentissage, chaque poids issu dudit apprentissage étant une valeur quantifiée de poids appartenant à l’ensemble EQ de valeurs quantifiées, l’ensemble EQ incluant un nombre impair de valeurs. En variante de ce complément facultatif, en référence à la FIG. 2 , l’ensemble EQ inclut la valeur nulle. Dans l’exemple de la FIG. 2 , la répartition 50 des valeurs quantifiées est telle que les valeurs quantifiées positives 55 de l’ensemble EQ sont symétriques des valeurs quantifiées négatives 60 par rapport à la valeur nulle. La valeur nulle capte une très grande portion des poids de par la distribution naturelle des poids. Ainsi, l’ajout de la valeur nulle contribue à réduire l’entropie des poids quantifiés. La symétrie par rapport à la valeur nulle permet une distribution proche d’une loi normale arrondie. Selon un second aspect complémentaire et indépendant du premier aspect, le système électronique comprend en outre un module de compression 32, illustré sur la FIG. 1 , configuré pour compresser les poids quantifiés déterminés par le module d’apprentissage 25. Dans l’exemple de la FIG. 1 , le module de compression 32 est externe au calculateur 20 et au module d’apprentissage 25. Le module de compression 32 est par exemple réalisé sous forme d’un logiciel, c’est-à-dire sous forme d’un programme d’ordinateur. Il est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple un médium apte à mémoriser des instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. Sur le support lisible est alors mémorisé un programme d’ordinateur comprenant des instructions logicielles. En variante, le module de compression 32 est réalisé sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gate Array ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Application Specific Integrated Circuit ). En variante, non représentée, le module de compression 32 est inclus au calculateur 20 et/ou au module d’apprentissage 25. Par exemple, le module de compression 32 est configuré pour réaliser un codage entropique des poids quantifiés. Le module de compression 32 est configuré pour fournir en sortie une chaine de bits 68 représentant le(s) poids quantifié(s) d’un groupe W. Par exemple, le codage entropique est un codage à systèmes numériques asymétriques, également appelé codage ANS (de l’anglais Asymmetric Numeral Systems ), dont le fonctionnement est connu en soi, par exemple de l’article intitulé « Asymmetric numeral systems : entropy coding combining speed of Huffman coding with compression rate of arithmetic coding » de J. Duda, publié en 2014. Néanmoins, un tel codage entropique n’a jamais été utilisé pour la compression de paramètres, tels que des poids synaptiques, de réseaux de neurones. Selon ce deuxième aspect de l’invention, les symboles à encoder sont les valeurs de quantification des poids, i.e. les poids quantifiés. De préférence, le codage entropique est un codage à systèmes numériques asymétriques en tableau, également appelé codage tANS (de l’anglais tabled Asymmetric Numeral Systems ). Le module de compression 32 est configuré pour associer au moins un état E à chaque valeur quantifiée de poids. Par exemple, le nombre l d’état(s) E encodant n valeur quantifiées vérifie l’équation suivante : [8] où l est le nombre d’état(s) E, n le nombre de valeurs quantifiées, et b est un entier. De préférence, le nombre d’état(s) E affecté(s) à une valeur quantifiée dépend de la probabilité de cette valeur quantifiée. En d’autres termes, plus une valeur quantifiée est déterminée parmi un groupe W, plus d’états E lui seront associés. Selon ce second aspect de l’invention, le module d’inférence 30 comprend une unité de décompression 35 configurée pour décompresser les poids compressés. Par exemple, l’unité de décompression 35 est configurée pour effectuer un décodage entropique des poids compressés. L’unité de décompression 35 prend en entrée la chaine de bits 68, fournie en sortie du module de compression 32, et un état initial E 1 . Dans le cas où le codage entropique est le codage tANS, l’unité de décompression 35, illustrée sur la FIG. 3 , comprend une table de consultation 70, également appelée table LUT (de l’anglais Look-Up Table ). La table de consultation 70 forme une table de décodage du codage tANS. Dans l’exemple de la FIG. 3 , l’unité de décompression 35 comprend en outre un accumulateur 72 et un additionneur 74. La table de consultation 70 comprend l lignes 76 correspondant au l états E encodés par le module de compression 32, chaque ligne 76 correspondant à un état E i , et trois colonnes 78. Une première colonne 78 1 comprend un symbole S, c’est-à-dire le poids quantifié correspondant à l’état E i . Une seconde colonne 78 2 comprend le nombre de bits Nb à la lire dans la chaine de bits 68 à décoder selon l’état E i . Une troisième colonne 78 3 correspond à un entier X’ nécessaire pour calculer l’état suivant E i+1 . La table de consultation 70 est configurée pour prendre en entrée l’état E i et émettre en sortie trois signaux 80 i . Un premier signal 80 1 est représentatif du symbole S contenu dans la première colonne 78 1 de l’état E i . Un deuxième signal 80 2 est représentatif du nombre de bits Nb à lire dans la chaine de bits 68, contenu dans la deuxième colonne 78 2 . Un troisième signal 80 3 est représentatif de l’entier X’ nécessaire pour calculer l’état suivant E i+1 selon la troisième colonne 78 3 . L’accumulateur 72 est configuré pour transformer le deuxième signal 80 2 en un signal 82 représentatif des bits lus dans la chaine de bits 68, le nombre de bits lus dépendant du deuxième signal 80 2 . L’additionneur 74 est configuré pour prendre en entrée le troisième signal 80 3 et le signal 82, et pour calculer alors l’état suivant E i+1 . En variante, non représentée, l’additionneur 74 n’est pas présent. La table de consultation 70 comprend alors plus de colonnes 78. Les colonnes 78 additionnelles comprennent directement les différentes valeurs d’état suivant E i+1 . Dans ce cas, l’empreinte mémoire nécessaire au codage de la table de consultation 70 est plus importante qu’en présence de l’additionneur 74. Un exemple de fonctionnement du calculateur 20 selon l'invention va maintenant être expliqué en regard de la FIG. 4 représentant un organigramme d'un procédé de traitement de données issues du capteur 15, notamment de classification de données, via l’implémentation du réseau de neurones artificiels RN avec le calculateur 20, le procédé comprenant une phase d'apprentissage 100 dans laquelle un procédé, selon l'invention, d’apprentissage de poids synaptiques d’au moins une couche CT1, CT2, CT3 du réseau de neurones RN est mis en œuvre ; puis une phase d'inférence 150 dans laquelle le réseau de neurones artificiels RN, préalablement entraîné, est utilisé pour calculer des valeurs de sortie, afin de traiter, notamment de classifier, i.e. classer, lesdites données. Comme décrit précédemment, la phase d’apprentissage 100 est de préférence mise en œuvre par un ordinateur, cette phase d’apprentissage 100 étant effectuée par le module d’apprentissage 25, et optionnellement le module de compression 32, qui sont typiquement des modules logiciels. La phase d’inférence 150 subséquente est, quant à elle, de préférence mise en œuvre par le calculateur 20, et plus précisément par son module d’inférence 30. En particulier, la phase d’apprentissage 100 selon l’invention permet ensuite une mise en œuvre de la phase d’inférence 150. La phase d’apprentissage 100 comprend une étape 110 d’apprentissage du réseau de neurones RN, en particulier de poids quantifiés dudit réseau. L’étape 110 d’apprentissage est effectuée par le module d’apprentissage 25. L’étape 110 d’apprentissage est effectuée à partir des données d’apprentissage. Cet apprentissage est effectué via un algorithme de rétropropagation (de l’anglais back-propagation ) du gradient. L’algorithme de rétropropagation a pour but de converger vers une configuration optimale des poids synaptiques, obtenue par minimisation de la fonction de coût L. Selon l’invention, la fonction de coût L dépend d’un terme d’erreur L cls correspondant à l’erreur de prédiction et du terme entropique, le terme entropique dépend de l’entropie différentielle totale H tot des poids quantifiés. L’étape 110 d’apprentissage comprend ensuite la quantification des poids obtenus par application du quantificateur. Chaque poids déterminé est une valeur quantifiée appartenant à l’ensemble prédéfini EQ de valeurs quantifiées. Lors de la phase d’apprentissage 100, à l’issue de l’étape d’apprentissage 110, le module de compression 32 effectue optionnellement ensuite une étape de compression 120 des poids quantifiés. La compression est par exemple réalisée via le codage entropique, de préférence via le codage ANS. Avantageusement, la compression est réalisée via le codage tANS. Lors de la phase d’inférence 150, le module d’inférence 30 infère le réseau de neurones artificiels RN préalablement entrainé pour traiter, notamment classifier, les données reçues en entrée du calculateur électronique 20, le réseau de neurones RN ayant été préalablement entraîné et compressé lors de la phase d’apprentissage 100. Les données reçues par le calculateur 20 correspondent aux données captées par le capteur 15. La phase d’inférence 150 comprend une première étape 160 de décompression des poids compressés, effectuée par l’unité de décompression 35 incluse dans le module d’inférence 30. Par exemple, l’unité de décompression 35 effectue le décodage entropique, de préférence un décodage à systèmes numériques asymétriques, également appelé décodage ANS. Avantageusement, le décodage entropique effectué par l’unité de décompression 35 est un décodage à systèmes numériques asymétriques en tableau, également appelé décodage tANS, à l’aide de la table de consultation 70. A l’issue de l’étape de décompression 160, le module d’inférence 30 effectue une étape 170 de calcul neuronal. En particulier, l’étape de calcul neuronal 170 correspond à l’exécution de la somme pondérée de valeur(s) d’entrée issues des données du capteur 15. La pondération est faite par les poids quantifiés déterminés lors de l’étape d’apprentissage 110, qui ont été optionnellement décompressés lors de l’étape de décompression 160. En variante, par la suite, le module d’inférence 30 applique une fonction d’activation pondérée à la somme pondérée. Le procédé d’apprentissage selon l’invention permet d’effectuer la phase d’inférence 150 avec le module d’inférence 30 nécessitant une empreinte mémoire réduite tout en conservant de bonnes performances. La réduction de l’empreinte mémoire est obtenue par deux aspects principaux décrits ci-dessus, ces aspects étant complémentaires et indépendants. Le premier aspect est l’ajout du terme entropique dépendant de l’entropie différentielle totale H tot , à la fonction de coût L. Le second aspect est la compression des poids quantifiés obtenus lors de l’étape 110 d’apprentissage, et avantageusement le codage entropique, tel que le codage tANS, desdits poids quantifiés. Les deux aspects sont complémentaires, car l’ajout du terme entropique permet la réduction de l’entropie des poids quantifiés, ce qui a pour effet d’augmenter le potentiel de compression des poids quantifiés. L’impact de ce premier aspect sur la réduction de l’empreinte mémoire va maintenant être décrit. Dans un premier temps, nous allons justifier l’utilisation de l’entropie différentielle comme approximation de l’entropie de Shannon pour la distribution de(s) poids quantifié(s) d’un groupe W donné. Par la suite, le groupe W considéré est par exemple une couche de traitement CTi d’un réseau de neurones RN. Les poids quantifiés inclus dans le groupe W donnée sont définis par la variable aléatoire discrète où X est la variable aléatoire continue qui suit une loi de probabilité continue à support fini sur l’intervalle avec N un entier naturel, et est la fonction arrondie. On suppose que la variable aléatoire continue X est symétrique et d’espérance nulle, et par conséquent la variable aléatoire discrète est symétrique et d’espérance nulle. La variable aléatoire continue X est une variable aléatoire à densité f(x). L’entropie binaire différentielle H(X) de la variable aléatoire continue X vérifie typiquement l’équation : [9] Par exemple, si la variable aléatoire continue X suit une loi normale centrée de variance V(X), l’entropie binaire différentielle H(X) vérifie l’équation suivante : [10] Par relation de Chasles, l’équation [9] est équivalente à l’équation suivante : [11] Par ailleurs, l’entropie de la variable aléatoire discrète vérifie l’équation : [12] La variable aléatoire discrète possède la même entropie qu’une variable aléatoire continue de densité g(t), la densité g(t) vérifiant l’équation suivante : [13] Dans la suite de la description on notera indifféremment l’entropie et . La différence entre l’entropie et l’entropie différentielle H(X) est alors définie par l’équation suivante : [14] L’équation [14] correspondant à une divergence de Kullback-Leibler, l’équation suivante est alors obtenue : [15] D’après le théorème des valeurs intermédiaires, la densité f(x) prend au moins une fois la valeur sur l’intervalle , sans quoi la densité f serait toujours strictement supérieure ou inférieure à sa moyenne, ce qui est absurde. Soit c i tel que , et soit . D’après l’inégalité des accroissements finis appliquée à L(t), pour t inclus dans l’intervalle , on obtient l’équation suivante : [16] Or par définition de c i , L(c i ) = 0. La différence entre l’entropie et l’entropie différentielle H(X) est alors bornée et vérifie l’équation suivante : [17] Dans l’intégrale ci-dessus, t et c i appartiennent tous deux à l’intervalle , donc . Finalement, la différence entre l’entropie et l’entropie différentielle H(X) est alors bornée et vérifie l’équation suivante : [18] Par exemple, si la variable aléatoire continue X suit une loi normale centrée de variance σ² et coupée sur , en supposant N suffisamment grand pour que la probabilité de la queue de la distribution soit négligeable, la densité f(x) vérifie alors l’équation suivante : [19] où σ est l’écart-type de la variable aléatoire continue X. La différence entre l’entropie et l’entropie différentielle H(X) vérifie alors l’équation suivante : [20] où . Or t i ’ appartient à l’intervalle , donc . Par relation de Chasles, l’équation suivante est obtenue : [21] La troisième intégrale ci-dessus vaut 1 par propriété de la densité f(x). La somme des deux premières intégrales ci-dessus est l’espérance d’une loi demi-normale, c’est-à-dire de la valeur absolue d’une loi normale, coupée sur l’intervalle [0, N]. L’espérance de la valeur absolue d’une loi normale vaut , où σ est l’écart-type de la loi normale. Dans l’hypothèse où N est suffisamment grand, l’effet du coupage sur l’intervalle [0, N] de la loi demi-normale sur la valeur de l’espérance est négligeable. Ainsi, on considère que la somme des deux premières intégrales est égale à , ce qui est une bonne approximation. La différence entre l’entropie et l’entropie différentielle H(X) vérifie alors l’équation suivante : [22] L’homme du métier observera ainsi que si l’écart-type σ est suffisamment grand, l’entropie différentielle H(X) est une bonne approximation de l’entropie . L’équation [22] ci-dessus est cohérente avec les résultats expérimentaux obtenus après l’entrainement du réseau de neurones convolutionnel Resnet-18 sur l’ensemble de données d’entrainement cifar10, le réseau Resnet-18 étant entrainé pour classer des données, comme le montre la table 1 ci-dessous. Précision quantification Entropie Empreinte mémoire (en MB) Objectif entropique 1 Objectif entropique 2 Objectif entropique 3 4 bits Entropie discrète 0,120 0,099 0,062 Entropie différentielle 0,12 0,10 0,06 3 bits Entropie discrète 0,077 0,069 0,063 Entropie différentielle 0,07 0,06 0,05 2 bits Entropie discrète 0,078 0,067 0,059 Entropie différentielle 0,08 0,06 0,05 Dans la table 1 ci-dessus, l’empreinte mémoire du réseau de neurones Resnet-18 entrainé est calculé à partir de l’entropie de la variable aléatoire discrète , aussi appelée entropie discrète, et de l’entropie différentielle de la variable aléatoire continue X, aussi appelée entropie différentielle. L’empreinte mémoire nécessaire pour stocker les poids quantifiés est comparée pour plusieurs précisions de quantification, les valeurs quantifiées étant sur 2 bits, 3 bits ou encore 4 bits dans la table 1, et pour plusieurs valeurs d’objectif entropique total Ĥ, appelés objectif entropique dans la table 1. Les objectifs entropiques totaux Ĥ sont rangés du moins agressif au plus agressif, c’est-à-dire par ordre décroissant en terme d’empreinte mémoire. L’homme du métier observera alors tout d’abord que l’entropie différentielle H(X) est une bonne approximation de l’entropie ; et ensuite qu’aux précisions les plus basses et lorsque l’objectif entropique total Ĥ est plus agressif, la qualité de l’approximation par l’entropie différentielle tend à se dégrader, autrement dit à s’écarter de sa valeur réelle calculée avec l’entropie discrète. Ce constat est cohérent avec l’équation [22]. En effet, plus la précision de quantification et l’objectif entropique total Ĥ sont faibles, plus l’écart-type σ de la loi de probabilité continue est faible, et par conséquent plus la borne de la différence entre l’entropie et l’entropie différentielle H(X) est plus importante, celle-ci étant fonction de l’inverse de l’écart-type σ. Dans un second temps, nous allons mettre en évidence l’effet du premier aspect de l’invention sur la réduction de l’empreinte mémoire, ceci afin de minimiser ensuite l’utilisation de ressources mémoire du calculateur 20 lors de l’inférence du réseau de neurones RN. L’impact de la fonction d’objectif entropique L entropy sur la distribution des poids quantifiés est par exemple représentée sur la FIG. 5 . La FIG. 5 montre deux histogrammes 200, 250, à savoir un premier histogramme 200 et un deuxième histogramme 250 représentent la distribution des poids quantifiés et codés sur 4 bits d’une couche du réseau de neurones Resnet-18 de la table 1. Sur le premier histogramme 200 en haut de la FIG. 5 , le module d’apprentissage de l’état de la technique détermine les poids quantifiés en l’absence de fonction d’objectif entropique dans la fonction de coût L. Les poids sont dispersés sur 15 valeurs numérotées de 0 à 14. Sur le deuxième histogramme 250 en bas de la FIG. 5 , le module d’apprentissage 25 détermine les poids quantifiés en présence la fonction d’objectif entropique L entropy décrite ci-dessus. Les poids sont dispersés sur 6 valeurs numérotées de 0 à 5. La fonction d’objectif entropique L entropy permet donc une diminution de la variabilité des poids quantifiés, et par conséquent une diminution de l’empreinte mémoire du réseau de neurones Resnet-18. En effet, la couche du réseau de neurones Resnet-18 entrainée sans fonction d’objectif entropique nécessite une empreinte mémoire de 48,59 ko contre 28,46 ko pour la couche du réseau de neurones Resnet-18 entrainée avec la fonction d’objectif entropique L entropy . La fonction d’objectif entropique L entropy permet donc une réduction de l’empreinte mémoire. En outre, le procédé d’apprentissage selon l’invention permet d’obtenir des bonnes performances comme le montre la table 2 ci-dessous. Précision quantification Objectif entropique 1 Objectif entropique 2 Objectif entropique 3 4 bits Empreinte mémoire (en MB) 0,229 0,100 0,085 Précision (%) 90,63 89,72 86,98 3 bits Empreinte mémoire (en MB) 0,132 0,077 0,069 Précision (%) 90,63 90,19 89,25 2 bits Empreinte mémoire (en MB) 0,088 0,078 0,067 Précision (%) 89,63 89,74 89,38 Dans la table 2, la performance est évaluée par la précision de classification du réseau de neurone Resnet-18 de la table 1. Ici, la précision de classification, appelée Précision dans la table 2, est mesurée par une métrique de précision connue sous l’appellation Top-1 (de l’anglais Top-1 accuracy ), c’est-à-dire que la précision correspond à la proportion de données d’entrainement pour lesquelles la prédiction Yi’ est égale au label Yi correspondant. L’homme du métier observera alors que la précision de classification est proche de 90% dans la plupart des cas, ainsi le terme entropique permet d’obtenir de bonnes performances. En outre, l’homme du métier observera que pour une précision de quantification de 2 bits ou 3 bits, l’objectif entropique total Ĥ a peu d’influence sur la précision de classification, tandis que l’objectif entropique total Ĥ a beaucoup d’influence sur l’empreinte mémoire. On étudie aussi l’avantage que présente le complément facultatif de l’invention selon lequel l’ensemble EQ de valeurs quantifiées inclut un nombre impair de valeurs quantifiées. La précision de classification et l’empreinte mémoire du réseau de neurone Resnet-18 de la table 1 dont les poids quantifiés sont inclus dans un tel ensemble EQ sont représentées dans la table 3 ci-dessous. Taille EQ Objectif entropique 1 Objectif entropique 2 Objectif entropique 3 5 Empreinte mémoire (en MB) 0,07 0,051 0,043 Précision (%) 90,21 87,8 82,78 3 Empreinte mémoire (en MB) 0,008 Précision (%) 81,75 La table 3 montre que, pour un ensemble EQ incluant 5 valeurs et l’objectif entropique 1, on obtient une précision de classification supérieure à celle obtenue pour une précision de quantification de 2 bits, soit un ensemble EQ comprenant 4 valeurs, alors que l’empreinte mémoire est plus faible. Un nombre impair de valeurs quantifiées permet donc de réduire l’empreinte mémoire du réseau de neurones Resnet-18, tout en gagnant en performance. La table 3 montre en outre qu’une quantification ternaire, autrement dit un ensemble EQ incluant 3 valeurs, entraîne une baisse importante de la précision de classification. L’homme du métier observera tout de même que la quantification ternaire, avec une empreinte mémoire égale à 0,008 MB dans cet exemple, entraîne une diminution d’environ 90% par rapport à l’empreinte mémoire pour une précision de quantification de 2 bits, celle-ci étant alors égale à 0,088 MB dans l’exemple de la Table 2. Les résultats de la table 2 et de la table 3 sont représentés sur des courbes 300, 305, 310 et 315 à la FIG. 6 . Chaque courbe 300, 305, 310, 315 correspond à un paramètre de précision, ou un nombre de valeurs inclus dans l’ensemble EQ, distinct pour lequel l’empreinte mémoire totale du réseau de neurones Resnet-18 est représentée en fonction de la performance du réseau de neurones Resnet-18, en particulier de la métrique de précision Top-1. Ainsi, une première courbe 300 correspond aux résultats obtenus pour des poids quantifiés codés avec un paramètre de précision égal à 4 bits, en d’autres termes l’ensemble EQ inclut 16 valeurs de quantification. Une deuxième courbe 305 correspond aux résultats obtenus pour des poids quantifiés codés avec un paramètre de précision égal à 3 bits, en d’autres termes l’ensemble EQ inclut 8 valeurs de quantification. Une troisième courbe 310 correspond aux résultats obtenus pour des poids quantifiés codés avec un paramètre de précision égal à 2 bits, en d’autres termes l’ensemble EQ inclut 4 valeurs de quantification. Une quatrième courbe 315 correspond aux résultats obtenus pour des poids quantifiés appartenant à l’ensemble EQ incluant 5 valeurs de quantification. Un point isolé 320 correspond au résultat obtenu pour des poids quantifiés appartenant à l’ensemble EQ incluant 3 valeurs de quantification. Chaque courbe 300, 305, 310, 315 présente une inflexion 330 correspondant à la frontière de Pareto, c’est-à-dire au meilleur compromis entre la performance et l’empreinte mémoire. En dessous de l’inflexion 330, une faible diminution d’empreinte mémoire entraîne une forte réduction de la précision de classification. Au-dessus de l’inflexion 330, une forte augmentation d’empreinte mémoire entraîne une faible augmentation de la précision de classification. La FIG. 6 met en évidence également l’effet du complément facultatif selon lequel l’ensemble EQ inclut un nombre impair de valeurs. En effet, pour le réseau de neurones Resnet-18 dont les poids quantifiés prennent 5 valeurs distinctes, en référence à la quatrième courbe 315, on remarque que pour des performances similaires aux réseaux de neurones Resnet-18 dont les poids quantifiés sont codés par 4 bits, 3 bits, et respectivement 2 bits, en référence aux première 300, deuxième 305, et respectivement troisième 310 courbes, l’empreinte mémoire est moins élevée. L’impact du deuxième aspect de l’invention, c’est-à-dire la compression des poids quantifiés sur la réduction de l’empreinte mémoire va maintenant être décrit. Les résultats décrits ci-après prennent en compte uniquement ce deuxième aspect. Autrement dit, les réseaux de neurones RN décrits ci-après ont été entrainé par un module d’apprentissage configuré pour minimiser une fonction de coût sans fonction d’objectif entropique L entropy . La compression est de préférence réalisée par codage tANS. Le codage tANS présente l’avantage d’être facilement décodable à l’inférence par la présence de la table de consultation 70 incluse dans l’unité de décompression 35. En outre, le codage tANS et le décodage tANS permettent de diminuer grandement l’empreinte mémoire nécessaire pour stocker les poids quantifiés. Par exemple, l’histogramme 350 de la FIG. 7 représente le nombre de valeurs quantifiées distinctes de chaque couche de traitement CTi du réseau de neurones RN, le réseau de neurones RN étant un réseau Resnet-50 entrainé sur les données d’entrainement d’ImageNet. Le réseau de neurones Resnet-50 comprend 52 couches de traitement CTi. L’histogramme 350 suggère que la précision de quantification λ W , où chaque groupe W est une couche de traitement CTi, est optimisée en fonction de la couche concernée. En outre, chaque couche de traitement CTi présente un nombre impair de valeurs quantifiées distinctes comprises dans un ensemble EQi respectifs de valeurs quantifiés. De préférence, chaque ensemble EQi inclut la valeur nulle. De préférence, les valeurs quantifiées positives de chaque ensemble EQi sont symétriques des valeurs quantifiées négatives de chaque ensemble EQi par rapport à la valeur nulle. Sur l’histogramme 350, le nombre maximum de valeurs distinctes pour une couche atteint 31 valeurs ; et le nombre minimum est de 13 valeurs. Les deux histogrammes 400, 450 de la FIG. 8 , à savoir un premier histogramme 400 et un deuxième histogramme 450, représentent l’empreinte mémoire nécessaire pour stocker les poids quantifiés du réseau de neurones Resnet-50 de la FIG. 7 . Sur le premier histogramme 400 en haut de la FIG. 8 , l’empreinte mémoire en MB nécessaire pour stocker les poids quantifiés de chaque couche CTi avant compression est représentée. Certaines couches atteignent une empreinte mémoire de 1,3 MB. Sur le deuxième histogramme 450 en bas de la FIG. 8 , l’empreinte mémoire en MB nécessaire pour stocker les poids quantifiés de chaque couche CTi après compression par codage tANS est représentée. L’empreinte mémoire maximum atteinte est de 185 Ko, ainsi certaines couches CTi ont été compressées jusqu’à 20 fois. Ainsi, la réduction de l’empreinte mémoire se fait en gardant le réseau de neurones RN avec des bonnes performances même après décodage, comme le montre la table 4 ci-dessous. RN Compression Précision (en %) Empreinte mémoire (en MB) 1 Etat de la technique 1 68,8 3,6 Etat de la technique 2 70,0 2,78 Etat de la technique 3 68,5 2,01 Codage tANS 69,0 1,67 2 Etat de la technique 1 71,3 5,5 Etat de la technique 2 73,5 5,91 Etat de la technique 4 73,7 5,25 Codage tANS 75,6 4,52 Les réseaux de neurones RN de la table 4 sont entrainés tels que les poids quantifiés soit inclut dans un ensemble EQ incluant la valeur nulle. Le réseau de neurones RN 1 de la table 4 correspond à un réseau Resnet-18 entrainé sur les données d’entrainement d’ImageNet. Avant compression, le réseau Resnet-18 nécessite une empreinte mémoire de 46,8 MB et atteint une précision de classification de 69,8%. Le réseau de neurones RN 2 de la table 4 correspond à un réseau Resnet-50 entrainé sur les données d’entraînement d’ImageNet. Avant compression, le réseau Resnet-50 nécessite une empreinte mémoire de 102,5 MB et atteint une précision de classification de 76,1%. L’état de la technique 1 correspond aux valeurs obtenues par la méthode de compression LZMA, notamment utilisée pour la compression de poids dans l’article « HEMP: High- order Entropy Minimization for neural network comPression » de Tartanglione et al. en 2021. L’état de la technique 2 correspond aux valeurs obtenues par la méthode décrite dans l’article « Scalable model compression by entropy penalized reparameterization » de Oktay et al. en 2020. Cette méthode comprend un entrainement du décodeur, en plus de l’entrainement des paramètres du réseau. L’état de la technique 3 correspond à la méthode FracBits, appliquée aux poids uniquement et pas aux activations, décrite dans l’article « FracBits : Mixed Precision Quantization via Fractional Bit- Widths » de L.Yang et Q. Jin en 2020. L’état de la technique 4 correspond à la méthode de codage de Golomb doublé d’un codage arithmétique avec contexte, décrite dans l’article « DeepCABAC : A Universal Compression Algorithm for Deep Neural Networks » de Wiedemann et al. en 2020. Pour les deux réseaux de neurones RN 1 et RN 2, la table 4 montre une réduction importante de l’empreinte mémoire nécessaire pour stocker l’ensemble des poids quantifiés de chaque couche, lorsqu’ils sont compressés via le codage tANS par rapport aux différentes méthodes de l’état de la technique. La précision Top-1 des réseaux de neurones RN 1 et RN 2 compressés par codage tANS étant sensiblement égale à la précision des réseaux de neurones de l’état de la technique ou même supérieure pour le réseau de neurones RN 2. L’homme du métier observera alors que la compression via le codage tANS permet cette réduction importante de l’empreinte mémoire, tout en n’altérant pas la précision obtenue. Grâce aux deux aspects du procédé d’apprentissage selon l’invention, il est ainsi possible d’entrainer le réseau de neurones RN configuré pour être mis en œuvre par le calculateur électronique 20, en ayant une empreinte mémoire nécessaire au fonctionnement du réseau RN réduite, tout en conservant les performances du réseau RN, notamment sa précision de classification. Ainsi, l’invention permet d’avoir des calculateurs électroniques 20 embarqués de taille plus réduite pour effectuer le traitement de données, notamment la classification de données, via la mise en œuvre du réseau de neurones artificiels RN. On conçoit ainsi que le procédé d’apprentissage selon l’invention permet de réduire l’empreinte mémoire du réseau RN sans perte d’efficacité de traitement des données et de faciliter l’inférence dudit réseau de neurones RN par le calculateur 20. Procédé d’apprentissage de poids synaptiques d’au moins une couche (CT1, CT2, CT3) d’un réseau de neurones artificiels (RN) configuré pour traiter, notamment pour classifier, des données, le réseau de neurones artificiels (RN) étant configuré pour être mis en œuvre par un calculateur électronique (20) connecté à un capteur (15), pour le traitement d’au moins un objet issu du capteur (15), chaque neurone artificiel d’une couche (CT1, CT2, CT3) respective é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, l’élément respectif étant une variable d’entrée du réseau de neurones (RN) ou un neurone d’une couche précédente du réseau de neurones (RN), le procédé étant mis en œuvre par ordinateur et comprenant l’étape suivante : - détermination (110) des poids du réseau de neurones (RN) à partir de données d’apprentissage, chaque poids déterminé étant une valeur quantifiée appartenant à un ensemble prédéfini (EQ) de valeurs quantifiées ; les poids étant déterminés par minimisation d’une fonction de coût (L), la fonction de coût (L) dépendant d’un terme d’erreur (L cls ) correspondant à une erreur de prédiction et d’un terme entropique, caractérisé en ce que le terme entropique dépend d’une entropie différentielle totale (H tot ) des poids quantifiés. Procédé selon la revendication 1, dans lequel le réseau de neurones (RN) comprend des groupes (W) de poids du réseau, chaque groupe (W) de poids comprenant au moins un poids quantifié appartenant à l’ensemble (EQ), et l’entropie différentielle totale (H tot ) est une somme de produits pour lesdits groupes, chaque produit étant un produit d’un cardinal (|W|) d’un groupe respectif et de l’entropie différentielle (H(W)) dudit groupe. Procédé selon la revendication 1 ou 2, dans lequel la fonction de coût (L) est la somme du terme d’erreur (L cls ) et du terme entropique ; le terme entropique étant de préférence le produit d’un facteur multiplicatif (κ) et d’une fonction d’objectif entropique (L entropy ), la fonction d’objectif entropique (L entropy ) dépendant de l’entropie différentielle totale (H tot ) des poids quantifiés ; la fonction de coût (L) vérifiant de préférence encore l’équation : où L représente la fonction de coût, L cls représente le terme d’erreur, κ représente le facteur multiplicatif, et L entropy représente la fonction d’objectif entropique. Procédé selon la revendication 2 ou 3, dans lequel la fonction d’objectif entropique (L entropy ) dépend en outre d’un objectif entropique total (Ĥ) prédéfini. Procédé selon la revendication 4, dans lequel la fonction d’objectif entropique (L entropy ) dépend d’une différence entre l’entropie différentielle totale (H tot ) et l’objectif entropique total (Ĥ). Procédé selon l’une quelconque des revendications précédentes, dans lequel la minimisation de la fonction de coût (L) comprend le calcul d’un gradient de la fonction de coût (L). Procédé selon la revendication 6, dans lequel à chaque groupe (W) de poids est associé un paramètre de précision (λ W ) égal au nombre de bits utilisés pour le codage de l’au moins un poids du groupe (W), et lorsque chaque paramètre de précision (λ W ) est un entier et lorsque la distribution des poids quantifiés de chaque groupe (W) suit une loi normale arrondie, la dérivée - par rapport aux poids d’un groupe (W) respectif - de la fonction d’objectif entropique (L entropy ) vérifie l’équation suivante : où L entropy représente la fonction d’objectif entropique, W représente le groupe respectif de poids, V(W) représente la variance de la loi normale, E(W) représente l’espérance de la loi normale, représente l’objectif entropique total, et n est le nombre de poids quantifiés du groupe W. Procédé selon la revendication 6, dans lequel à chaque groupe (W) de poids est associé un paramètre de précision (λ W ) égal au nombre de bits utilisés pour le codage de l’au moins un poids du groupe (W), et lorsque chaque paramètre de précision (λ W ) est un réel positif, la fonction d’objectif entropique (L entropy ) dépendant des paramètres de précision (λ W ), la dérivée - par rapport au paramètre de précision (λ W ) d’un groupe (W) respectif - de la fonction d’objectif entropique (L entropy ) vérifie l’équation : où L entropy représente la fonction d’objectif entropique, λ W représente le paramètre de précision du groupe respectif, W représente le groupe respectif de poids, H W représente l’entropie différentielle du groupe W, représente l’objectif entropique totale, représente la partie entière inférieure, et représente la partie entière supérieure. Procédé selon l’une quelconque des revendications précédentes, dans lequel l’ensemble prédéfini (EQ) de valeurs quantifiées inclut un nombre impair de valeurs. Procédé selon l’une quelconque des revendications précédentes, dans lequel l’ensemble (EQ) inclut la valeur nulle ; les valeurs quantifiées positives de l’ensemble (EQ) étant de préférence symétriques, des valeurs quantifiées négatives de l’ensemble (EQ) par rapport à la valeur nulle. Procédé selon l’une quelconque des revendications précédentes, dans lequel le procédé comprend en outre, après l’étape (110) de détermination des poids, une étape (120) de compression des poids déterminés. Procédé selon la revendication 11, dans lequel la compression (120) est réalisée via un codage entropique. Procédé selon la revendication 12, dans lequel le codage entropique est un codage à systèmes numériques asymétriques (ANS) ; le codage entropique étant de préférence un codage à systèmes numériques asymétriques en tableau (tANS). Procédé de traitement de données, notamment de classification de données, le procédé étant mis en œuvre par un calculateur électronique (20) implémentant un réseau de neurones artificiels (RN), le procédé comprenant : - une phase d’apprentissage (100) du réseau de neurones artificiels (RN), et - une phase d’inférence (150) du réseau de neurones artificiels (RN), lors de laquelle des données, reçues en entrée du calculateur électronique (20), sont traitées, notamment classées, via le réseau de neurones artificiels (RN), préalablement entraîné lors de la phase d’apprentissage (100), caractérisé en ce que la phase d’apprentissage (100) est effectuée en mettant en œuvre un procédé d’apprentissage selon l’une quelconque des revendications 1 à 13. Programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé d’apprentissage selon l’une quelconque des revendications 1 à 13. Calculateur électronique (20) de traitement de données, notamment de classification de données, via la mise en œuvre d’un réseau (RN) de neurones artificiels, le calculateur électronique (20) étant destiné à être connecté à un capteur (15), pour le traitement d’au moins un objet issu du capteur (15), chaque neurone artificiel d’une couche respective (CT1, CT2, CT3) du réseau de neurones (RN) é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, l’élément respectif étant une variable d’entrée du réseau de neurones (RN) ou un neurone d’une couche précédente du réseau de neurones, le calculateur (20) comprenant : - un module d’inférence (30) configuré pour inférer le réseau de neurones artificiels (RN) préalablement entraîné, pour le traitement, notamment la classification, de données reçues en entrée du calculateur électronique (20), caractérisé en ce que le réseau de neurones artificiels (RN) préalablement entraîné lors d’une phase d’apprentissage (100) est issu d’un programme d’ordinateur selon la revendication 15. Calculateur (20) selon la revendication 16, dans lequel le module d’inférence (30) est configuré pour effectuer la somme pondérée de valeur(s) d’entrée, puis pour appliquer une fonction d’activation à la somme pondérée. Calculateur (20) selon la revendication 16 ou 17, dans lequel, lors de la phase d’apprentissage (100) les poids du réseau de neurones artificiels (RN) sont compressés, et le module d’inférence (30) comprend en outre une unité de décompression (35) configurée pour décompresser lesdits poids compressés ; la compression étant de préférence effectuée via un codage entropique, et l’unité de décompression (35) effectuant alors un décodage entropique des poids compressés. Calculateur (20) selon la revendication 18, dans lequel le codage entropique est un codage à systèmes numériques asymétriques en tableau (tANS), et l’unité de décompression (35) comprend une table de décodage (70) du codage à systèmes numériques asymétriques en tableau (tANS). Système électronique de traitement d’objet(s), comprenant un capteur (15) et un calculateur électronique (20) connecté au capteur (15), le calculateur (20) étant configuré pour traiter au moins un objet issu du capteur (15), caractérisé en ce que le calculateur (20) est selon l’une quelconque des revendications 16 à 19.