FR 3152903 A1 20250314 FR 2309423 A 20230907 Procédé et dispositif d’optimisation d’au moins un réseau de neurones artificiels et programme d’ordinateur associé L’invention concerne un procédé (30) d’optimisation d’un réseau de neurones, en phase d’entrainement et comprenant les étapes suivantes : - décomposition tensorielle (32) dudit réseau de neurones et entrainement; - quantification (34) d’au moins un élément issu de ladite décomposition en utilisant une taille de bit apprise par entrainement dudit réseau de neurones en optimisant une fonction de coût prédéterminée ; - élagage (36) dudit réseau de neurones issu de ladite quantification en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé ; - recomposition d’au moins une couche dudit réseau de neurones élagué lorsqu’après élagage le rang de ladite couche est supérieur à un seuil de rang prédéterminé et entrainement; - obtention dudit réseau de neurones optimisé par suppression de toute quantification. Figure pour l'abrégé : Figure 2 Procédé et dispositif d’optimisation d’au moins un réseau de neurones artificiels et programme d’ordinateur associé La présente invention concerne un procédé d’optimisation d’au moins un réseau de neurones artificiels, ledit procédé étant mis en œuvre pendant la phase d’entrainement dudit au moins un réseau de neurones artificiels, ledit réseau de neurones comprenant une succession ordonnée de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente, ledit procédé étant mis en œuvre par un dispositif électronique d’optimisation d’au moins un réseau de neurones artificiels. 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 tel procédé d’optimisation d’au moins un réseau de neurones artificiels. L’invention concerne également ledit dispositif d’optimisation d’au moins un réseau de neurones artificiels. La présente invention concerne le domaine de l’intelligence artificielle et des systèmes embarqués et porte plus précisément sur l’optimisation des réseaux de neurones artificiels. Un réseau de neurones artificiels est classiquement un ensemble d’unités de calcul élémentaires, appelés neurones, reliés ensemble et dont des poids, des nombres flottants, sont propres à être appris classiquement par un algorithme prédéterminé afin d’optimiser un score de mérite (i.e. coût d’une fonction de coût) à partir d’un jeu de données d’apprentissage. De manière générale, plus le réseau de neurones artificiels est imposant en terme de taille (nombre de paramètres, profondeur, etc.), plus il sera capable de réaliser des fonctions complexes et à forte valeur ajoutée. Toutefois, la complexité des réseaux évolue actuellement bien plus rapidement que la puissance de calcul, ce qui pose de nombreux défis, notamment pour optimiser l’inférence sur systèmes embarqués (e.g. cibles embarquées) ou non, ou encore pour optimiser la consommation énergétique de façon plus globale. En effet, les modèles de réseau de neurones actuellement utilisés sont généralement surdimensionnés pour faciliter l’entrainement du fait d’éléments redondants. Optimiser les réseaux de neurones et réduire leur empreinte matérielle en supprimant les éléments redondants, ce qui revient sensiblement à une compression avec plus ou moins de perte, est à la fois intéressant pour les cibles embarquées dont le budget calculatoire est réduit et également pour les serveurs déportés afin d’en augmenter notamment les performances énergétiques. Pour ce faire, de nombreuses solutions ont été développées jusqu’ici telles que l’élagage structuré ou non structuré, la quantification linéaire ou non linéaire, l’approximation de faible rang via la décomposition de couche, la distillation de connaissance, etc. Chacune de ces solutions fonctionne bien séparément mais il reste toutefois très souvent de la redondance Une approche séquentielle de ces solutions est par ailleurs propre à augmenter le risque d’un optimum local seulement. L’application de différentes solutions oblige en outre à déterminer, notamment à la main ou encore via un « méta-algorithme » de recherche, un nombre importants d'hyperparamètres sans garantie d’une convergence pertinente ou de manière fastidieuse dans la plupart des cas. En effet, chaque méthode ajoute différents hyperparamètres à sélectionner, et ces hyperparamètres ont une interaction difficilement prévisible, ce qui complexifie l’entraînement. Le but de l’invention est alors de proposer une solution d’optimisation de réseaux de neurones artificiels qui permettent de réduire davantage efficacement la redondance tout en évitant les écueils des solutions précitées. A cet effet, l’invention a pour objet un procédé d’optimisation d’au moins un réseau de neurones artificiels, ledit procédé étant mis en œuvre pendant la phase d’entrainement dudit au moins un réseau de neurones artificiels, ledit réseau de neurones comprenant une succession ordonnée de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente, ledit procédé étant mis en œuvre par un dispositif électronique d’optimisation d’au moins un réseau de neurones artificiels, et comprenant les étapes successives suivantes : - décomposition tensorielle dudit au moins un réseau de neurones artificiels et entrainement dudit au moins un réseau de neurones artificiels décomposé ; - quantification d’au moins un élément issu de ladite décomposition en utilisant une taille de bit, ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée ; - élagage dudit au moins un réseau de neurones artificiels issu de ladite quantification en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé ; - recomposition d’au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche et entrainement dudit au moins un réseau de neurones artificiels recomposé ; - obtention dudit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée. Ainsi, la présente invention propose à la fois de combiner astucieusement trois solutions de compression de l’état de la technique et ce en les unifiant complètement pour les optimiser conjointement au cours de l’entrainement du réseau de neurones (de l’anglais finetuning ). Plus précisément, la présente invention a un potentiel de compression plus fort que celui de l’état de la technique actuel qui en général met en œuvre une voire deux des solutions parmi les trois combinées astucieusement selon la présente invention. Plus précisément, l’ordre de combinaison des étapes du procédé selon la présente invention est primordial car il permet premièrement de considérer l’approximation de faible rang (i.e. la sélection de rang de l’anglais low rank approximation ) comme de l’élagage structuré (de l’anglais pruning ) après la mise en œuvre de la première étape de décomposition, puis de considérer l’élagage structuré comme un cas particulier d’une quantification, par exemple linéaire (mais pas nécessairement), à faible granularité. Sous le prisme unique de ladite quantification à faible granularité, il est alors proposé selon la présente invention d’unifier les trois solutions, quasi-orthogonales, à savoir l’approximation de faible rang par décomposition, la quantification et l’élagage. En effet, c’est la quantification à faible granularité qui va impacter la fonction de mérite (i.e. fonction de coût) et par conséquent définir le taux de compression associé du réseau de neurones artificiels. Suivant d’autres aspects avantageux de l’invention, le procédé d’optimisation d’au moins un réseau de neurones artificiels comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le procédé (comprenant en outre, entre ladite étape de recomposition et ladite étape d’obtention, une étape d’uniformisation de chaque couche dudit au moins un réseau de neurones artificiels recomposé réentrainé par détermination d’une unique taille de bit associée à chaque couche et d’ajustement des poids dudit au moins un réseau de neurones artificiels uniformisé par réentrainement ; - chaque taille de bit appliquée lors de l’étape de quantification est un nombre décimal ; - ladite quantification est affine selon la formule : avec , et tel que avec une fonction d’écrêtage entre deux bornes prédéterminées et , et une fonction renvoyant une valeur arrondie ; - et ; - la fonction de coût prédéterminée est une fonction de coût régularisée exprimée sous la forme suivante : avec et , avec l’ensemble des tailles de bit de chaque élément, la moyenne du vecteur et des hyperparamètres, étant propre à inciter la réduction des tailles de bit b, et permettant d’inciter la polarisation desdites tailles de bit ; - ladite décomposition est une décomposition en valeurs singulières, ledit seuil de taille de bit prédéterminé est égal à un, et le seuil de rang prédéterminé est égal à avec la taille du produit tensoriel d’un tenseur, présentant au maximum deux dimensions ou replié en deux dimensions, dudit au moins un réseau de neurones artificiels avant ladite décomposition. L’invention a également 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’optimisation d’au moins un réseau de neurones artificiels tel que défini ci-dessus. L’invention concerne également un dispositif électronique d’optimisation d’au moins un réseau de neurones artificiels au cours de la phase d’entrainement dudit au moins un réseau de neurones artificiels, ledit réseau de neurones comprenant une succession ordonnée de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente, ledit dispositif comprenant : - un module de décomposition configuré pour mettre en œuvre une décomposition tensorielle dudit au moins un réseau de neurones artificiels, et pour mettre en œuvre un entrainement dudit au moins un réseau de neurones artificiels décomposé ; - un module de quantification configuré pour mettre en œuvre une quantification d’au moins un élément issu de ladite décomposition en utilisant une taille de bit, ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée ; - un module d’élagage configuré pour élaguer ledit au moins un réseau de neurones artificiels fourni par le module de quantification en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé ; - un module de recomposition configuré pour recomposer au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche et configuré pour entrainer ledit au moins un réseau de neurones artificiels recomposé ; - un module d’obtention configuré pour obtenir ledit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée. 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 un schéma illustrant un dispositif d’optimisation d’au moins un réseau de neurones artificiels selon un mode de réalisation de l’invention ; - FIG. 2 la FIG. 2 est un organigramme d’un procédé d’optimisation d’au moins un réseau de neurones artificiels selon un mode de réalisation de l’invention; - FIG. 3 la FIG. 3 illustre l’application du procédé de la FIG. 2 à un exemple de réseau de neurones artificiels. De manière générale, un réseau de neurones comporte une succession ordonnée 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 prenant leurs entrées sur les sorties des neurones de la couche précédente, ou bien sur les variables d’entrée pour la première couche. En variante, des structures de réseaux de neurones plus complexes peuvent être envisagées avec une couche qui peut être reliée à une couche plus lointaine que la couche immédiatement précédente. À chaque neurone est également associée une opération, c’est-à-dire un type de traitement, à effectuer par ledit neurone au sein de la couche de traitement correspondante. Chaque couche est reliée aux autres couches par une pluralité de synapses. Un poids synaptique est associé à chaque synapse, et chaque synapse forme une liaison entre deux neurones. C’est souvent un nombre réel, qui prend des valeurs positives comme négatives. Dans certains cas, le poids synaptique est un nombre complexe. Chaque neurone est propre à effectuer une somme pondérée des valeur(s) reçue(s) de la part des neurones de la couche précédente, chaque valeur étant alors multipliée par le poids synaptique respectif de chaque synapse, ou liaison, entre ledit neurone et les neurones de la couche précédente, puis à appliquer une fonction d’activation, typiquement une fonction non-linéaire, à ladite somme pondérée, et à délivrer en sortie dudit neurone, en particulier aux neurones de la couche suivante qui lui sont connectés, la valeur résultant de l’application de la fonction d’activation. La fonction d’activation permet d’introduire une non-linéarité dans le traitement effectué par chaque neurone. La fonction sigmoïde, la fonction tangente hyperbolique, la fonction de Heaviside sont des exemples de fonction d’activation. En complément facultatif, chaque neurone est également apte à appliquer, en outre, un terme additif, également appelé biais, à l’entrée de la fonction d’activation, et la valeur délivrée en sortie dudit neurone est alors l’issue de la fonction d’activation appliquée à la somme de la valeur de biais et de la somme pondérée. Un réseau de neurones à convolution est aussi parfois dénommé réseau de neurones convolutif ou par le sigle CNN qui renvoie à la dénomination anglaise de « Convolutional Neural Networks ». Dans un réseau de neurones à convolution, chaque neurone d’une même couche présente exactement le même schéma de connexion que ses neurones voisins, mais à différentes positions d'entrée. Le motif de connexion est appelé noyau de convolution ou, plus souvent, « kernel » en référence à la dénomination anglaise correspondante, ou encore filtre, la convolution agissant tel un filtrage. Un réseau convolutif est propre à comporter plusieurs motifs ou « kernels » par couche. Une couche de neurones entièrement connectée est une couche dans laquelle les neurones de ladite couche sont chacun connectés à tous les neurones de la couche précédente. Un tel type de couche est plus souvent dénommé selon le terme anglais de « fully connected », et parfois désigné sous la dénomination « couche dense ». La FIG. 1 est une représentation schématique d’un mode de réalisation d’un dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels au cours de la phase d’entrainement dudit au moins un réseau de neurones artificiels selon la présente invention. Plus précisément, un tel dispositif électronique 10 comprend tout d’abord un module 12 de décomposition configuré pour mettre en œuvre une décomposition tensorielle dudit au moins un réseau de neurones artificiels et pour mettre en œuvre un entrainement dudit réseau de neurones artificiels décomposé. Un tel module 12 de décomposition est propre à fournir une approximation de faible rang via ladite décomposition, cette approximation de faible rang étant avantageusement considérée, spécifiquement selon la présente invention, comme un élagage structuré, lui-même considéré comme un cas particulier d’une quantification linéaire à faible granularité. Toute décomposition tensorielle, propre à compacter l’énergie des différentes structures en quelques éléments significatifs qui servent de base pour régénérer approximativement ces éléments, est propre à être utilisée selon la présente invention. Selon une variante de réalisation optionnelle et préférentielle, ladite décomposition est une décomposition en valeurs singulières (de l’anglais singular value decomposition ). A titre d’alternative, d’autres variantes de décomposition sont propres à être utilisées selon la présente invention telles que : la décomposition à base d’une transformée en cosinus discrète (de l’anglais Discrete Cosine Transform ), ou encore d’une transformée en ondelettes discrètes DWT (de l’anglais Discrete Wavelet Transform ), une décomposition canonique polyadique CP (de l’anglais Canonical Polyadic Decomposition ), la décomposition de Tucker, la décomposition LU, etc. De plus, le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend un module 14 de quantification configuré pour mettre en œuvre une quantification d’au moins un élément issu de ladite décomposition, mise en œuvre par le module de décomposition 12, en utilisant une taille de bit (de l’anglais bit width ), ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée. En complément facultatif, chaque taille de bit appliquée par le module 14 de quantification est un nombre décimal, ce qui permet une convergence progressive sans discontinuité brutale, notamment au cours de passe(s) avant/arrière (de l’anglais forward/backward pass ). Un tel module de quantification 14 est notamment propre à mettre en œuvre une application (i.e. une fonction de quantification) qui permette une association d’un ensemble d’antécédents (possiblement infini) vers un ensemble fini d’éléments discrets dont la taille est une fonction croissante de la largeur (i.e. taille) de bit . Une telle quantification est propre à être exprimée de manière générale au moyen de l’expression suivante : , avec En variante optionnelle, ladite quantification est affine selon la formule suivante : avec , et tel que : , avec avec une fonction d’écrêtage entre deux bornes prédéterminées et , correspondant à des seuils de saturation, et une fonction renvoyant une valeur arrondie. Plus précisément, est un facteur d’échelle de quantification, , par défaut nul, est un facteur d’alignement de quantification, la taille de bit correspond à la largeur de bit de la structure considérée, par exemple le neurone. En complément facultatif, les deux seuils de saturation correspondant aux bornes de la fonction d’écrêtage sont exprimés sous la forme suivante : et . En ce qui concerne la fonction de coût, selon un complément facultatif, la fonction de coût prédéterminée est configurée pour inciter ledit au moins un réseau de neurones artificiels, lors de son entrainement au cours de ladite quantification, à réduire ladite taille de bit . Autrement dit, selon ce complément facultatif, il est proposé de régulariser la fonction de coût d’entraînement initiale du réseau par un terme représentatif de sa complexité. Pour ce faire, différentes fonctions de coût sont propres à être utilisées en fonction de l’objectif visé prédéterminé correspondant par exemple à l’optimisation du nombre d’opérations OPS par inférence, du nombre d’opérations binaires BOPS (de l’anglais binary operations ) par inférence, de l’empreinte mémoire du réseau, des normes L1 (notée par la suite) ou L2 (notée par la suite), d’un terme de polarisation prédéterminé, de la moyenne ou de la somme des largeurs de bit, ou de l’optimisation de toute combinaison possible de ces différents termes. En complément facultatif, la fonction de coût prédéterminée est avantageusement une fonction de coût régularisée (i.e. une fonction de régularisation) exprimée sous la forme suivante : avec la fonction de coût d’origine qui pénalise le modèle de réseau de neurones en cas de « mauvais » y, à laquelle est ajouté pour régularisation le facteur de pénalité , avec l’ensemble des tailles de bit de chaque élément, la moyenne du vecteur et des hyperparamètres, étant propre à inciter la réduction des tailles de bit , et permettant d’inciter la polarisation desdites tailles de bit. permet quant à lui de pondérer la régularisation, plus sa valeur est élevée et plus le réseau de neurones est compressé et inversement. Autrement dit, le taux de compression est une fonction croissante par rapport à . Selon cette option, à titre de bonus, le terme de pondération est par ailleurs borné selon l’expression de la fonction de coût ce qui permet de plus facilement déterminer automatiquement la valeur idéale pour un point de fonctionnement donné. Autrement dit, la fonction de coût régularisée ci-dessus utilise un facteur de pénalité mélangeant la norme L2, avec le terme où est propre à inciter la réduction des tailles de bit (i.e. de leur amplitude), et le terme de polarisation , t permettant d’inciter la polarisation des tailles de bit, en notant que par « polarisation » on entend la discrimination des neurones/structures inutiles dont la taille de bit est poussée vers zéro lors de ladite quantification avec optimisation. Autrement dit, la polarisation permet d’encourager le réseau de neurones lors de son entrainement à se séparer des neurones/structures inutiles correspondant au terme (plus t est élevé plus le taux de parcimonie augmente et inversement) de ceux qui sont nécessaires au bon fonctionnement du réseau de neurones correspondant au terme . Il est à noter que le terme de polarisation a été introduit par T. Zhuang dans le document intitulé « Neuron-level Structured Pruning using Polarization Regularizer » portant uniquement sur de l’élagage et non comme proposé selon la présente invention dans le cadre d’un procédé combinant astucieusement par unification les trois solutions, quasi-orthogonales, à savoir l’approximation de faible rang par décomposition, la quantification et l’élagage comme indiqué précédemment. Une telle fonction de coût régularisée permet avantageusement d’atteindre plus aisément une convergence, limite en principe davantage le risque de minimum local et le nombre d’hyperparamètres à déterminer, à savoir trois correspondant à , t et . Autrement dit, les trois paramètres , β, et précités sont propres à être appris au cours de l’entrainement mis en œuvre au sein du module de quantification, mais seul le paramètre rentre en compte dans la fonction de régularisation, appelée ci-dessus. Il est à noter que le module de quantification 14 utilise un optimiseur de ladite fonction de coût, correspondant notamment optionnellement à une fonction de régularisation pour déterminer les paramètres de quantification par structure. Pour ce faire, selon une première option, la taille de bit est apprise par ledit optimiseur en utilisant un algorithme de descente de gradient, notamment une descente de gradient stochastique SGD (de l’anglais Stochastic Gradient Descent ) ou une variante de celui-ci, connue lors de la mise en œuvre d’un apprentissage profond, notamment pour d’autres approches adaptées pour des petits réseaux par exemple, tels qu’un optimiseur utilisant un algorithme d’optimisation Adam (de l’anglais Adaptive Moment Estimation ), un algorithme de propagation de la moyenne quadratique RMSprop (de l’anglais Root Mean Square propagation ), un recuit simulé, une optimisation par colonie de fourmis, une optimisation par essaims particulaires, des algorithmes génétiques, etc. Tel qu’illustré par la FIG. 1 , le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend également un module 16 d’élagage configuré pour élaguer ledit au moins un réseau de neurones artificiels issu de ladite quantification, mise en œuvre par le module de quantification 14, en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé comme illustré par la suite en relation avec la FIG. 3 . Comme indiqué précédemment, selon la présente invention, l’élagage mis en œuvre par le module 16 d’élagage est considéré comme un cas particulier d’une quantification à faible granularité. De plus, comme indiqué précédemment, l’approximation de faible rang par décomposition, mise en œuvre via le module de décomposition 12, la quantification, mise en œuvre via le module de quantification 14, et l’élagage, mis en œuvre via le module d’élagage 16, sont unifiés sous le prisme unique de la quantification à faible granularité qui va impacter la fonction de coût précitée et par conséquent définir le taux de compression associé du réseau de neurones artificiels. Autrement dit, les trois approches d’optimisation d’un réseau de neurones, à savoir l’approximation de faible rang, la quantification et l’élagage sont optimisés conjointement via le prisme unique de la quantification à faible granularité au cours de l’entrainement du réseau de neurones considéré à optimiser. En particulier, le terme optionnel de polarisation/discrimination du facteur de pénalité P optionnel précité mise en œuvre par le module de quantification 14 permet avantageusement de contrôler l’intensité de l’élagage subséquent mis en œuvre par ledit module d’élagage 16. En complément optionnel, ledit seuil de taille de bit prédéterminé mis en œuvre par ledit module d’élagage 16 est égal à un. Sur l’exemple de la FIG. 1 , le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend également, réciproquement au module de décomposition 12, un module 18 de recomposition configuré pour recomposer au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage, mis en œuvre par le module d’élagage 16, le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche, et configuré pour entrainer ledit au moins un réseau de neurones artificiels recomposé. En effet, selon la décomposition, mise en œuvre par le module de décomposition 12 précité, le produit tensoriel de chaque couche est découpé en deux temps : Selon un exemple optionnel où chaque tenseur présente au maximum deux dimensions, pour une matrice A de taille N×M, qui nécessite donc N×M opérations, il est possible d’écrire avec de taille N×K et de taille K×M pour un nombre total d’opérations de et le rang de la décomposition. Si le rang K est suffisamment faible, c’est-à-dire dans l’exemple si , alors la décomposition a permis de réduire le nombre d’opérations nécessaires.. Dans le cas où le nombre d’opérations post-décomposition est plus important que pré-décomposition, la décomposition n’est pas intéressante, et le module 18 de recomposition est configuré pour recomposer, en calculant pour restaurer la complexité initiale, ce qui permet de garantir qu’on ne dégrade pas la solution. Ainsi, optionnellement (i.e. selon l’exemple optionnel précité où chaque tenseur présente au maximum deux dimensions), le seuil de rang prédéterminé utilisé par le module 18 de recomposition est égal à avec la taille du produit tensoriel dudit au moins un réseau de neurones artificiels avant ladite décomposition. Ce principe peut se généraliser à n’importe quelle forme de tenseur d’au moins deux dimensions, en passant par une représentation intermédiaire en deux dimensions 2D. Autrement dit, en cas de tenseur de plus de deux dimensions, une transformation intermédiaire consiste à transformer un tenseur de plus de deux dimensions en le repliant en den deux dimensions. Dans ce cas, le seuil de rang prédéterminé utilisé par le module 18 de recomposition est égal à avec et les dimensions des tenseurs transformés ou repliés en 2D. Sur l’exemple de la FIG. 1 , le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend également, un module 20 d’obtention configuré pour obtenir ledit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée. En complément facultatif, le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend également, un module 22 d’uniformisation configuré pour uniformiser chaque couche dudit au moins un réseau de neurones artificiels recomposé réentrainé par détermination d’une unique taille de bit associée à chaque couche et pour ajuster les poids dudit au moins un réseau de neurones artificiels uniformisé par réentrainement (i.e. de l’anglais finetuning ). Plus précisément, ledit module d’uniformisation optionnel 22 est propre à intervenir entre lesdits module de recomposition 18 et d’obtention 20 précités. Sur l’exemple de la FIG. 1 , le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels comprend une unité de traitement 24 formée par exemple d’une mémoire 26 et d’un processeur 28 associé à la mémoire 26, et le dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels est au moins en partie réalisé sous forme d’un logiciel, ou d’une brique logicielle, exécutable par le processeur, notamment le module de décomposition 12, le module de quantification 14, le module d’élagage 16, le module 18 de recomposition, le module d’obtention 20 et optionnellement le module d’uniformisation 22. La mémoire 26 du dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels est alors apte à stocker de tels logiciels ou briques logicielles, et le processeur 28 est alors apte à les exécuter. Lorsqu’une partie du dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels selon la présente invention est réalisée sous forme d’un ou plusieurs logiciels, c’est-à-dire sous forme d’un programme d’ordinateur, cette partie est en outre apte à être enregistrée 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 encore une carte optique. Sur le support lisible est alors mémorisé un programme d’ordinateur comportant des instructions logicielles. On décrit ci-après en relation avec la FIG. 2 , un exemple de fonctionnement du dispositif 10 électronique d’optimisation d’au moins un réseau de neurones artificiels selon la présente invention tel qu’illustré précédemment en relation avec la FIG. 1 . Plus précisément, le procédé 30 d’optimisation d’au moins un réseau de neurones artificiels illustré par la FIG. 2 est mis en œuvre pendant la phase d’entrainement dudit au moins un réseau de neurones artificiels. Plus précisément, le procédé 30 d’optimisation d’au moins un réseau de neurones comprend tout d’abord une première étape 32 de décomposition tensorielle D dudit au moins un réseau de neurones artificiels et d’entrainement dudit au moins un réseau de neurones artificiels ainsi décomposé, ladite première étape 32 étant mise en œuvre par le module de décomposition 12 précité en relation avec la FIG. 1 . De manière optionnelle, ladite décomposition (32) est une décomposition en valeurs singulières. Puis, le procédé 30 comprend une étape 34 de quantification Q d’au moins un élément issu de ladite décomposition en utilisant une taille de bit, ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée. L’étape 34 de quantification est mise en œuvre par le module de quantification 14 précité en relation avec la FIG. 1 . Les options de quantification précédemment citées en relation avec le module de quantification 14 de la FIG. 1 sont également propres à être mises en œuvre au cours dudit procédé 30, à savoir indépendamment ou en combinaison que : - chaque taille de bit appliquée lors de l’étape de quantification est un nombre décimal ; - ladite quantification est affine selon la formule : avec , et tel que avec une fonction d’écrêtage entre deux bornes prédéterminées et , et une fonction renvoyant une valeur arrondie, avec optionnellement : et ; - la fonction de coût prédéterminée est configurée pour inciter ledit au moins un réseau de neurones artificiels, lors de son entrainement au cours de ladite quantification, à réduire ladite taille de bit, avec optionnellement une fonction de coût prédéterminée correspondant à une fonction de coût régularisée exprimée sous la forme suivante : avec et , avec l’ensemble des tailles de bit de chaque élément, la moyenne du vecteur et des hyperparamètres, étant propre à inciter la réduction des tailles de bit b, et permettant d’inciter la polarisation desdites tailles de bit. Ensuite, le procédé 30 comprend une étape 36 d’élagage E dudit au moins un réseau de neurones artificiels issu de ladite quantification 34 en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé. Optionnellement, ledit seuil de taille de bit prédéterminé est égal à un. Puis, le procédé 30 comprend une étape 38 de recomposition d’au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage 36 le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche et entrainement dudit au moins un réseau de neurones artificiels recomposé. Optionnellement, le seuil de rang prédéterminé est égal à avec la taille du produit tensoriel d’un tenseur, présentant au maximum deux dimensions ou replié en deux dimensions comme expliqué précédemment dans le cas où le tenseur présente plus de deux dimensions, dudit au moins un réseau de neurones artificiels avant ladite décomposition 32. Optionnellement, tel qu’illustré par l’exemple de la FIG. 2 , le procédé 30 comprend à la suite de ladite étape 38 de recomposition R, une étape 40 d’uniformisation U de chaque couche dudit au moins un réseau de neurones artificiels recomposé réentrainé par détermination d’une unique taille de bit associée à chaque couche et d’ajustement des poids dudit au moins un réseau de neurones artificiels uniformisé par réentrainement (de l’anglais finetuning ). Plus précisément, l’unique taille de bit retenue au cours de cette uniformisation 40 correspond, pour chaque couche, à une taille de bit arrondie à une valeur entière figée. Le procédé 30 d’optimisation d’au moins un réseau de neurones artificiels comprend en outre une étape 42 d’obtention O dudit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée. Cette étape 42 d’obtention O est propre à être mise en œuvre, de manière non représentée, directement après ladite étape 38 de recomposition R, ou optionnellement tel que représenté sur la FIG. 2 après l’étape 40 optionnelle précitée. Comme indiqué précédemment, l’ordre précité de combinaison des étapes 32, 34, 36, 38, optionnellement 40, et l’étape 42 du procédé 30 selon la présente invention est primordial, car il permet premièrement de considérer l’approximation de faible rang comme de l’élagage structuré après la mise en œuvre de la première étape de décomposition, puis de considérer l’élagage structuré comme un cas particulier d’une quantification linéaire à faible granularité. La FIG. 3 illustre l’application 44 du procédé de la FIG. 2 à un exemple de réseau de neurones artificiels 46 à optimiser comprenant quatre couche, la première couche comprenant deux neurones d’entrée (neurones pour une couche linéaire, filtres pour une couche convolutive), la deuxième couche comprenant quatre neurones, la troisième couche comprenant trois neurones et la quatrième couche comprenant deux neurones de sortie, ledit réseau de neurones artificiels 46 à optimise étant reçu en entrée dudit procédé. La première étape de décomposition 32 de la FIG. 2 est tout d’abord illustrée par la flèche 48 dont la couleur blanche indique que cette étape ne comprend pas d’entrainement. Le résultat 50 de décomposition, notamment une décomposition en valeurs singulières est ensuite quantifié selon la flèche 52 dont la couleur noire est représentative du fait que ladite étape de quantification comprend en outre un entrainement dudit réseau de neurones jusqu’à obtenir une quantification optimale. Le résultat 54 de ladite quantification représente chaque élément du précédent résultat 50 de décomposition qui est associé à une taille de bit, représentée sur la FIG. 3 au moyen d’une échelle de taille de bit, ici illustrée via une échelle de textures 56, une taille de bit nulle étant représentée par la texture noire 560, une taille de bit égale à un étant représentée par la texture 562, une taille de bit égale à deux étant représentée par la texture 564, une taille de bit égale à trois étant représentée par la texture 566, une taille de bit égale à quatre étant représentée par la texture blanche 568. Il est à noter que l’exemple de la FIG. 3 basé sur des largeurs de bits entre zéro et quatre bits est uniquement illustratif, et que la présente invention est propre à être appliqué à d’autres largeurs de bits. Il est à noter qu’optionnellement et avantageusement la taille de bit est un nombre décimal si bien que l’ensemble des valeurs décimales de l’échelle de taille de bit 56 avec des textures intermédiaires, non représentées à des fins de simplicité, est propre à être utilisée de manière illustrative pour illustrer le résultat 54 de ladite quantification. Selon une autre représentation une échelle illustrative à base de nuances de couleur, notamment de nuances de gris, serait propre à illustrer la quantification avec une taille de bit correspondant à un nombre décimal, chaque changement de décimale étant associé à une nuance de couleur, notamment de gris distincte. Une telle quantification avec une taille de bit correspondant à un nombre décimal permet une convergence progressive sans discontinuité brutale, notamment au cours de passe(s) avant/arrière (de l’anglais forward/backward pass ). L’étape d’élagage subséquente est ensuite appliquée selon la flèche 58 dont la couleur noire est représentative du fait que ladite étape d’élagage comprend en outre un entrainement dudit réseau de neurones jusqu’à obtenir un élagage optimal 60 où les éléments du réseau de neurones quantifié 54 dont la taille de bit est inférieure à un seuil de taille de bit prédéterminé, notamment égal à un et représenté par la couleur noire, sont tous supprimés, si bien par exemple que le résultat d’élagage 60 comprend onze neurones contre dix-huit dans le dans le résultat 56 de quantification et également celui de décomposition 50. L’étape de recomposition subséquente est ensuite appliquée selon la flèche 62, dont la couleur blanche indique que cette étape ne comprend pas d’entrainement. Les deuxième et troisième couches ont ainsi été recomposées pour aboutir au résultat de recomposition 64 qui ne comprend plus que huit neurones. L’étape optionnelle d’uniformisation est ensuite appliquée selon la flèche 66, dont la couleur noire est représentative du fait que ladite étape optionnelle d’uniformisation comprend en outre un entrainement dudit réseau de neurones pour ajuster (de l’anglais finetuning ) les poids du modèle et obtenir le résultat 68 illustrant notamment le fait que la taille de bit de la deuxième couche est désormais commune aux deux neurones de la seconde couche alors qu’elle était différente dans le résultat précédent 64 de recomposition, la taille de bit arrondie à la valeur entière la plus importante ayant été retenue lors de l’uniformisation 66 optionnelle. A des fins de simplicité le résultat de l’étape d’obtention n’est pas représenté mais se déduit facilement car consistant à supprimer toute quantification (représentée sur le résultat 68 d’uniformisation par les nuances de gris utilisée pour représenter chaque point de neurones). L’homme du métier comprendra que l’invention ne se limite pas aux modes de réalisation décrits, ni aux exemples particuliers de la description, les modes de réalisation et les variantes mentionnées ci-dessus étant propres à être combinés entre eux pour générer de nouveaux modes de réalisation de l’invention. La présente invention permet ainsi d’unifier astucieusement trois solutions de compression, quasi-orthogonales, de réseau de neurones de l’état de la technique sous le prisme unique d’une quantification à faible granularité ce qui simplifie grandement la recherche d’hyperparamètres par rapport au cas où une telle unification n’est pas mise en œuvre, la juxtaposition séquentielle des trois solutions de compression de réseau de neurones et la recherche d’hyperparamètres associée étant alors beaucoup plus complexe en comparaison. Autrement dit, la présente invention propose de mêler astucieusement et conjointement trois optimisations quasi-orthogonales pour des gains maximums théoriques plus importants et un risque d’optimum local réduit, et leur unification sous le prisme unique d’une quantification à faible granularité permet de réduire le nombre d’hyperparamètres nécessaires. Procédé (30) d’optimisation d’au moins un réseau de neurones artificiels, ledit procédé étant mis en œuvre pendant la phase d’entrainement dudit au moins un réseau de neurones artificiels, ledit réseau de neurones comprenant une succession ordonnée de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente, ledit procédé étant mis en œuvre par un dispositif électronique d’optimisation d’au moins un réseau de neurones artificiels, et comprenant les étapes successives suivantes : - décomposition tensorielle (32) dudit au moins un réseau de neurones artificiels et entrainement dudit au moins un réseau de neurones artificiels décomposé ; - quantification (34) d’au moins un élément issu de ladite décomposition en utilisant une taille de bit, ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée ; - élagage (36) dudit au moins un réseau de neurones artificiels issu de ladite quantification en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé ; - recomposition d’au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche et entrainement dudit au moins un réseau de neurones artificiels recomposé ; - obtention dudit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée. Procédé (30) selon la revendication 1, comprenant en outre, entre ladite étape (38) de recomposition et ladite étape (42) d’obtention, une étape d’uniformisation (40) de chaque couche dudit au moins un réseau de neurones artificiels recomposé réentrainé par détermination d’une unique taille de bit associée à chaque couche et d’ajustement des poids dudit au moins un réseau de neurones artificiels uniformisé par réentrainement. Procédé (30) selon la revendication 1 ou 2, dans lequel chaque taille de bit appliquée lors de l’étape de quantification est un nombre décimal. Procédé (30) selon l’une quelconque des revendications précédentes, dans lequel ladite quantification est affine selon la formule : avec , et tel que avec une fonction d’écrêtage entre deux bornes prédéterminées et , et une fonction renvoyant une valeur arrondie. Procédé (30) selon la revendication 4, dans lequel et . Procédé (30) selon l’une quelconque des revendications précédentes, dans lequel la fonction de coût prédéterminée est une fonction de coût régularisée exprimée sous la forme suivante : avec et , avec l’ensemble des tailles de bit de chaque élément, la moyenne du vecteur et des hyperparamètres, étant propre à inciter la réduction des tailles de bit b, et permettant d’inciter la polarisation desdites tailles de bit. Procédé (30) selon l’une quelconque des revendications précédentes, dans lequel ladite décomposition (32) est une décomposition en valeurs singulières, ledit seuil de taille de bit prédéterminé est égal à un, et le seuil de rang prédéterminé est égal à avec la taille du produit tensoriel d’un tenseur, présentant au maximum deux dimensions ou replié en deux dimensions, dudit au moins un réseau de neurones artificiels avant ladite décomposition (32). Programme d’ordinateur comportant des instructions logicielles qui lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre, au moins en partie, d’optimisation d’au moins un réseau de neurones artificiels selon l’une quelconque des revendications précédentes. Dispositif (10) électronique d’optimisation d’au moins un réseau de neurones artificiels au cours de la phase d’entrainement dudit au moins un réseau de neurones artificiels, ledit réseau de neurones comprenant une succession ordonnée de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente, ledit dispositif étant caractérisé en ce qu’il comprend : - un module (12) de décomposition configuré pour mettre en œuvre une décomposition tensorielle dudit au moins un réseau de neurones artificiels, et pour mettre en œuvre un entrainement dudit au moins un réseau de neurones artificiels décomposé ; - un module (14) de quantification configuré pour mettre en œuvre une quantification d’au moins un élément issu de ladite décomposition en utilisant une taille de bit, ladite taille de bit étant apprise par entrainement dudit au moins un réseau de neurones artificiels en optimisant une fonction de coût prédéterminée ; - un module (16) d’élagage configuré pour élaguer ledit au moins un réseau de neurones artificiels fourni par le module de quantification en supprimant au moins un élément associé à une taille de bit inférieure à un seuil de taille de bit prédéterminé ; - un module (18) de recomposition configuré pour recomposer au moins une couche dudit au moins un réseau de neurones artificiels élagué lorsqu’après ledit élagage le rang de ladite couche est supérieur à un seuil de rang prédéterminé associé à ladite au moins une couche et configuré pour entrainer ledit au moins un réseau de neurones artificiels recomposé ; - un module (22) d’obtention configuré pour obtenir ledit au moins un réseau de neurones optimisé par suppression de toute quantification préalablement appliquée.