Brevet FR3103600A1 — publié le 20210528

PROCEDE DE DETERMINATION AUTOMATIQUE DE PARAMETRES D’UN RESEAU DE NEURONES ARTIFICIELS ET MICROCONTROLEUR POUR LA MISE EN ŒUVRE DU PROCEDE Un aspect de l’invention concerne un procédé (200) de détermination automatique de paramètres d’un réseau de neurones, comportant les étapes suivantes : Identification d’une géométrie ad hoc à une base de données (201) ; Pour chaque donnée d’une base de données d’apprentissage : Ajout d’une couche dans un modèle R (203) ; Pour chaque donnée d’une base de données de validation : Calcul d’un coefficient synaptique (204) et ajout d’une synapse dans le modèle R (205) ; Calcul d’une erreur d’apprentissage (206) et d’une erreur de validation (207) ; Arrêt du procédé (200) si l’erreur d’apprentissage est supérieure à un seuil et/ou si l’erreur de validation croît ; le nombre de couches du réseau correspondant au nombre de couches du modèle R et le nombre de synapses de réseau au nombre de coefficients synaptiques non nuls du modèle R. Figure à publier avec l’abrégé : Figure 2 PROCEDE DE DETERMINATION AUTOMATIQUE DE PARAMETRES D’UN RESEAU DE NEURONES ARTIFICIELS ET MICROCONTROLEUR POUR LA MISE EN ŒUVRE DU PROCEDE Le domaine technique de l’invention est celui des réseaux de neurones artificiels que nous proposons de substituer par des réseaux d’information convolutifs. La présente invention concerne un procédé de détermination automatique de paramètres d’un réseau de neurones artificiels et plus particulièrement de paramètres d’un réseau d’information convolutif se définissant comme un réseau de neurones artificiels généré automatiquement. En particulier, l’invention propose un procédé de détermination automatique du nombre de couches cachées, des variables de ces couches cachées comme le nombre de synapses ou le nombre de neurones, ainsi que des coefficients synaptiques du réseau de neurones artificiels. La présente invention concerne également un microcontrôleur, un produit-programme d’ordinateur et un support d’enregistrement pour la mise en œuvre du procédé. ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION Le réseau de neurones artificiels constitue le principal outil de l’apprentissage profond ou deep learning qui tente de modéliser des données afin d’être capable par la suite d’effectuer des tâches spécifiques avec de nouvelles données, comme des tâches de classification ou de détection. Un réseau de neurones artificiels est une structure complexe formée d’une pluralité de couches, chaque couche comportant au moins un neurone artificiel. Chaque neurone d’une couche est relié à au moins un neurone d’une couche voisine via une synapse artificielle à laquelle est affecté un coefficient synaptique. Classiquement, une fois que l’architecture du réseau de neurones artificiels est fixée, c’est-à-dire son nombre de couches et son nombre de neurones ou son nombre de synapses, les coefficients synaptiques sont déterminés lors d’une phase d’apprentissage grâce aux données d’une base de données d’apprentissage associant à une donnée d’entrée une donnée de sortie vraie. La phase d’apprentissage consiste à parcourir la base de données d’apprentissage et, pour chaque donnée d’entrée fournie au réseau de neurones artificiels, à mettre à jour les coefficients synaptiques à l’aide d’un algorithme d’optimisation, pour minimiser l’écart entre la sortie du réseau de neurones artificiels et la donnée de sortie vraie associée à la donnée d’entrée. Le nombre de couches et de neurones par couche définissant la capacité du réseau de neurones à apprendre, le nombre de couches et de neurones par couche ne cessent d’augmenter, multipliant ainsi le nombre de coefficients synaptiques à déterminer. La quantité de données d’apprentissage et de ressources de calcul et de mémoire nécessaires sont donc de plus en plus importantes, ce qui ne permet pas un apprentissage du réseau de neurones artificiels en embarqué, notamment sur microcontrôleur. De plus, il n’existe pas à ce jour de méthode permettant de déterminer automatiquement le nombre de couches et le nombre de synapses d’un réseau de neurones optimaux pour une tâche donnée, ces paramètres étant fixés via un choix humain reposant sur du savoir-faire. Il existe donc un besoin de déterminer automatiquement les paramètres d’un réseau de neurones artificiels, à savoir son nombre de couches, son nombre de synapses et ses coefficients synaptiques, dans un environnement embarqué, c’est-à-dire dans un environnement contraint en termes de ressources. L’invention offre une solution aux problèmes évoqués précédemment, en permettant de déterminer automatiquement les paramètres, c’est-à-dire le nombre de couches, le nombre de neurones par couche, le nombre de synapses et les coefficients synaptiques, d’un réseau de neurones artificiels implémenté sur un microcontrôleur. Ce réseau de neurones artificiels automatiquement généré est appelé réseau d’information convolutif. Un premier aspect de l’invention concerne un procédé mis en œuvre par ordinateur de détermination automatique de paramètres d’un réseau de neurones artificiels à partir d’une base de données [X, Y], un réseau de neurones artificiels comportant au moins une première couche et une deuxième couche comprenant chacune au moins un neurone artificiel, chaque neurone artificiel d’une première couche étant connecté à un neurone artificiel d’une deuxième couche via une synapse à laquelle est affecté un coefficient synaptique w, un réseau de neurones artificiels ayant pour paramètre un nombre de couches, un nombre de synapses et pour chaque synapse, un coefficient synaptique w, le procédé comportant les étapes suivantes : Identification d’une géométrie ad hoc à partir de la base de données [X, Y] et détermination d’une matrice d’adaptation M correspondant à la géométrie ad hoc ; Séparation de la base de données [X, Y] en une base de données d’apprentissage [X A , Y A ] et une base de données de validation [X V , Y V ] ; Pour chaque donnée de la base de données d’apprentissage [X A , Y A ] : Ajout d’une couche de neurones artificiels dans un modèle R de réseau de neurones artificiels ; Pour chaque donnée de la base de données de validation [X V , Y V ] : Calcul d’un coefficient synaptique w à partir de la donnée de la base de données d’apprentissage [X A , Y A ], de la donnée de la base de données de validation [X V , Y V ] et d’une distance d définie à partir de la matrice d’adaptation M ; Ajout, dans le modèle R de réseau de neurones artificiels, d’une synapse connectée à la couche ajoutée, à laquelle est affecté le coefficient synaptique w ; Calcul d’une erreur d’apprentissage V A à partir de la donnée de la base de données d’apprentissage [X A , Y A ] et du modèle R de réseau de neurones artificiels ; Calcul d’une erreur de validation V V à partir de la donnée de la base de données de validation [X V , Y V ] et du modèle R de réseau de neurones artificiels ; Si une première condition selon laquelle l’erreur d’apprentissage V A est supérieure à un premier seuil n’est pas vérifiée et/ou si une deuxième condition selon laquelle l’erreur de validation V V décroît n’est pas vérifiée, arrêt du procédé ; le nombre de couches du réseau de neurones artificiels correspondant au nombre de couches dans le modèle R de réseau de neurones artificiels et le nombre de synapses du réseau de neurones artificiels correspondant au nombre de synapses ayant un coefficient synaptique w non nul dans le modèle R de réseau de neurones artificiels. Grâce à l’invention, les paramètres d’un réseau de neurones artificiels, à savoir son nombre de couches, son nombre de synapses, ses coefficients synaptiques et in fine le nombre de neurones par couche, sont déterminés automatiquement, sans intervention humaine. En effet, tant que l’erreur d’apprentissage représentative de l’erreur entre le modèle défini à partir de la géométrie ad-hoc adaptée aux données mis à jour à chaque nouvelle donnée et la base de données d’apprentissage est élevée et tant que l’erreur de validation représentative du sur-apprentissage sur la base de données de validation décroît, une nouvelle couche est introduite et les coefficients synaptiques sont calculés pour chaque couche. La procédure est stoppée lorsque l’erreur de validation augmente ou lorsque l’erreur d’apprentissage est réduite jusqu’à un niveau prédéfini. Le procédé n’a donc recours à aucun algorithme d’optimisation basé sur la rétropropagation. Les ressources de calcul utilisées sont ainsi drastiquement réduites, de même que le volume de données nécessaire, typiquement d’un facteur de l’ordre de dix, si bien que le procédé est embarquable sur un environnement contraint en termes de ressources, comme un microprocesseur. De plus, le procédé est déterministe car il n’utilise aucun ingrédient stochastique comme la méthode de gradient stochastique, par exemple, pour l’optimisation. Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le procédé selon l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. Selon une variante de réalisation, la géométrie ad hoc est une géométrie Riemannienne. Selon une variante de réalisation compatible avec la variante de réalisation précédente, l’erreur d’apprentissage V A est définie par : Avec , la norme euclidienne. Ainsi, l’erreur d’apprentissage représente bien l’erreur entre le modèle défini à partir de la géométrie ad-hoc et la base de données d’apprentissage. Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, l’erreur de validation V V est définie par : Avec , la norme euclidienne. Ainsi, l’erreur de validation est représentative du sur-apprentissage. Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, chaque coefficient synaptique w est calculé en outre à partir d’une fonction noyau K dépendant d’une distance d définie à partir d’un produit scalaire associée à la géométrie ad hoc. Par exemple, la distance d se définit comme : Avec p, un nombre entier. Selon une sous-variante de réalisation de la variante de réalisation précédente, un coefficient synaptique w est défini par : Avec s un deuxième seuil. Ainsi, les coefficients synaptiques représentent l’influence des données d’apprentissage Y A aux points de validation X V à travers un opérateur de convolution et sont fonction de la géométrie ad-hoc. Selon une sous-variante de réalisation de la sous-variante de réalisation précédente, la fonction noyau est de type Gaussien. Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, la vérification de la première condition est réalisée simultanément à la vérification de la deuxième condition. Un second aspect de l’invention concerne un microcontrôleur comportant un calculateur configuré pour mettre en œuvre le procédé selon l’invention. Ainsi, le procédé peut être embarqué sur un environnement contraint en termes de ressources de calcul et de mémoire. Un troisième aspect de l’invention concerne un produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon l’invention. Un quatrième aspect de l’invention concerne un support d’enregistrement lisible par ordinateur, sur lequel est enregistré le produit-programme d’ordinateur selon l’invention. L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. La figure 1 montre une représentation schématique d’un réseau de neurones artificiels. La figure 2 est un schéma synoptique représentant les étapes du procédé selon l’invention. Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. Un premier aspect de l’invention concerne un procédé de détermination automatique de paramètres d’un réseau de neurones artificiels, les paramètres comportant le nombre de couches, le nombre de neurones par couche, le nombre de synapses et les coefficients synaptiques du réseau de neurones artificiels. Un réseau de neurones artificiels dont les paramètres sont déterminés automatiquement est appelé réseau d’information convolutif. Dans la suite de la demande, on utilisera indifféremment les termes de « neurone « et de « neurone artificiel ». La figure 1 montre une représentation schématique d’un réseau de neurones artificiels 100. Un réseau de neurones 100 comporte au moins deux couches 103 comportant chacune au moins un neurone artificiel 101. Sur la figure 1, le réseau de neurones 100 comporte trois couches 103 comportant chacune trois neurones 101. Chaque neurone 101 de chaque couche 103 est connecté à chaque neurone 101 de la couche 103 précédente et à chaque neurone 101 de la couche 103 suivante. Les neurones 101 d’une même couche ne sont pas connectés entre eux. Une connexion entre deux neurones 101 est appelée une synapse 102. Chaque synapse 102 est affectée d’un coefficient synaptique w. Le coefficient synaptique w de la synapse 102 reliant l’entrée du neurone k d’une couche quelconque à la sortie du neurone i de la couche précédente sera écrit dans la suite de la description suivant le formalisme . Une fois leur architecture fixée et leurs coefficients synaptiques déterminés, les réseaux de neurones 100 sont configurés pour réaliser de la prédiction à partir de données injectées en entrée du réseau de neurones 100, c’est-à-dire au niveau des entrées des neurones 101 de la première couche 103 de neurones 101, afin que ces données soit traitées successivement par cette première couche 103 puis par les couches 103 de neurones 101 suivantes. Les données numériques de sortie, c’est-à-dire celles obtenues au niveau des sorties de la dernière couche 103 de neurones 101, se présentent par exemple sous la forme d’un vecteur de probabilité Y qui fournit des informations de prédiction sur les données initiales. Ce vecteur peut être assimilé à un vecteur comprenant m coefficients Y 1 à Y m . Les données d’entrée se présentent sous la forme d’un vecteur X comprenant n coefficients X 1 à X n . Ce vecteur est défini dans un espace métrique déterminé. La première couche 103 du réseau de neurones 100 comprend ainsi n neurones 101, chaque neurone i étant affecté d’un poids synaptique et d’une fonction de transfert qui utilise en son sein une fonction distance. Chaque neurone i reçoit en entrée le coefficient X i du vecteur X. Une fonction de combinaison du neurone i de la première couche génère ainsi une valeur . La fonction de combinaison des neurones 101 de la première couche 103 génère donc un vecteur avec les coefficients à , et la fonction de transfert des neurones 101 de la première couche 103 génère un vecteur de sortie , à n coefficients à . Le vecteur de sortie de la première couche 103 de neurones 101 devient alors le vecteur d’entrée de la deuxième couche 103 de neurones 101, et le traitement des données se propage dans les couches 103 de neurones 101 successives. Plus précisément, chaque neurone 101 d’une couche intermédiaire k reçoit en entrée les sorties des neurones 101 de la couche k-1. Par exemple, dans le cas d’une fonction de transfert entre deux couches 103 successives linéaire, le calcul du vecteur de sortie par le réseau de neurones 100 en sortie de la couche de neurones k prend la forme suivante : est le vecteur des données de sortie générées par les neurones 101 de la couche k-1 et injectées en entrée des neurones 101 de la couche k, et est le vecteur résultant du traitement du vecteur par la fonction de combinaison au niveau de la couche k de neurones 101. Le traitement des données par le réseau de neurones 100 est réalisé par propagation dans les couches 103 successives du réseau 100. La dernière couche 103 de neurones 101, renvoyant le vecteur de sortie Y, comprend un nombre de neurones m pouvant être différent de n. Comme précisé ci-dessus, le vecteur de sortie Y comprend ainsi m coefficients Y 1 à Y m . Ainsi, pour réaliser de la prédiction de données efficace, le réseau de neurones 100 doit disposer de coefficients synaptiques w présentant des valeurs adéquates. Le procédé selon le premier aspect de l’invention permet de déterminer automatiquement le nombre de couches 103, le nombre de synapses 102, et donc le nombre de neurones 101, et les coefficients synaptiques w d’un réseau de neurones artificiels 100 à partir d’une base de données qui, a un vecteur d’entrée X, associe un vecteur de sortie vrai Y, correspondant au vecteur de sortie du réseau de neurones artificiels 100 que l’on souhaiterait obtenir pour le vecteur d’entrée X . La figure 2 est un schéma synoptique représentant les étapes 201 à 205 du procédé 200 selon le premier aspect de l’invention. Une première étape 201 du procédé 200 consiste à identifier une géométrie ad-hoc à partir de la base de données (X, Y) pour adapter la géométrie de l’architecture du réseau de neurones 100 dans un premier temps, et de l’espace métrique dans lequel sont définis les opérateurs du réseau de neurones 100, notamment la fonction de transfert f des neurones 101, dans un deuxième temps, aux vecteurs d’entrée X injectés dans le réseau de neurones 100. La géométrie ad hoc est prise en compte à travers la définition d’une fonction distance non isotrope et non Euclidienne sur les vecteurs d’entrée X. Pour ce faire, une matrice nommée matrice d’adaptation M dans la suite de la description, est définie. M est par exemple une matrice diagonale. La matrice d’adaptation M permet par exemple l’introduction d’une géométrie Riemannienne. La matrice d’adaptation M de la norme de l’espace métrique dans lequel sont définies les fonctions de transfert f est par exemple déterminée de la façon suivante : où et représentent respectivement les valeurs maximale et minimale de la i ème composante du vecteur X d’entrée, la matrice étant de fait d’ordre n et définie positive. Le cas euclidien correspond à la matrice identité. La matrice d’adaptation M permet de définir une distance d définie par le produit scalaire associée à la géométrie ad-hoc précédemment identifiée, par exemple : Une fois l’architecture du réseau de neurones 100 déterminée, la distance d est utilisée dans la définition des fonctions de transfert f du réseau de neurones 100. On retrouve le cas euclidien avec p=1 et M la matrice identité. Une deuxième étape 202 du procédé 200 consiste à séparer la base de données (X, Y) en une base de données d’apprentissage (X A , Y A ) et une base de données de validation (X V , Y V ). La base de données d’apprentissage (X A , Y A ) représente par exemple entre 75 % et 90 % de la base de données (X, Y) et la base de données de validation (X V , Y V ) entre 10% et 25% de la base de données (X, Y). Une troisième étape 203 du procédé 200 consiste à ajouter une couche 103 de neurones artificiels 101 dans un modèle R de réseaux de neurones artificiels 100 pour une donnée de la base de données d’apprentissage (X A , Y A ). Le modèle R vise à reproduire le comportement d’un réseau de neurones artificiels 100 ayant pour paramètres les paramètres du modèle R. En particulier, pour un vecteur d’entrée donné, le modèle R et un réseau de neurones artificiels 100 ayant les mêmes paramètres que le modèle R ont le même vecteur de sortie. Le modèle R utilise la distance d définie à partir de la matrice d’adaptation M dans les fonctions de transfert f. La troisième étape 203 est réalisée pour chaque donnée de la base de données d’apprentissage (X A , Y A ) tant que le procédé 200 n’est pas arrêté. Initialement, le modèle R est vide. Une quatrième étape 204 du procédé 200 consiste à calculer un coefficient synaptique w pour la donnée de la base de données d’apprentissage (X A , Y A ) et pour une donnée de la base de données de validation (X V , Y V ). Le coefficient synaptique w est par exemple défini par : Avec s, un deuxième seuil prédéfini, K une fonction noyau et * l’opérateur de convolution. La fonction noyau K dépend de la distance d définie à partir de la matrice d’adaptation M. Le deuxième seuil peut être choisi par exemple entre 10 -4 à 10 -2 . K est par exemple un noyau Gaussien, c’est-à-dire que K se définit dans ce cas comme : Une cinquième étape 205 du procédé 200 consiste à ajouter une synapse 102 dans le modèle R de réseaux de neurones artificiels 100, la synapse 102 étant affectée du coefficient synaptique w précédemment calculé à la quatrième étape 204. La synapse 102 ajoutée est connectée à la couche 103 ajoutée à la troisième étape 203. Une sixième étape 206 du procédé 200 consiste à calculer une erreur d’apprentissage V A pour la donnée de la base de données d’apprentissage (X A , Y A ). L’erreur d’apprentissage V A se définit par exemple comme : Avec , la norme euclidienne, par exemple. Le premier seuil peut être choisi par exemple entre 10 - 6 et 10 - 3 . L’erreur d’apprentissage V A est initialisée à une valeur strictement supérieure au premier seuil. La septième étape 207 du procédé 200 consiste à calculer une erreur de validation V V pour la donnée de la base de données de validation (X V , Y V ). L’erreur de validation V V se définit par exemple comme : Avec , la norme euclidienne par exemple. On vérifie alors si une première condition C1 est vérifiée, à savoir si l’erreur d’apprentissage V A est supérieure à un premier seuil prédéfini et si une deuxième condition C2 est vérifiée, à savoir si l’erreur de validation V V décroît. On entend par « la valeur décroît », que la valeur précédemment calculée est supérieure ou égale à la valeur actuelle. La vérification de la première condition C1 peut avoir lieu avant la réalisation de la septième étape 207 dans un but d’optimisation algorithmique. L’erreur de validation V V est par exemple initialisée par : Avec , la norme euclidienne par exemple. Si la deuxième condition C2 est vérifiée, on réalise à nouveau les étapes 203 à 207 du procédé 200 pour une autre donnée de la base de données de validation (X V , Y V ) puis on vérifie à nouveau si la première condition C1 et la deuxième condition C2 sont vérifiées. On continue ainsi pour chaque donnée de la base de données de validation (X V , Y V ) tant que la première condition C1 et la deuxième condition C2 sont vérifiées. Si la première condition C1 ou la deuxième condition C2 n’est pas vérifiée, le procédé 200 s’arrête. Si les étapes 203 à 207 du procédé 200 sont réalisées pour chaque donnée de la base de données de validation (X V , Y V ), on réalise à nouveau la troisième étape 203 pour une autre donnée de la base de données d’apprentissage (X A , Y A ), c’est-à-dire qu’on ajoute une nouvelle couche 201 dans le modèle R du réseau de neurones 100 et on réalise les mêmes étapes précédemment décrites pour chaque donnée de la base de données de validation (X V , Y V ). Une fois le procédé 200 arrêté, le nombre de couches 103, le nombre de synapses 102 et les coefficients synaptiques w non nuls dans le modèle R de réseau de neurones artificiels 100 correspondent respectivement au nombre de couches 103, au nombre de synapses 102 et aux coefficients synaptiques w du réseau de neurones 100. Par exemple, si quatre coefficients synaptiques w non nuls ont été calculés pour la troisième couche 103 ajoutée, la troisième couche 103 du réseau de neurones 100 comporte quatre synapses 102, c’est-à-dire que quatre synapses 102 partent de la troisième couche 103. La détermination du nombre de neurones 101 d’une couche 103 donnée se déduit ensuite du nombre de synapses 102 des couches 103 précédentes et/ou du nombre de synapses 102 des couches 103 suivantes. Prenons l’exemple suivant : après la deuxième étape 202 du procédé 200, l’erreur d’apprentissage V A est initialisée à 3, l’erreur de validation V V est initialisée à 10 et le premier seuil est choisi à 10 -4 . A la troisième étape 203 du procédé 200, une première couche 103 est ajoutée au modèle R de réseau de neurones artificiels 100 pour une première donnée de la base de données d’apprentissage (X A , Y A ). A la quatrième étape 204 du procédé 200, un premier coefficient synaptique w est calculé pour la première donnée de la base de données d’apprentissage (X A , Y A ) et pour une première donnée de la base de données de validation (X V , Y V ). A la cinquième étape 205 du procédé 200, une première synapse 102 est ajoutée au modèle R de réseau de neurones artificiels 100 ayant le premier coefficient synaptique w pour coefficient synaptique w. A la sixième étape 206 du procédé 200, une première erreur d’apprentissage V A est calculée et vaut 3,8 et à la septième étape 207 du procédé 200, une première erreur de validation V V est calculée et vaut 8,3. La première condition C1 est vérifiée car la première erreur d’apprentissage V A est supérieure au premier seuil et la deuxième condition C2 est vérifiée car la première erreur de validation V V est inférieure à la valeur précédente de l’erreur de validation V V . La première erreur d’apprentissage V A et la première erreur de validation V V sont calculées à partir du modèle R de réseau de neurones artificiels 100 comportant une couche 103 connectée à une synapse 102. On réalise alors à nouveau la quatrième étape 204 et la cinquième étape 205 du procédé 200. Un deuxième coefficient synaptique w est calculé et une deuxième synapse 102 est ajoutée au modèle R. On réalise alors à nouveau la sixième étape 206 et la septième étape 207 du procédé 200. Une deuxième erreur d’apprentissage V A est calculée et vaut 2,5 et une deuxième erreur de validation V V est calculée et vaut 7,6. La première condition C1 est vérifiée car la deuxième erreur d’apprentissage V A est supérieure au premier seuil et la deuxième condition C2 est vérifiée car la deuxième erreur de validation V V est inférieure à la première erreur de validation V V . La deuxième erreur d’apprentissage V A et la deuxième erreur de validation V V sont calculées à partir du modèle R de réseau de neurones artificiels 100 comportant une couche 103 connectée à deux synapses 102. Les étapes 204 à 207 sont réalisées pour chaque donnée de la base de données de validation (X V , Y V ) tant que la première condition C1 et la deuxième condition C2 sont vérifiées. Si les étapes 204 à 207 ont été réalisées pour chaque donnée de la base de données de validation (X V , Y V ), la troisième étape 203 est alors réalisée pour une deuxième donnée de la base de données d’apprentissage (X A , Y A ) et ainsi de suite jusqu’à ce que la première condition C1 ou la deuxième condition C2 ne soit plus vérifiée et que le procédé 200 s’arrête. Par exemple, à l’issue du procédé 200, pour la première couche 103 du réseau de neurones 100, seulement deux coefficients synaptiques w non nuls ont été calculés donc la première couche 103 du réseau de neurones 100 comporte au plus deux neurones 101 : soit la première couche 103 comporte un neurone 101 et la deuxième couche 103 comporte deux neurones 101, soit la première couche 103 comporte deux neurones 101 et la deuxième couche 103 comporte un neurone 101. Pour la deuxième couche 103 du réseau de neurones 100, neufs coefficients synaptiques w non nuls ont été calculés. Etant donné que la deuxième couche 103 comporte au plus deux neurones 101 d’après l’itération précédente, soit la deuxième couche 103 comporte un neurone 101 et la troisième couche 103 comporte neufs neurones 101, soit la deuxième couche 103 comporte deux neurones 101 et la troisième couche 103 comporte trois neurones 101. Pour la troisième couche 103 du réseau de neurones 100, trois coefficients synaptiques w non nuls ont été calculés. La troisième couche 103 ne peut pas comporter neuf neurones 101 et ne peut donc que comporter trois neurones 101. Ainsi, la première couche 103 comporte un neurone 101, la deuxième couche 103 comporte deux neurones 101 et la troisième couche 103 comporte trois neurones 101. La quatrième couche 101 ne pourra donc comporter qu’un neurone 101. Le réseau de neurones 100 dont l’architecture est fixée grâce aux paramètres précédemment calculées fonctionne alors comme un réseau de neurones 100 classique, par propagation des données entre ses couches 103. La distance d associée à la géométrie ad-hoc pourra alors être utilisée dans les fonctions de transfert f du réseau de neurones 100. Le procédé 200 selon le premier aspect de l’invention est mis en œuvre par ordinateur, lequel ordinateur comprend classiquement des moyens de calcul et de traitement du type microprocesseur. L’ordinateur comprend par exemple au moins une unité de calcul de type CPU (de l’anglais Central Processing Unit) et/ou au moins une unité de calcul de type GPU (de l’anglais Graphics Processing Unit, un tel processeur permettant le calcul matriciel parallélisable), et/ou un processeur du type ASIC (de l’anglais application-specific integrated circuit) et/ou encore un FPGA (de l’anglais Field-Programmable Gate Array) et ou encore processeur ARM (de l’anglais Advanced-RISC Machines), processeur RISC-V (de l’anglais Reduced Instruction Set Computing). L’ordinateur comprend également au moins un moyen de stockage de type mémoire flash lisible par cet ordinateur sur lequel est enregistré un programme d’ordinateur comprenant une pluralité d’instructions qui, lorsqu’elles sont exécutées par l’ordinateur, conduisent ce dernier à implémenter le ou les algorithmes définissant le procédé 200 de l’invention. Dans le cas où le procédé 200 est destiné à être utilisé en embarqué, l’ordinateur est par exemple un microcontrôleur contraint en termes de ressources, et en particulier de ressources de calcul, de ressources mémoire et d’énergie comme par exemple un Raspberry Pi. Le procédé 200 selon le premier aspect de l’invention a été utilisé pour résoudre plusieurs problèmes d’apprentissage supervisé en embarqué, c’est-à-dire dans un environnement soumis à des contraintes de mémoire et de consommation d’énergie importantes. Le procédé 200 a plus particulièrement été utilisé dans les deux exemples suivants dans lesquels la base de données [X, Y] a été découpée en une base de données d’apprentissage [X A , Y A ] correspondant à 75% de la base de données [X V , Y V ] et en une base de données de validation [X V , Y V ] correspondant à 25% de la base de données [X V , Y V ]. Le premier exemple consiste à embarquer sur un quad, un Raspberry Pi embarquant le procédé 200, interfacée avec la sortie d’une caméra temps réel acquérant des images basse définition, de taille 400x600 pixels, correspondant chacune à 240 koctets. L’objectif est de détecter la présence d’obstacles dans les images acquises, c’est-à-dire d’affecter un label 1 aux images contenant au moins un obstacle et un label 0 aux images ne contenant pas d’obstacles. La base de données [X V , Y V ] comporte seulement une centaine d’images. La taille du réseau d’information convolutif généré automatiquement par le procédé 200 à l’aide de la base de données est de 2 mégaoctets. Le réseau d’information convolutif permet d’obtenir un taux de réussite supérieur à 80% sur les images acquises par la caméra alors que les réseaux de neurones artificiels classiques ne dépassent pas 50% à cause de la faible qualité des images et de la quantité réduite d’images dans la base de données. Le deuxième exemple consiste à embarquer sur un capteur basse fidélité en immersion pour des applications robotiques sous-marines, un Raspberry Pi embarquant le procédé 200. L’objectif est de générer en temps réel, à partir des informations fournies par le capteur basse fidélité, des informations qui seraient fournies par un capteur haute fidélité, beaucoup plus coûteux. Le capteur basse fidélité fournit un vecteur de réels de taille 16 comportant des estimations de l’accélération, du champ magnétique, de l’effet gyroscopique, des poussées cumulées de huit moteurs électriques et de la profondeur et l’on veut générer un vecteur de variables de sortie de nombres réels de taille 10 comportant les quaternions définissant l’orientation d’un robot et la définition haute-fidélité de son accélération. La base de données [X V , Y V ] comporte des vecteurs de variables de sortie obtenus par simulation. La taille du réseau d’information convolutif généré automatiquement par le procédé 200 à l’aide de la base de données est de 6 mégaoctets. Le réseau d’information convolutif permet de réduire l’erreur d’acquisition des capteurs basse fidélité de 95% à 5% en temps réel. Procédé (200) mis en œuvre par ordinateur de détermination automatique de paramètres d’un réseau de neurones artificiels (100) à partir d’une base de données [X, Y], un réseau de neurones artificiels (100) comportant au moins une première couche (103) et une deuxième couche (103) comprenant chacune au moins un neurone artificiel (101), chaque neurone artificiel (101) d’une première couche (103) étant connecté à un neurone artificiel (101) d’une deuxième couche (103) via une synapse (102) à laquelle est affecté un coefficient synaptique w, un réseau de neurones artificiels (100) ayant pour paramètre un nombre de couches (103), un nombre de synapses (102) et pour chaque synapse (102), un coefficient synaptique w, le procédé (200) étant caractérisé en ce qu’il comporte les étapes suivantes : Identification d’une géométrie ad hoc à partir de la base de données [X, Y] et détermination d’une matrice d’adaptation M correspondant à la géométrie ad hoc (201) ; Séparation de la base de données [X, Y] en une base de données d’apprentissage [X A , Y A ] et une base de données de validation [X V , Y V ] (202) ; Pour chaque donnée de la base de données d’apprentissage [X A , Y A ] : Ajout d’une couche (103) de neurones artificiels (101) dans un modèle R de réseau de neurones artificiels (100, 203) ; Pour chaque donnée de la base de données de validation [X V , Y V ] : Calcul d’un coefficient synaptique w à partir de la donnée de la base de données d’apprentissage [X A , Y A ], de la donnée de la base de données de validation [X V , Y V ] et d’une distance d définie à partir de la matrice d’adaptation M (204) ; Ajout, dans le modèle R de réseau de neurones artificiels (100), d’une synapse (102) connectée à la couche (103) ajoutée, à laquelle est affecté le coefficient synaptique w (205) ; Calcul d’une erreur d’apprentissage V A à partir de la donnée de la base de données d’apprentissage [X A , Y A ] et du modèle R de réseau de neurones artificiels (206) ; Calcul d’une erreur de validation V V à partir de la donnée de la base de données de validation [X V , Y V ] et du modèle R de réseau de neurones artificiels (207) ; Si une première condition (C1) selon laquelle l’erreur d’apprentissage V A est supérieure à un premier seuil n’est pas vérifiée et/ou si une deuxième condition (C2) selon laquelle l’erreur de validation V V décroît n’est pas vérifiée, arrêt du procédé (200) ; le nombre de couches (103) du réseau de neurones artificiels correspondant au nombre de couches (103) dans le modèle R de réseau de neurones artificiels (100) et le nombre de synapses (102) du réseau de neurones artificiels correspondant au nombre de synapses (102) ayant un coefficient synaptique w non nul dans le modèle R de réseau de neurones artificiels (100). Procédé (200) selon la revendication 1, caractérisé en ce que la géométrie ad hoc est une géométrie Riemannienne. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur d’apprentissage V A est définie par : Avec , la norme euclidienne. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que l’erreur de validation V V est définie par : Avec , la norme euclidienne. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce que la distance d se définit comme : Avec p, un nombre entier. Procédé (200) selon l’une quelconque des revendications précédentes, caractérisé en ce qu’un coefficient synaptique w est défini par : Avec K une fonction noyau et s un deuxième seuil. Procédé (200) selon la revendication 6, caractérisé en ce que la fonction noyau est de type Gaussien. Microcontrôleur caractérisé en ce qu’il comporte un calculateur configuré pour mettre en œuvre le procédé (200) selon l’une quelconque des revendications précédentes. Produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé (200) selon l’une quelconque des revendications 1 à 7. Support d’enregistrement lisible par ordinateur, sur lequel est enregistré le produit-programme d’ordinateur selon la revendication 9.