Brevet FR3123475A1 — publié le 20221202

Selon un aspect, il est proposé un procédé pour simplifier un réseau de neurones artificiels entraîné, le procédé comprenant les étapes suivantes : - obtenir (20) un réseau de neurones entraîné ayant des couches de neurones, chaque couche étant configurée pour recevoir au moins une entrée, chaque entrée étant reliée à au moins un neurone de la couche par une connexion appliquant un poids, appelé poids entraîné, à l’entrée, - et pour chaque entrée de chaque couche du réseau de neurones entraîné : ○ former (21) des groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, ○ calculer (22) un poids représentatif pour chaque groupe, le poids représentatif étant représentatif des poids du groupe, ○ remplacer (24) dans le réseau de neurones entraîné les poids entraînés de chaque groupe par le poids représentatif de ce groupe pour obtenir un réseau de neurones simplifié. Figure pour l’abrégé : Fig 3 Procédé d’optimisation du temps d’exécution d’un réseau de neurones artificiels Les modes de réalisation de la présente invention concernent les réseaux de neurones artificiels, et plus particulièrement l’optimisation du temps d’exécution de ces réseaux de neurones. Les réseaux de neurones artificiels sont utilisés dans l’industrie, les télécommunications et le divertissement, par exemple dans les appareils électroniques grand public, pour reconnaître des images, des sons, des gestes, et pour la commande de processus industriels. Les réseaux de neurones artificiels comprennent généralement une succession de couches de neurones. Cette succession de couches comprend une couche d’entrée configurée pour recevoir un ensemble de données, au moins une couche cachée et une couche de sortie configurée pour délivrer un résultat final. Chaque couche comprend au moins un neurone. Chaque neurone artificiel d’une couche reçoit au moins une entrée et produit une seule sortie qui peut être envoyée à au moins un neurone de la couche suivante. Ainsi, les entrées de chaque couche cachée sont transmises par la couche précédente du réseau de neurones. Chaque couche comprend un nombre de neurones qui peut être déterminé à l’étape de conception du réseau de neurones, en fonction de l’application concernée. La sortie d’un neurone dépend du type de neurone choisi à l’étape de conception. Par exemple, dans le perceptron, on applique des poids à toutes les sorties de la couche précédente afin d’obtenir des entrées pondérées. Ensuite, une somme pondérée est calculée en additionnant toutes les entrées pondérées du neurone. Il est possible d’ajouter une valeur de biais à la somme pondérée. Le résultat passe ensuite dans une fonction d’activation (généralement non linéaire) pour produire la sortie du neurone. En particulier, dans les types de neurones les plus courants, comme les neurones à convolution, on calcule une somme d’entrées pondérées. La valeur des poids et le biais sont déterminés lors d’une phase d’apprentissage du réseau de neurones. Dans la phase d’apprentissage, on utilise des données d’entrée externes connues, à partir desquelles on souhaite obtenir des données de sortie externes attendues correspondantes. En utilisant des poids initiaux et un biais initial, à partir des données d’entrée externes connues, on calcule des données de sortie initiales. Les poids initiaux et le biais initial sont ensuite modifiés afin de minimiser une fonction économique donnée par la différence entre les données de sortie externes attendues et les données de sortie initiales. Les réseaux de neurones artificiels comprennent généralement un très grand nombre de neurones. En conséquence, le temps d’exécution d’un réseau de neurones artificiels est élevé. De plus, l’exécution du réseau de neurones artificiels nécessite des ressources de calcul importantes, qui sont notamment adaptées pour exécuter le réseau de neurones en utilisant le traitement parallèle. Si le réseau de neurones artificiels est réalisé par un appareil électronique, par exemple dans un système embarqué comprenant un microcontrôleur, qui a des ressources de calcul limitées, le temps d’exécution est long, et n’est pas approprié pour des applications spécifiques. En effet, les systèmes embarqués exécutent le réseau de neurones de façon séquentielle. Des solutions pour réduire le temps d’exécution d’un réseau de neurones artificiels sont connues. La plupart de ces solutions font appel à un algorithme d’élagage. Dans un algorithme d’élagage, les neurones d’un réseau de neurones artificiels déjà entraîné sont classés selon leur importance, et les neurones les moins importants sont retirés du réseau de neurones artificiels afin de réduire les ressources de calcul nécessaires pour faire fonctionner le réseau. Ensuite, le réseau de neurones artificiels subit généralement un nouvel apprentissage à la fin de l’algorithme d’élagage. Mais le processus de nouvel apprentissage d’un réseau de neurones est long et coûteux relativement aux ressources de calcul. Il est donc souhaitable de ne réaliser qu’un apprentissage d’un réseau de neurones. De même, en fonction des applications, un nouvel apprentissage du réseau de neurones peut ne pas être possible. En outre, le réseau de neurones obtenu après élagage peut aussi être trop complexe pour être exécuté par un circuit intégré. En variante, il est possible d’utiliser un réseau de neurones artificiels moins complexe, par exemple ayant un faible nombre de neurones et de couches cachées. Ceci limite toutefois l’aptitude du réseau de neurones à résoudre des problèmes complexes. Il existe par conséquent un besoin pour fournir un procédé destiné à réduire le temps d’exécution d’un réseau de neurones artificiels, capable de surmonter les inconvénients de l’art antérieur. Selon l’invention, il est proposé un procédé pour simplifier un réseau de neurones artificiels entraîné, le procédé comprenant les étapes suivantes : - obtenir un réseau de neurones entraîné ayant des couches de neurones, chaque couche étant configurée pour recevoir au moins une entrée, chaque entrée étant reliée à au moins un neurone de la couche par une connexion appliquant un poids, appelé poids entraîné, à l’entrée, - et pour chaque entrée de chaque couche du réseau de neurones entraîné : ○ former des groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, ○ calculer un poids représentatif pour chaque groupe, le poids représentatif étant représentatif des poids du groupe, ○ remplacer dans le réseau de neurones entraîné les poids entraînés de chaque groupe par le poids représentatif de ce groupe pour obtenir un réseau de neurones simplifié. Il est également proposé un procédé d’exécution d’un réseau de neurones simplifié obtenu par le procédé susmentionné pour simplifier un réseau de neurones entraîné, comprenant, pour chaque couche du réseau de neurones simplifié, les étapes suivantes : - calculer, pour chaque entrée de la couche, des entrées pondérées en multipliant l’entrée par les poids représentatifs des différentes connexions reliées à cette entrée, et - pour chaque neurone de la couche : ○ calculer la somme des entrées pondérées et du biais reliés à ce neurone pour obtenir une valeur cumulée, ○ calculer la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. Ainsi, le procédé pour simplifier un réseau de neurones artificiels entraîné est mis en œuvre après un processus d’apprentissage du réseau de neurones artificiels. Le processus d’apprentissage du réseau de neurones artificiels permet de définir les poids entraînés des différentes couches du réseau de neurones. Ce procédé permet de modifier le réseau de neurones artificiels entraîné pour obtenir un réseau de neurones simplifié. Dans le réseau de neurones simplifié, les poids entraînés des couches du réseau de neurones entraîné sont remplacés par des poids représentatifs. De préférence, les poids représentatifs sont choisis de manière à minimiser une augmentation d’une fonction économique du réseau de neurones artificiels. En particulier, une partie des poids des connexions reliées à la même entrée peuvent avoir une valeur très similaire, ou même égale. Le remplacement des poids entraînés peut avoir un impact sur la fonction économique du réseau de neurones artificiels. Plus particulièrement, le remplacement d’une partie des poids entraînés peut avoir un plus grand impact sur la fonction économique que le remplacement d’autres poids entraînés. C’est pourquoi les groupes sont de préférence formés selon une fonction d’objectif qui prend en compte les gradients des poids par rapport à la fonction économique afin de choisir les poids représentatifs qui minimisent son augmentation. Ensuite, les poids entraînés sont remplacés par leurs poids représentatifs associés. Ceci permet de simplifier le réseau de neurones artificiels. Afin d’exploiter la simplification du réseau de neurones artificiels, on améliore l’exécution des réseaux de neurones. En particulier, les produits ne sont pas calculés neurone par neurone mais entrée par entrée de manière à réduire le nombre de produits à calculer et donc le temps d’exécution du réseau de neurones. De tels procédés ne nécessitent pas de nouvel apprentissage du réseau de neurones, puisque les poids représentatifs sont directement obtenus à partir des poids entraînés. Les procédés permettent de réduire les ressources de calcul pour exécuter le réseau de neurones. Par conséquent, le procédé peut être utilisé par un système embarqué ayant des ressources de calcul limitées, sans compromettre leur précision. Le procédé peut aussi être utilisé simultanément à d’autres techniques de réduction, comme l’élagage. Lors de l’exécution du réseau de neurones simplifié, la somme des entrées pondérées reliées à un neurone peut être réalisée après avoir calculé toutes les entrées pondérées. Néanmoins, de préférence, la somme des entrées pondérées est calculée en cumulant les entrées pondérées après chaque calcul d’une entrée pondérée de ce neurone. Dans ce cas, le procédé d’exécution du réseau de neurones simplifié comprend, pour chaque couche du réseau de neurones simplifié, les étapes suivantes : - pour chaque neurone de la couche : ○ initialiser une valeur cumulée sur un biais lié à ce neurone, - pour chaque entrée de la couche et pour chaque poids représentatif associé à cette entrée : ○ calculer l’entrée pondérée en multipliant le poids représentatif et l’entrée courante, ○ ajouter l’entrée pondérée à la valeur cumulée de tous les neurones en utilisant le poids représentatif courant, - pour chaque neurone de la couche : ○ calculer la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. Selon une mise en œuvre particulièrement avantageuse, le procédé comprend pour chaque entrée de chaque couche du réseau de neurones entraîné, les étapes suivantes : - former plusieurs ensembles différents de groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, - calculer un poids représentatif pour chaque groupe de chaque ensemble, le poids représentatif étant représentatif du poids du groupe, - sélectionner l’ensemble de groupes qui permet d’obtenir une fonction économique minimale lorsque l’on remplace les poids entraînés par les poids représentatifs, - remplacer dans le réseau de neurones entraîné les poids entraînés de chaque groupe de l’ensemble sélectionné par le poids représentatif de ce groupe pour obtenir le réseau de neurones simplifié. Ceci permet d’obtenir les poids représentatifs pour lesquels la précision du réseau de neurones simplifié est la plus proche de la précision du réseau de neurones entraîné initial. Avantageusement, l’ensemble de groupes qui permet d’obtenir une fonction économique minimale est sélectionné en utilisant la formule : où S i est un ensemble de groupes associé à une entrée i du neurone, S i,k sont les groupes d’un ensemble S i , K est le nombre de groupes S i,k de chaque ensemble S i , w i,j pour sont les poids entraînés de la couche appliquée à l’entrée i , est le poids représentatif pour les poids entraînés d’un groupe S i,k , et pour sont les gradients partiels de la fonction économique par rapport au poids courant w i,j . Chaque ensemble de groupes peut être calculé, par exemple en modifiant un algorithme de groupement bien connu, p. ex. un algorithme des k-moyennes, en utilisant la fonction économique susmentionnée. De préférence, le réseau de neurones simplifié est exécuté par un système embarqué. Il est toutefois également possible d’exécuter le réseau de neurones à l’aide d’un autre système de calcul. Selon un autre aspect, il est proposé un produit de programme informatique comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, font réaliser par l’ordinateur les opérations suivantes : - obtenir un réseau de neurones artificiels entraîné ayant des couches de neurones, chaque couche étant configurée pour recevoir au moins une entrée, chaque entrée étant reliée à au moins un neurone de la couche par une connexion appliquant un poids, appelé poids entraîné, à l’entrée, et font réaliser par l’ordinateur, pour chaque entrée de chaque couche du réseau de neurones, les opérations suivantes : ○ former des groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, ○ calculer un poids représentatif pour chaque groupe, le poids représentatif étant représentatif des poids du groupe, ○ remplacer dans le réseau de neurones entraîné les poids entraînés de chaque groupe par le poids représentatif de ce groupe pour obtenir un réseau de neurones simplifié. Selon un autre aspect, il est proposé un produit de programme informatique pour exécuter le réseau de neurones artificiels simplifié susmentionné, le programme informatique comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, font réaliser par l’ordinateur, pour chaque couche du réseau de neurones simplifié, les opérations suivantes : - calculer, pour chaque entrée de la couche, des entrées pondérées en multipliant l’entrée par les poids représentatifs des différentes connexions reliées à cette entrée, et font réaliser par l’ordinateur, pour chaque neurone de la couche, les opérations suivantes : ○ calculer la somme des entrées pondérées et d’un biais reliés à ce neurone pour obtenir une valeur cumulée, ○ calculer la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. De préférence, le programme informatique comprend des instructions qui, lorsque le programme est exécuté par un ordinateur, font réaliser par l’ordinateur, pour chaque couche du réseau de neurones simplifié, les opérations suivantes : - pour chaque neurone de la couche : ○ initialiser une valeur cumulée sur un biais lié à ce neurone, - pour chaque entrée de la couche et pour chaque poids représentatif associé à cette entrée : ○ calculer l’entrée pondérée en multipliant le poids représentatif et l’entrée courante, ○ ajouter l’entrée pondérée à la valeur cumulée de chaque neurone en utilisant le poids représentatif courant, - pour chaque neurone de la couche : ○ calculer la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. Selon un autre aspect, il est proposé un microcontrôleur comprenant une mémoire dans laquelle est stocké le programme informatique susmentionné pour exécuter un réseau de neurones artificiels comportant des couches de neurones. D’autres avantages et caractéristiques de l’invention apparaîtront à la lecture de la description détaillée de modes de réalisation et de mises en œuvre, en aucun cas restrictifs, et à l’étude des dessins annexés dans lesquels : et représentent de façon schématique divers modes de réalisation et mises en œuvre de l’invention. La montre un réseau de neurones artificiels NN. Le réseau de neurones NN comprend une succession de couches LY de neurones NR. La succession de couches LY comprend une couche d’entrée ILY configurée pour recevoir un ensemble de données, au moins une couche cachée HLY et une couche de sortie OLY configurée pour délivrer un résultat final. Chaque couche LY comprend au moins un neurone NR. Chaque couche LY est configurée pour recevoir au moins une entrée. Les couches cachées HLY sont configurées pour recevoir en entrée la ou les sortie(s) de la couche précédente. Chaque entrée d’une couche est reliée à au moins un neurone de la couche par une connexion CN qui applique un poids à l’entrée. La valeur des poids est déterminée lors d’une phase d’apprentissage du réseau de neurones. La montre un exemple d’une couche cachée donnée HLY d’un réseau de neurones artificiels entraîné. Dans cet exemple, la couche cachée donnée HLY a un nombre de neurones égal à L. Chaque neurone a un biais b 1 … b L . Chaque neurone a un nombre m de données d’entrée x i ( x 1 , …, x m ). Pour chaque donnée d’entrée x i , le réseau de neurones est entraîné à utiliser L poids entraînés w i,1 , …, w i,L , un pour chaque neurone N 1 ,…, N L . Les poids w i,1 , …, w i,L sont déterminés lors d’une phase d’apprentissage du réseau de neurones. Les neurones sont configurés pour délivrer respectivement des sorties , ,... . Les poids entraînés w i,1 , …, w i,L sont généralement différents les uns des autres. Toutefois, certains des poids des connexions reliées à la même entrée peuvent avoir une valeur très similaire, ou même égale. La montre un procédé pour simplifier un réseau de neurones entraîné. Le procédé comprend les étapes 20 à 22 qui sont mises en œuvre par un système informatique ayant des ressources de calcul importantes. En particulier, le système informatique comprend une mémoire qui stocke un programme informatique ayant des instructions qui, lorsque le programme est exécuté par un ordinateur, font mettre en œuvre par l’ordinateur le procédé pour simplifier le réseau de neurones entraîné. Les étapes 20 à 22 permettent d’obtenir un réseau de neurones simplifié à partir d’un réseau de neurones entraîné. La montre une couche cachée donnée HLY d’un tel réseau de neurones simplifié qui peut être obtenue à partir de la couche montrée sur la du réseau de neurones entraîné. À l’étape 20, le système informatique obtient le réseau de neurones entraîné. Les étapes 21 à 22 sont exécutées pour chaque entrée de chaque couche du réseau de neurones. En particulier, à l’étape 21, un algorithme de groupement est exécuté sur les poids entraînés w i,1 , …, w i,L des connexions reliées à l’entrée x i . Les poids entraînés sont divisés en un ensemble S i de K groupes S i,1 ,…, S i,K avec K plus petit que L. Chaque groupe S i,1 ,…, S i,K comprend au moins un poids entraîné w i,1 , …, w i,L , et est représenté par un poids représentatif , ... . La fonction économique utilisée dans l’algorithme de groupement, par exemple un algorithme des k-moyennes modifié, peut être : où S i,k sont les groupes d’un ensemble S i , K est le nombre de groupes S i,k de l’ensemble S i , w i,j pour sont les poids entraînés de la couche appliquée à l’entrée i , les groupes d’un ensemble comprenant L poids entraînés au total (w i,1 , w i,2 , …, w i,L ), est le poids représentatif pour les poids entraînés d’un groupe S i,k , et pour sont les gradients partiels de la fonction économique par rapport au poids courant w i,j . Pour maintenir une fonction économique acceptable, il est important de minimiser la différence entre les données de sortie du réseau de neurones modifié et les données de sortie qui seraient obtenues en utilisant le réseau de neurones entraîné et les données de sortie externes qui seraient obtenues en utilisant les poids représentatifs. Pour cela, on introduit les gradients des poids dans la fonction économique. En fait, en multipliant les gradients élevés au carré par la différence élevée au carré de chaque poids entraîné et de son poids représentatif, c’est-à-dire , l’algorithme de groupement obtient une estimation de l’augmentation de la fonction économique obtenue si l’on remplace w i,j par . Ensuite, une fois que l’ensemble optimal de groupes minimisant la fonction économique est sélectionné, le procédé comprend une étape 22. Dans cette étape 22, les poids entraînés de la couche appliquée à l’entrée donnée sont remplacés par les poids représentatifs associés aux groupes de l’ensemble. Plus particulièrement, les poids entraînés de la couche qui constituent un groupe sont remplacés par le poids représentatif de ce groupe. Ainsi, les poids entraînés qui composent le même groupe sont remplacés par le même poids représentatif dans le réseau de neurones. Comme indiqué ci-dessus, les étapes 21 à 22 sont exécutées pour chaque entrée de chaque couche. Quand toutes les couches du réseau de neurones ont été traitées, on obtient un réseau de neurones simplifié. Dans ce réseau de neurones simplifié, les poids entraînés similaires des connexions reliées à la même entrée d’une couche sont remplacés par un poids représentatif. Ce procédé permet ainsi de réduire le nombre de poids différents du réseau de neurones entraîné. La montre un procédé pour exécuter un réseau de neurones simplifié obtenu par le procédé susmentionné. Le procédé comprend des étapes 23 à 27 pour exécuter le réseau de neurones simplifié sur un système informatique final, comme un système embarqué. Le système embarqué peut comprendre un microcontrôleur MCU pour exécuter le réseau de neurones simplifié, comme montré sur la . En particulier, le microcontrôleur MCU comprend une mémoire MEM qui stocke un programme informatique PRG comportant des instructions qui, lorsque le programme est exécuté par un ordinateur, font mettre en œuvre par l’ordinateur le procédé pour exécuter le réseau de neurones simplifié. À l’étape 23, le réseau de neurones simplifié est transmis à un système informatique final. Le système informatique final peut ensuite exécuter le réseau de neurones. L’exécution de chaque couche du réseau de neurones suit un ordre particulier. Les étapes 24 et 27 sont réalisées pour chaque couche du réseau de neurones simplifié. Les étapes 25 et 26 sont réalisées pour chaque entrée pondérée différente de la couche, en progressant entrée par entrée. Pour l’exécution d’une couche donnée, le système informatique final commence par initialiser, à l’étape 24, une valeur cumulée a 1 …a L de chaque neurone de la couche en lui donnant la valeur du biais b 1 …b L du neurone. À l’étape 25, l’entrée pondérée courante pour l’entrée courante x i est calculée en multipliant une entrée par un poids représentatif d’une connexion reliée à cette entrée. Par exemple, pour une entrée donnée x i reliée aux neurones de la couche par les connexions associées à des poids , ... , le système informatique calcule les entrées pondérées , ... , une par une dans cette étape. Ensuite, à l’étape 26, le système informatique ajoute l’entrée pondérée courante à la valeur cumulée a 1 des neurones N 1 qui ont reçu l’entrée pondérée . Par exemple, les neurones N x , N y et N z peuvent partager la même somme pondérée . De cette manière, la valeur n’est calculée qu’une fois et est ajoutée aux trois valeurs cumulées a x , a y et a z . Ensuite, à l’étape 27, la fonction d’activation est calculée sur chaque neurone de la couche sur les sommes cumulées a 1 … a L pour obtenir les sorties … . Par exemple, pour exécuter le neurone N 1 de la figure 4, le système embarqué calcule la fonction d’activation du neurone sur la valeur cumulée a 1 pour obtenir la sortie du neurone N 1 . De même, pour exécuter le neurone N 2 , le système embarqué calcule la fonction d’activation du neurone sur la valeur cumulée a 2 pour obtenir la sortie du neurone N 2 . Pour exécuter le neurone N L , le système embarqué calcule la fonction d’activation du neurone sur la valeur cumulée a L pour obtenir la sortie du neurone N L . Le procédé permet d’améliorer l’exécution des réseaux de neurones. En particulier, les produits ne sont pas calculés neurone par neurone mais entrée par entrée afin de réduire le nombre de produits à calculer et donc de réduire le temps d’exécution du réseau de neurones. Un tel procédé ne nécessite pas de nouvel apprentissage du réseau de neurones, puisque les poids représentatifs sont directement obtenus à partir des poids entraînés. Le procédé permet de réduire les ressources de calcul pour exécuter le réseau de neurones. Par conséquent, le procédé peut être utilisé par un système embarqué ayant des ressources de calcul limitées, sans compromettre leur précision. Procédé pour simplifier un réseau de neurones artificiels entraîné, le procédé comprenant les étapes suivantes : - obtenir (20) un réseau de neurones entraîné ayant des couches de neurones, chaque couche étant configurée pour recevoir au moins une entrée, chaque entrée étant reliée à au moins un neurone de la couche par une connexion appliquant un poids, appelé poids entraîné, à l’entrée, - et pour chaque entrée de chaque couche du réseau de neurones entraîné : ○ former (21) des groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, ○ calculer (22) un poids représentatif pour chaque groupe, le poids représentatif étant représentatif des poids du groupe, ○ remplacer (24) dans le réseau de neurones entraîné les poids entraînés de chaque groupe par le poids représentatif de ce groupe pour obtenir un réseau de neurones simplifié. Procédé selon la revendication 1, comprenant les étapes suivantes : - former (21) plusieurs ensembles différents de groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, - calculer (22) un poids représentatif pour chaque groupe de chaque ensemble, le poids représentatif étant représentatif du poids du groupe, - sélectionner (23) l’ensemble de groupes qui permet d’obtenir une fonction économique minimale lorsque l’on remplace les poids entraînés par les poids représentatifs, - remplacer (24) dans le réseau de neurones entraîné les poids entraînés de chaque groupe de l’ensemble sélectionné par le poids représentatif de ce groupe pour obtenir le réseau de neurones simplifié. Procédé selon la revendication 2, dans lequel l’ensemble de groupes qui permet d’obtenir une fonction économique minimale est sélectionné en utilisant la formule : , où S i sont les différents ensembles de groupes, S i,k sont les groupes d’un ensemble S i , K est le nombre de groupes S i,k de chaque ensemble S i , w i,j sont les poids entraînés de la couche, les groupes d’un ensemble comprenant L poids entraînés au total, est le poids représentatif pour les poids entraînés d’un groupe S i,k , et pour sont les gradients partiels de la fonction économique par rapport au poids courant w i,j . Procédé pour exécuter un réseau de neurones simplifié obtenu par un procédé selon l’une quelconque des revendications 1 à 3, comprenant, pour chaque couche du réseau de neurones simplifié, les étapes suivantes : - calculer (26), pour chaque entrée de la couche, des entrées pondérées en multipliant l’entrée par les poids représentatifs des différentes connexions reliées à cette entrée, et - pour chaque neurone de la couche : ○ calculer (27) la somme des entrées pondérées et du biais reliés à ce neurone pour obtenir une valeur cumulée, ○ calculer (28) la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. Procédé selon la revendication 4, dans lequel le réseau de neurones simplifié est exécuté par un système embarqué. Produit de programme informatique comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, font réaliser par l’ordinateur les opérations suivantes : - obtenir (20) un réseau de neurones artificiels entraîné ayant des couches de neurones, chaque couche étant configurée pour recevoir au moins une entrée, chaque entrée étant reliée à au moins un neurone de la couche par une connexion appliquant un poids, appelé poids entraîné, à l’entrée, et font réaliser par l’ordinateur, pour chaque entrée de chaque couche du réseau de neurones entraîné, les opérations suivantes : ○ former (21) des groupes de poids entraînés des connexions de la couche reliée à ladite entrée de la couche, ○ calculer (22) un poids représentatif pour chaque groupe, le poids représentatif étant représentatif des poids du groupe, ○ remplacer (24) dans le réseau de neurones entraîné les poids entraînés de chaque groupe par le poids représentatif de ce groupe pour obtenir un réseau de neurones simplifié. Produit de programme informatique pour exécuter un réseau de neurones artificiels simplifié obtenu par un procédé selon l’une quelconque des revendications 1 à 3, le programme informatique comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, font réaliser par l’ordinateur, pour chaque couche du réseau de neurones simplifié, les opérations suivantes : - calculer (26), pour chaque entrée de la couche, des entrées pondérées en multipliant l’entrée par les poids représentatifs des différentes connexions reliées à cette entrée, et font réaliser par l’ordinateur, pour chaque neurone de la couche, les opérations suivantes : ○ calculer (27) la somme des entrées pondérées et du biais reliés à ce neurone pour obtenir une valeur cumulée, ○ calculer (28) la sortie du neurone en faisant passer la valeur cumulée dans une fonction d’activation du neurone. Microcontrôleur comprenant une mémoire (MEM) dans laquelle est stocké un produit de programme informatique (PRG) selon la revendication 7.