EP4293577A1 - Procédé de transformation d'un réseau de neurones artificiels entrainé - Google Patents

Procédé de transformation d'un réseau de neurones artificiels entrainé Download PDF

Info

Publication number
EP4293577A1
EP4293577A1 EP23177406.8A EP23177406A EP4293577A1 EP 4293577 A1 EP4293577 A1 EP 4293577A1 EP 23177406 A EP23177406 A EP 23177406A EP 4293577 A1 EP4293577 A1 EP 4293577A1
Authority
EP
European Patent Office
Prior art keywords
layer
neural network
pooling layer
binary
artificial neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP23177406.8A
Other languages
German (de)
English (en)
Inventor
Laurent Folliot
Pierre Demaj
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Publication of EP4293577A1 publication Critical patent/EP4293577A1/fr
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Definitions

  • Embodiments and implementations relate to artificial neural networks.
  • Artificial neural networks generally include a succession of layers of neurons. Each layer takes as input data to which weights are applied and outputs output data after processing by activation functions of the neurons of said layer. This output data is passed to the next layer in the neural network.
  • the weights are data, more particularly parameters, of neurons that can be configured to obtain good output data from the layers.
  • the weights are adjusted during a generally supervised learning phase, in particular by running the neural network with already classified data from a reference database as input data.
  • Neural networks can be quantized to speed up their execution and reduce memory requirements.
  • neural network quantification involves defining a format for representing neural network data, such as the weights as well as the inputs and outputs of each layer of the neural network.
  • the layers of a neural network can be quantized in float, in eight bits or in binary for example.
  • a trained neural network can thus include at least one layer quantized in binary.
  • the weights of said at least one layer then take the value ⁇ 0' or '1'.
  • the values generated by certain layers of the neural network can also be binary, and therefore take the value ⁇ 0' or '1'.
  • the neural network can nevertheless have certain layers, in particular an input layer and an output layer, quantized in eight bits or in floats.
  • the layers, called hidden layers, located between the input layer and the output layer can then be quantized in binary.
  • a binary quantized neural network for most of these layers can be obtained simply to identify (classify) an element in a physical signal.
  • the succession of layers is ordered so as to optimize the training of the neural network.
  • quantized neural networks are integrated into integrated circuits, such as microcontrollers.
  • integration software in order to integrate a quantized neural network into an integrated circuit.
  • the integration software can be configured to convert the quantized neural network into a transformed neural network, in particular optimized, to be executed on a given integrated circuit.
  • integration software STM32Cube.AI and its extension X-CUBE-AI developed by the company STMicroelectronics.
  • Executing the neural network can require significant memory resources to store the weights and data generated by the neural network (especially activations). Execution of the neural network can also be carried out over a high number of processing cycles.
  • Such a method makes it possible to interchange the pooling layer and the batch normalization layer.
  • Moving the batch normalization layer does not change the accuracy of the neural network because placing the batch normalization layer after the convolution layer is mathematically equivalent to having the batch normalization layer after the pooling layer. This is because the batch normalization layer performs a linear transformation.
  • moving the normalization layer reduces the execution time of the neural network, by reducing the number of processor cycles to execute the neural network. Moving the normalization layer also makes it possible to reduce the memory usage for the execution of the neural network.
  • the implementation of such a transformation method can allow optimization of the trained artificial neural network by converting it into a transformed, in particular optimized, artificial neural network.
  • the batch normalization layer is merged with the convolution layer.
  • the pooling layer is converted to a binary pooling layer.
  • Obtaining a binary pooling layer is enabled by moving the batch normalization layer before the pooling layer.
  • Using a binary pooling layer simplifies the execution of the transformed neural network.
  • the transformed neural network can be executed faster.
  • the pooling layer of the trained artificial neural network is a maximum pooling layer, and this pooling layer is converted into a binary maximum pooling layer.
  • a binary maximum pooling layer has the advantage of being able to be implemented by a simple logical “AND” operation, and can therefore be executed quickly.
  • the pooling layer of the trained artificial neural network is a minimum pooling layer, and this pooling layer is converted to a binary minimum pooling layer.
  • a binary minimum pooling layer has the advantage of being able to be implemented by a simple logical operation of the “OR” type, and can therefore be executed quickly.
  • the batch normalization layer of the trained artificial neural network and the transformed artificial neural network is configured to perform binary conversion and bit packing.
  • a computer program product comprising instructions which, when the program is executed by a computer, lead it to implement an artificial neural network comprising a binary convolution layer followed by a batch normalization layer, then a pooling layer.
  • a computer program product comprising instructions which, when the program is executed by a computer, lead it to implement a transformed artificial neural network obtained by implementing a method as described previously.
  • the convolution layer and the batch normalization layer are merged.
  • the pooling layer is a binary pooling layer.
  • the pooling layer is a binary maximum pooling layer.
  • the pooling layer is a binary minimum pooling layer.
  • the batch normalization layer is configured to perform binary conversion and bit packing.
  • a microcontroller comprising a memory in which a computer program product as described above is stored, and a calculation unit configured to execute this computer program product.
  • a computer program product comprising instructions which, when the program is executed by a computer, lead it to implement a method as described above.
  • THE figures 1 and 2 illustrate a method of transforming an artificial neural network trained TNN according to one mode of implementation of the invention.
  • the method includes obtaining 10, as input to integration software, the trained artificial neural network TNN.
  • the training is used to define a neural network whose performance is optimal for the nominal resolution and as little degraded as possible for the reduced resolution. More particularly, when training the neural network, the weights of the neural network are adjusted, then the performance of the modified network is evaluated according to the different resolutions used. If the performance of the neural network is satisfactory, the training of the network is stopped. Then, the trained neural network is provided as input to integration software.
  • the trained neural network TNN has a succession of layers.
  • This succession of layers classically includes a CNV_b convolution layer followed by a PL pooling layer then a BNL batch normalization layer.
  • the CNV_b convolution layer can be a 2D convolution layer.
  • the CNV_b convolution layer is a binary layer.
  • the pooling layer PL can be a maximum pooling layer (“maxpool”) or a minimum pooling layer (“minpool”).
  • the pooling layer allows the outputs of the convolution layer to be combined.
  • the combination of outputs can consist, for example, of taking the maximum (“maxPooling”) or minimum (minpooling) value of the outputs of the convolution layer.
  • the pooling layer makes it possible to reduce the size of the output maps of the convolution layer, while improving the performance of the neural network.
  • the trained neural network may include binary conversion and bit-packing carried out simultaneously with the BNL batch normalization layer.
  • Such an order of layers although optimal for training the neural network, is less efficient for its execution. Indeed, it is important to have for training a CNV_b convolution layer followed by the PL pooling layer before the BNL batch normalization layer.
  • the BNL batch normalization layer makes it possible to obtain as input to the binarization layer data centered reduced around zero having a dynamic adapted to have a correct binary conversion.
  • Placing the BNL batch normalization layer after the CNV_b convolution layer poses a problem for training because the BNL batch normalization layer would be performed on all of the data generated at the output of the CNV_b convolution layer, so that the Data output from the BNL batch normalization layer would be less well centered and reduced. This then poses precision problems, as some data output from the batch normalization layer would be overweighted and other data would be lost.
  • the order of layers for training is less efficient for the execution of the neural network because it requires a significant memory occupation to store layer output data, as well as a significant number of processing cycles.
  • the method then includes a conversion 11 carried out by the integration software. Conversion 11 makes it possible to convert the trained neural network TNN into a transformed neural network ONN, in particular optimized.
  • the conversion involves a reorganization 111 of the layers.
  • the reorganization 111 of the layers corresponds to a modification of the order of the layers of the neural network.
  • the BNL batch normalization layer is moved to succeed the CNV_b convolution layer.
  • the BNL batch normalization layer can be merged 112 with the CNV_b convolution layer.
  • BNZ binary conversion and BP bit packing are performed simultaneously with the BNL batch normalization layer.
  • the BNL batch normalization layer then corresponds to a comparison of the output data from the CNV_b convolution layer with a threshold defined during training of the neural network.
  • the execution of such a BNL batch normalization layer is performed directly on the output data of the CNV_b convolution layer, without the need for new memory accesses.
  • the movement 111 of the batch normalization layer BNL makes it possible to modify the pooling layer PL by a binary pooling layer PL_b.
  • the binary pooling layer PL_b may be a binary maximum pooling layer or a binary minimum pooling layer.
  • a binary maximum pooling layer can be implemented by a simple “AND” type logic operation.
  • a binary minimum pooling layer can be implemented by a simple “OR” type logic operation.
  • MinPool [(A ⁇ Mask)
  • the mask is used to initialize the padding values.
  • the output of the pooling layer PL_b has the advantage of being able to be obtained by a simple calculation loop.
  • moving the BNL batch normalization layer does not change the accuracy of the neural network because placing the BNL batch normalization layer after the CNV_b convolution layer is mathematically equivalent to having the BNL batch normalization layer batch normalization after the pooling layer. This is because the BNL batch normalization layer performs a linear transformation.
  • moving the normalization layer reduces the time execution of the neural network, by decreasing the number of processor cycles to execute the neural network. Moving the batch normalization layer also reduces the memory usage for executing the neural network.
  • the transformed neural network is integrated into an NNC computer program.
  • This computer program then includes instructions which, when the program is executed by a computer, lead it to implement the transformed neural network.
  • the transformed neural network can be embedded in a microcontroller.
  • a microcontroller As illustrated in Figure 3 , such a microcontroller then has a memory MEM configured to store the NNC program of the transformed neural network, and a processing unit UT configured to execute the transformed neural network.
  • the process described previously in relation to the figures 1 and 2 can be implemented by another computer program, this computer program being integrated into the integration software.
  • the computer program then comprises instructions which, when the program is executed by a computer, lead it to implement the method described above.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)
  • Prostheses (AREA)

Abstract

Selon un aspect, il est proposé un procédé de transformation d'un réseau de neurones artificiels entraîné (TNN) comportant une couche de convolution binaire (CNV_b) suivie d'une couche de mise en commun (PL) puis d'une couche de normalisation par lot (BNL), le procédé comprenant :- une obtention (10) du réseau de neurones artificiels entraîné (TNN), puis- une conversion (11) du réseau de neurones artificiels entraîné (TNN) dans laquelle l'ordre des couches du réseau de neurones artificiels entraîné (TNN) est modifié en déplaçant la couche de normalisation par lot après la couche de convolution (CNV), de façon à obtenir un réseau de neurones artificiels transformé (ONN).

Description

  • Des modes de réalisation et de mise en oeuvre concernent les réseaux de neurones artificiels.
  • Les réseaux de neurones artificiels comprennent généralement une succession de couches de neurones. Chaque couche prend en entrée des données auxquelles des poids sont appliqués et délivre en sortie des données de sortie après traitement par des fonctions d'activation des neurones de ladite couche. Ces données de sortie sont transmises à la couche suivante dans le réseau de neurones.
  • Les poids sont des données, plus particulièrement des paramètres, de neurones configurables pour obtenir de bonnes données en sortie des couches.
  • Les poids sont ajustés lors d'une phase d'apprentissage généralement supervisée, notamment en exécutant le réseau de neurones avec comme données d'entrée des données déjà classifiées d'une base de données de référence.
  • Les réseaux de neurones peuvent être quantifiés pour accélérer leur exécution et réduire les besoins en mémoire. En particulier, la quantification du réseau de neurones consiste à définir un format de représentation de données du réseau de neurones, tels que les poids ainsi que les entrées et les sorties de chaque couche du réseau de neurones. Les couches d'un réseau de neurones peuvent être quantifiées en flottant, en huit bits ou en binaire par exemple.
  • Un réseau de neurones entraîné peut ainsi comporter au moins une couche quantifiée en binaire. Les poids de ladite au moins une couche prennent alors comme valeur `0' ou '1'. Les valeurs générées par certaines couches du réseau de neurones peuvent également être binaire, et donc prendre comme valeur `0' ou '1'. Le réseau de neurones peut néanmoins présenter certaines couches, notamment une couche d'entrée et une couche de sortie, quantifiées en huit bits ou en flottants. Les couches, dites couches cachées (en anglais « hidden layers »), situées entre la couche d'entrée et la couche de sortie peuvent alors être quantifiées en binaire. Un réseau de neurones quantifié en binaire pour la plupart de ces couches peut être obtenus simplement pour identifier (classifier) un élément dans un signal physique.
  • Lorsque l'on souhaite développer un réseau de neurones au moins partiellement quantifié en binaire, la succession de couches est ordonnée de façon à optimiser l'entraînement du réseau de neurones. En particulier, il est courant d'utiliser une succession de couches comportant une couche de convolution suivi d'une couche de mise en commun (en anglais « pooling layer ») puis une couche de normalisation par lot (en anglais « batch normalization layer »).
  • Les réseaux de neurones quantifiés une fois entraînés sont intégrés dans des circuits intégrés, tels que des microcontrôleurs.
  • En particulier, il est possible d'utiliser un logiciel d'intégration afin d'intégrer un réseau de neurones quantifié dans un circuit intégré. Le logiciel d'intégration peut être configuré pour convertir le réseau de neurones quantifié en un réseau de neurones transformé, notamment optimisé, pour être exécuté sur un circuit intégré donné. On connaît par exemple le logiciel d'intégration STM32Cube.AI et son extension X-CUBE-AI développés par la société STMicroelectronics.
  • L'exécution du réseau de neurones peut demander des ressources importantes en mémoire pour stocker les poids et les données générées par le réseau de neurones (en particulier les activations). L'exécution du réseau de neurones peut également être effectué sur un nombre élevé de cycles de traitement.
  • Il existe donc un besoin de proposer des solutions permettant de réduire l'utilisation mémoire et le nombre de cycles requis pour l'exécution d'un réseau de neurones artificiel tout en maintenant une bonne précision du réseau de neurones.
  • Selon un aspect, il est proposé un procédé de transformation d'un réseau de neurones artificiels entraîné comportant une couche de convolution binaire suivie d'une couche de mise en commun puis d'une couche de normalisation par lot, le procédé comprenant :
    • une obtention du réseau de neurones artificiels entraîné, puis
    • une conversion du réseau de neurones artificiels entraîné dans laquelle l'ordre des couches du réseau de neurones artificiels entraîné est modifié en déplaçant la couche de normalisation par lot après la couche de convolution, de façon à obtenir un réseau de neurones artificiels transformé.
  • Un tel procédé permet d'intervertir la couche de mise en commun et la couche de normalisation par lot. Le déplacement de la couche de normalisation par lot ne modifie pas la précision du réseau de neurones car le fait de placer la couche de normalisation par lot après la couche de convolution est équivalent mathématiquement au fait d'avoir la couche de normalisation par lot après la couche de mise en commun. En effet, la couche de normalisation par lot effectue une transformation linéaire. Néanmoins, le déplacement de la couche de normalisation permet de réduire le temps d'exécution du réseau de neurones, en diminuant le nombre de cycles de processeur pour exécuter le réseau de neurones. Le déplacement de la couche de normalisation permet également de réduire l'occupation mémoire pour l'exécution du réseau de neurones. Ainsi, la mise en oeuvre d'un tel procédé de transformation peut permettre une optimisation du réseau de neurones artificiels entraîné en le convertissant en un réseau de neurones artificiels transformé, notamment optimisé.
  • Dans un mode de mise en oeuvre avantageux, la couche de normalisation par lot est fusionnée avec la couche de convolution.
  • De préférence, la couche de mise en commun est convertie en une couche de mise en commun binaire. L'obtention d'une couche de mise en commun binaire est permise grâce au déplacement de la couche de normalisation par lot avant la couche de mise en commun. L'utilisation d'une couche de mise en commun binaire permet de simplifier l'exécution du réseau de neurones transformé. Ainsi, le réseau de neurones transformé peut être exécuté plus rapidement.
  • Avantageusement, la couche de mise en commun du réseau de neurones artificiel entraîné est une couche de mise en commun maximale, et cette couche de mise en commun est converti en une couche de mise en commun maximale binaire. Une couche de mise en commun maximale binaire présente l'avantage de pouvoir être mise en oeuvre par une simple opération logique de type « ET », et peut donc être exécutée rapidement.
  • En variante, la couche de mise en commun du réseau de neurones artificiels entraîné est une couche de mise en commun minimale, et cette couche de mise en commun est converti en une couche de mise en commun minimale binaire. Une couche de mise en commun minimale binaire présente l'avantage de pouvoir être mise en oeuvre par une simple opération logique de type « OU », et peut donc être exécutée rapidement.
  • Dans un mode de mise en oeuvre avantageux, la couche de normalisation par lot du réseau de neurones artificiels entraîné et du réseau de neurones artificiels transformé est configurée pour effectuer une conversion binaire et un empaquetage des bits.
  • Selon un autre aspect, il est proposé un produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre un réseau de neurones artificiels comportant une couche de convolution binaire suivie d'une couche de normalisation par lot, puis d'une couche de mise en commun.
  • En particulier, il est proposé un produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre un réseau de neurones artificiels transformé obtenu par la mise en oeuvre d'un procédé tel que décrit précédemment.
  • Dans un mode de réalisation avantageux, la couche de convolution et la couche de normalisation par lot sont fusionnées.
  • De préférence, la couche de mise en commun est une couche de mise en commun binaire.
  • Avantageusement, la couche de mise en commun est une couche de mise en commun maximale binaire.
  • En variante, la couche de mise en commun est une couche de mise en commun minimale binaire.
  • Dans un mode de réalisation avantageux, la couche de normalisation par lot est configurée pour effectuer une conversion binaire et un empaquetage des bits.
  • Selon un autre aspect, il est proposé un microcontrôleur comprenant une mémoire dans laquelle est stocké un produit programme d'ordinateur tel que décrit précédemment, et une unité de calcul configurée pour exécuter ce produit programme d'ordinateur.
  • Selon un autre aspect, il est proposé un produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre un procédé tel que décrit précédemment.
  • D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels :
    • [Fig 1]
    • [Fig 2]
    • [Fig 3] illustrent des modes de réalisation et de mise en oeuvre de l'invention.
  • Les figures 1 et 2 illustrent un procédé de transformation d'un réseau de neurones artificiels entraîné TNN selon un mode de mise en oeuvre de l'invention.
  • Le procédé comporte une obtention 10, en entrée d'un logiciel d'intégration, du réseau de neurones artificiels entraîné TNN. L'entraînement sert à définir un réseau de neurones dont les performances sont optimales pour la résolution nominale et le moins dégradées possible pour la résolution réduite. Plus particulièrement, lors de l'entraînement du réseau de neurones, les poids du réseau de neurones sont ajustés, puis les performances du réseau modifié sont évaluées selon les différentes résolutions utilisées. Si les performances du réseau de neurones sont satisfaisantes, l'entraînement du réseau est arrêté. Ensuite, le réseau de neurones entraîné est fourni en entrée d'un logiciel d'intégration.
  • Le réseau de neurones entraîné TNN possède une succession de couches. Cette succession de couches comporte classiquement une couche de convolution CNV_b suivie d'une couche de mise en commun PL puis d'une couche de normalisation par lot BNL. Par exemple, la couche de convolution CNV_b peut être une couche de convolution 2D. La couche de convolution CNV_b est une couche binaire. La couche de mise en commun PL (en anglais « pooling layer ») peut être une couche de mise en commun maximale (« maxpool ») ou minimale (« minpool »). En particulier, la couche de mise en commun permet de combiner les sorties de la couche de convolution. La combinaison des sorties peut consister par exemple à prendre la valeur maximale (« maxPooling ») ou minimale (minpooling) des sorties de la couche de convolution. La couche de mise en commun permet de réduire la taille des cartes de sorties de la couche de convolution, tout en améliorant les performances du réseau de neurones. Le réseau de neurones entraîné peut comprendre une conversion binaire (en anglais « binarization ») et un empaquetage des bits (en anglais « bit-packing ») réalisés simultanément avec la couche de normalisation par lot BNL.
  • Un tel ordre des couches bien qu'optimal pour l'entraînement du réseau de neurones est moins performant pour son exécution. En effet, il est important d'avoir pour l'entraînement une couche de convolution CNV_b suivie de la couche de mise en commun PL avant la couche de normalisation par lot BNL. En particulier, la couche de normalisation par lot BNL permet d'obtenir en entrée de la couche de binarisation des données centrées réduites autour de zéro ayant une dynamique adaptée pour avoir une conversion binaire correcte. Placer la couche de normalisation par lot BNL après la couche de convolution CNV_b pose problème pour l'entraînement car la couche de normalisation par lot BNL serait effectuée sur l'ensemble des données générées en sortie de la couche de convolution CNV_b, de sorte que les données en sortie de la couche de normalisation par lot BNL seraient moins bien centrées réduites. Cela pose alors des problèmes de précision, du fait que certaines données en sortie de la couche de normalisation par lot seraient surpondérées et que d'autres données seraient perdues.
  • Toutefois, l'ordre des couches pour l'entraînement est moins performant pour l'exécution du réseau de neurones car il requiert une occupation mémoire importante pour stocker les données de sortie des couches, ainsi qu'un nombre important de cycles de traitement.
  • Afin d'optimiser le réseau de neurones entraîné, le procédé comporte ensuite une conversion 11 réalisée par le logiciel d'intégration. La conversion 11 permet de convertir le réseau de neurones entraîné TNN en un réseau de neurones transformé ONN, notamment optimisé.
  • La conversion comporte une réorganisation 111 des couches. La réorganisation 111 des couches correspond à une modification de l'ordre des couches du réseau de neurones.
  • En particulier, la couche de normalisation par lot BNL est déplacée pour succéder à la couche de convolution CNV_b. De la sorte, la couche de normalisation par lot BNL peut faire l'objet d'une fusion 112 avec la couche de convolution CNV_b. De même, la conversion binaire BNZ et l'empaquetage des bits BP sont réalisés simultanément avec la couche de normalisation par lot BNL.
  • Le déplacement de la couche de normalisation par lot BNL n'impacte pas la précision du réseau de neurones. Au contraire, ce déplacement permet d'améliorer les performances de l'exécution du réseau de neurones en termes de rapidité et d'occupation de mémoire. La couche de normalisation par lot BNL correspond alors à une comparaison des données en sortie de la couche de convolution CNV_b avec un seuil défini pendant l'entraînement du réseau de neurones. L'exécution d'une telle couche de normalisation par lot BNL est effectuée directement sur les données de sortie de la couche de convolution CNV_b, sans nécessité de nouveaux accès en mémoire.
  • Le déplacement 111 de la couche de normalisation par lot BNL permet de modifier la couche de mise en commun PL par une couche de mise en commun binaire PL_b. La couche de mise en commun binaire PL_b peut être une couche de mise en commun maximale binaire ou une couche de mise en commun minimale binaire.
  • Une couche de mise en commun maximale binaire peut être mise en oeuvre par une simple opération logique de type « ET ».
  • Une couche de mise en commun minimale binaire peut être mise en oeuvre par une simple opération logique de type « OU ».
  • Plus particulièrement, la sortie de la couche de mise en commun maximale binaire peut être calculée par l'expression logique suivante :
    MaxPool = [(A ^ Mask) & (B ^ Mask)] ^ Mask, où le symbole '^' correspond à une opération logique de type 'OU EXCLUSIF' (`XOR'), le symbole '&' correspond à une opération logique de type `ET', `Mask' correspond à un masque prenant pour valeur `0' lorsqu'un paramètre de mise à l'échelle de la normalisation par lot est positif et pour valeur '1' lorsque le paramètre de mise à l'échelle de la normalisation par lot est négatif.
  • La sortie de la couche de mise en commun minimale binaire peut être calculée par l'expression logique suivante :
    MinPool = [(A ^ Mask) | (B ^ Mask)] ^ Mask, où le symbole '^' correspond à une opération logique de type 'OU EXCLUSIF' (`XOR'), le symbole 'l' correspond à une opération logique de type 'OU', `Mask' correspond à un masque prenant pour valeur `0' lorsque le paramètre de mise à l'échelle de la normalisation par lot est positif et pour valeur '1' lorsque le le paramètre de mise à l'échelle de la normalisation par lot est négatif.
  • En cas de remplissage (en anglais « pool padding ») de la couche de mise en commun PL_b, le masque est utilisé pour initialiser les valeurs de remplissage.
  • La sortie de la couche de mise en commun PL_b présente l'avantage de pouvoir être obtenue par une simple boucle de calcul.
  • Un tel procédé permet d'obtenir un réseau de neurones transformé ONN. En particulier, le déplacement de la couche de normalisation par lot BNL ne modifie pas la précision du réseau de neurones car le fait de placer la couche de normalisation par lot BNL après la couche de convolution CNV_b est équivalent mathématiquement au fait d'avoir la couche de normalisation par lot après la couche de mise en commun. En effet, la couche de normalisation par lot BNL effectue une transformation linéaire. Au contraire, le déplacement de la couche de normalisation permet de réduire le temps d'exécution du réseau de neurones, en diminuant le nombre de cycles de processeur pour exécuter le réseau de neurones. Le déplacement de la couche de normalisation par lot permet également de réduire l'occupation mémoire pour l'exécution du réseau de neurones.
  • Le réseau de neurones transformé est intégré dans un programme d'ordinateur NNC. Ce programme d'ordinateur comprend alors des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre le réseau de neurones transformé.
  • En particulier, le réseau de neurones transformé peut être embarqué dans un microcontrôleur. Comme illustré à la figure 3, un tel microcontrôleur présente alors une mémoire MEM configurée pour stocker le programme NNC du réseau de neurones transformé, et une unité de traitement UT configurée pour exécuter le réseau de neurones transformé.
  • Le procédé décrit précédemment en relation avec les figures 1 et 2 peut être mis en oeuvre par un autre programme d'ordinateur, ce programme d'ordinateur étant intégré dans le logiciel d'intégration. Dans ce cas, le programme d'ordinateur comprend alors des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre le procédé décrit précédemment.

Claims (14)

  1. Procédé de transformation d'un réseau de neurones artificiels entraîné (TNN) comportant une couche de convolution binaire (CNV_b) suivie d'une couche de mise en commun (PL) puis d'une couche de normalisation par lot (BNL), le procédé comprenant :
    - une obtention (10) du réseau de neurones artificiels entraîné (TNN), puis
    - une conversion (11) du réseau de neurones artificiels entraîné (TNN) dans laquelle l'ordre des couches du réseau de neurones artificiels entraîné (TNN) est modifié en déplaçant la couche de normalisation par lot après la couche de convolution (CNV), de façon à obtenir un réseau de neurones artificiels transformé (ONN).
  2. Procédé selon la revendication 1, dans lequel la couche de normalisation par lot (BNL) est fusionnée avec la couche de convolution (CNV_b).
  3. Procédé selon l'une des revendication 1 ou 2, dans lequel la couche de mise en commun (PL) est converti en une couche de mise en commun binaire (PL_b).
  4. Procédé selon la revendication 3 dans lequel la couche de mise en commun (PL) du réseau de neurones artificiel entraîné (TNN) est une couche de mise en commun maximale, et dans lequel cette couche de mise en commun (PL) est converti en une couche de mise en commun maximale binaire (PL_b).
  5. Procédé selon la revendication 3 dans lequel la couche de mise en commun (PL) du réseau de neurones artificiels entraîné est une couche de mise en commun minimale, et dans lequel cette couche de mise en commun (PL) est convertie en une couche de mise en commun minimale binaire (PL_b).
  6. Procédé selon l'une des revendications 1 à 5, dans lequel la couche de normalisation par lot (BNL) du réseau de neurones artificiels entraîné (TNN) et du réseau de neurones artificiels transformé (ONN) est configurée pour effectuer une conversion binaire et un empaquetage des bits.
  7. Produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre un procédé selon l'une des revendications 1 à 6.
  8. Produit programme d'ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en oeuvre un réseau de neurones artificiels comportant une couche de convolution binaire (CNV_b) suivie d'une couche de normalisation par lot (BNL), puis d'une couche de mise en commun (PL).
  9. Produit programme d'ordinateur selon la revendication 8, dans lequel la couche de convolution (CNV_b) et la couche de normalisation par lot (BNL) sont fusionnées.
  10. Produit programme d'ordinateur selon l'une des revendication 8 ou 9, dans lequel la couche de mise en commun (PL) est une couche de mise en commun binaire (PL_b).
  11. Produit programme d'ordinateur selon la revendication 10 dans lequel la couche de mise en commun (PL_b) est une couche de mise en commun maximale binaire.
  12. Produit programme d'ordinateur selon la revendication 10 dans lequel la couche de mise en commun (PL_b) est une couche de mise en commun minimale binaire.
  13. Produit programme d'ordinateur selon l'une des revendications 8 à 12, dans lequel la couche de normalisation par lot (BNL) est configurée pour effectuer une conversion binaire et un empaquetage des bits.
  14. Microcontrôleur comprenant une mémoire (MEM) dans laquelle est stocké un produit programme d'ordinateur selon l'une des revendications 8 à 13, et une unité de calcul (UT) configurée pour exécuter ce produit programme d'ordinateur.
EP23177406.8A 2022-06-15 2023-06-05 Procédé de transformation d'un réseau de neurones artificiels entrainé Pending EP4293577A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR2205831A FR3136874A1 (fr) 2022-06-15 2022-06-15 Procédé de transformation d’un reseau de neurones artificiels entrainé

Publications (1)

Publication Number Publication Date
EP4293577A1 true EP4293577A1 (fr) 2023-12-20

Family

ID=84053282

Family Applications (1)

Application Number Title Priority Date Filing Date
EP23177406.8A Pending EP4293577A1 (fr) 2022-06-15 2023-06-05 Procédé de transformation d'un réseau de neurones artificiels entrainé

Country Status (3)

Country Link
US (1) US20230409869A1 (fr)
EP (1) EP4293577A1 (fr)
FR (1) FR3136874A1 (fr)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755880B2 (en) * 2018-03-09 2023-09-12 Canon Kabushiki Kaisha Method and apparatus for optimizing and applying multilayer neural network model, and storage medium
CN109886392B (zh) * 2019-02-25 2021-04-27 深圳市商汤科技有限公司 数据处理方法和装置、电子设备和存储介质
CA3082617A1 (fr) * 2019-06-06 2020-12-06 Riskfuel Analytics Inc. Formation sur le reseau neuronal
US11699077B2 (en) * 2021-06-21 2023-07-11 Plumerai Limited Multi-layer neural network system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RESEARCH_TEAM: "Batch Norm Folding: An easy way to improve your network speed - Scortex", 30 June 2020 (2020-06-30), pages 1 - 12, XP093010552, Retrieved from the Internet <URL:https://scortex.io/batch-norm-folding-an-easy-way-to-improve-your-network-speed/> [retrieved on 20221222] *
UMUROGLU YAMAN YAMANU@IDI NTNU NO ET AL: "FINN A Framework for Fast, Scalable Binarized Neural Network Inference", PROCEEDINGS OF THE 2017 CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS , CHI '17, ACM PRESS, NEW YORK, NEW YORK, USA, 22 February 2017 (2017-02-22), pages 65 - 74, XP058538078, ISBN: 978-1-4503-4655-9, DOI: 10.1145/3020078.3021744 *

Also Published As

Publication number Publication date
US20230409869A1 (en) 2023-12-21
FR3136874A1 (fr) 2023-12-22

Similar Documents

Publication Publication Date Title
JP2018528521A (ja) メディア分類
FR2540263A1 (fr) Procede de reconnaissance automatique d&#39;une image a partir d&#39;une image correspondante de reference
TWI654600B (zh) 語音情緒辨識系統與方法以及使用其之智慧型機器人
WO2021206804A1 (fr) Reconnaissance vocale de séquence à séquence avec seuil de latence
EP0587232A1 (fr) Dispositif de codage d&#39;images fixes
CN111344720A (zh) 融合稀疏内核以近似卷积神经网络的完整内核
FR3062504A1 (fr) Detection automatique de fraudes dans un flux de transaction de paiement par reseaux de neurones integrant des informations contextuelles
CN118505715A (zh) 基于自适应反馈sam的遥感图像建筑物分割方法及相关装置
EP4071672A1 (fr) Classification de pannes inconnues dans un système de communications électroniques
EP4293577A1 (fr) Procédé de transformation d&#39;un réseau de neurones artificiels entrainé
EP0449353A1 (fr) Dispositif de traitement de données et procédé pour sélectionner des mots de données contenus dans un dictionnaire
EP3555816B1 (fr) Procédé de détermination de l&#39;appartenance d&#39;une donnée à une base de données et produit programme d&#39;ordinateur et support d&#39;informations associés
FR3144361A1 (fr) Procédé amélioré d’apprentissage sensible à la quantification pour un réseau de neurones
EP2804175A1 (fr) Procédé de reconnaissance vocale visuelle par suivi des déformations locales d&#39;un ensemble de points d&#39;intérêt de la bouche du locuteur
EP3966739A1 (fr) Procédé d&#39;analyse automatique d&#39;images pour reconnaître automatiquement au moins une caractéristique rare
FR2938951A1 (fr) Procede de structuration d&#39;une base de donnees d&#39;objets.
EP3764286A1 (fr) Procédé et outil informatique de détermination de fonctions de transferts entre des paires de couches successives d&#39;un réseau de neurones
CN117744715A (zh) 一种目标检测网络的压缩方法、装置、设备及介质
WO2023055614A1 (fr) Incorporation de compression pour un apprentissage de représentation efficace dans un graphe
FR3089329A1 (fr) Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’obtenir une amélioration technique, par exemple un gain en mémoire.
WO2002095620A2 (fr) Procede de discretisation d&#39;attributs d&#39;une base de donnees
EP3901834B1 (fr) Procédé d&#39;implémentation d&#39;un réseau de neurones artificiels dans un circuit intégré
FR3101715A1 (fr) Procédé et système multimodal d’identification d’objets
US20250068447A1 (en) System and method for computing clustered explanation with special or limited values
EP4607479A1 (fr) Méthode et système d&#39;encodage d&#39;une liste de minuties d&#39;un dactylogramme

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230605

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR