Brevet FR3133468A1 — publié le 20230915

Procédé d’élagage d’un réseau de neurones comprenant une pluralité de neurones et une pluralité de connexions, chaque connexion comportant un poids, le réseau de neurones étant configuré pour calculer en sortie du réseau de neurones l’image d’une valeur en entrée du réseau de neurones par une fonction non linéaire, le procédé étant caractérisé en ce qu’il comprend la série d’étapes suivantes Sélection d’une connexion candidate parmi la pluralité de connexions, Répétition (S30) des deux sous-étapes suivantes : Détermination de la valeur, Calcul d’une dérivée partielle de la fonction en la valeur par rapport au poids de la connexion candidate, la répétition des deux sous-étapes déterminant une pluralité de dérivées partielles, Comparaison (S40) arithmétique à partir de la pluralité de dérivées partielles, Elagage (S50) de la connexion candidate si la comparaison arithmétique produit un résultat prédéterminé. Figure pour l’abrégé : figure 3 Procédé d’élagage de réseau de neurones et dispositif associé L’invention concerne les réseaux de neurones pour l’aide à la conduite d’un véhicule automobile. Aujourd’hui, Il existe des dispositifs électroniques d’aides à la conduite (ou d’automatismes de conduite) permettant une adaptation automatique (ou semi-automatique) de la trajectoire d’un véhicule en fonction de l’environnement du véhicule. Ces aides à la conduite nécessitent des analyses d’images complexes faisant appel à des réseaux de neurones. Cependant, les ressources, et surtout les temps disponibles pour mettre en œuvre les réseaux de neurones sont limités, car les systèmes d’aides à la conduite doivent être très réactifs. C’est pourquoi, lors de la conception de réseaux de neurones, après avoir défini et entrainé un réseau, des parties de ce réseaux de neurones sont élagués pour rendre le réseau de neurones plus rapide et moins consommateur de ressources avant de l’embarquer dans un véhicule automobile. Cependant, l’élagage de parties du réseau de neurones peut avoir un impact sur les résultats produits par le réseau de neurones. Pour remédier à ces inconvénients, l’invention concerne un procédé d’élagage d’un réseau de neurones comprenant une pluralité de neurones et une pluralité de connexions entre la pluralité de neurones, chaque connexion de la pluralité de connexion comportant un poids, le réseau de neurones étant configuré pour calculer en sortie du réseau de neurones l’image d’une valeur en entrée du réseau de neurones par une fonction non linéaire, le procédé étant caractérisé en ce qu’il comprend la série d’étapes suivantes Sélection d’une connexion candidate parmi la pluralité de connexions, Répétition des deux sous-étapes suivantes : Détermination de la valeur, Calcul d’une dérivée partielle de la fonction en la valeur par rapport au poids de la connexion candidate, la répétition des deux sous-étapes déterminant (autrement dit : produisant ou résultant) une pluralité de dérivées partielles (par rapport au poids de la connexion candidate) comprenant la dérivée partielle, Comparaison arithmétique à partir de la pluralité de dérivées partielles (par rapport au poids de la connexion candidate), Elagage (autrement dit : suppression) de la connexion candidate si la comparaison arithmétique produit un résultat prédéterminé. L’invention permet ainsi de prendre en compte l’influence des connexions sur le résultat en sortie du réseau de neurones, pour sélectionner les connexions à élaguer. Le réseau de neurones est un réseau de neurone électronique, c’est-à-dire mis en œuvre par un circuit électronique, par exemple un microcircuit, comprenant par exemple un processeur avec une mémoire ou un circuit électronique dédié. La valeur est par exemple une image. L’image peut être prétraitée ou comporter uniquement des éléments extraits d’une image initiale pertinents pour l’aide à la conduite du véhicule automobile. Selon un mode de réalisation, la comparaison arithmétique produit le résultat prédéterminé si chaque dérivée partielle de la pluralité de dérivées partielles est égale à 0. Ainsi, une connexion peut être supprimé s’il semble qu’elle n’a aucune influence sur la sortie du réseau de neurones. En variante, la comparaison arithmétique produit le résultat prédéterminé si la moyenne arithmétique de la pluralité de dérivés partielles est inférieure à un seuil. Par exemple, le procédé selon l’invention comprend une première étape d’élagage (par exemple manuelle), où les connexions d’un poids inférieur à un seuil sont par exemple supprimées, préalablement à une répétition de la série d’étapes. Selon un mode de réalisation, la série d’étapes est répétée pour toutes les connexions de la pluralité de connexion. En variante, la série d’étapes est réalisée uniquement pour les connexions dont le poids est inférieur à un seuil. Selon un mode de réalisation, le procédé comprend une étape d’entrainement du réseau de neurones préalablement à la série d’étapes pour une utilisation du réseau de neurones dans un véhicule automobile. Par exemple, l’étape d’entrainement entraine le réseau de neurones pour commander ou informer un système de contrôle de stabilité d’un véhicule automobile à partir d’une pluralité d’images d’un environnement du véhicule. Durant cet entrainement le réseau de neurones reçoit des images en entrée et calcule en sortie la commande ou l’information à transmettre à un système de stabilité d’un véhicule automobile. L’invention concerne également un programme d’ordinateur comprenant des instructions, exécutables par un microprocesseur ou un microcontroller, pour la mise en œuvre du procédé selon l’invention. Le procédé selon l’invention est par exemple mis en œuvre par un dispositif électronique. L’invention concerne donc aussi un dispositif électronique configuré pour mettre en œuvre les étapes du procédé selon l’invention Les caractéristiques et avantages du dispositif électronique et du programme d’ordinateur sont identiques à ceux du procédé, c’est pourquoi, ils ne sont pas repris ici. On entend qu’un élément tel que le dispositif électronique, ou un autre élément est « configuré pour » réaliser une étape ou une opération, par le fait que l’élément comporte des moyens pour (autrement dit « est conformé pour » ou « est adapté pour ») réaliser l’étape ou l’opération. Il s’agit préférentiellement de moyens électroniques, par exemple d’un programme d’ordinateur, de données en mémoire et/ou de circuits électroniques spécialisés. Lorsqu’une étape ou une opération est réalisée par un tel élément, cela implique généralement que l’élément comporte des moyens pour (autrement dit « est conformé pour » ou « est adapté pour » ou « est configuré pour ») réaliser l’étape ou l’opération. Il s’agit également par exemple de moyens électroniques, par exemple un programme d’ordinateur, des données en mémoire et/ou des circuits électroniques spécialisés, et/ou éventuellement de moyens mécaniques. D’autres caractéristiques et avantages de la présente invention apparaitront plus clairement à la lecture de la description détaillée qui suit comprenant des modes de réalisation de l’invention donnés à titre d’exemples nullement limitatifs et illustrés par les dessins annexés, dans lesquels. représente un dispositif électronique selon un mode de réalisation de l’invention. représente une situation pour lequel le réseau de neurones obtenu par le procédé et le dispositif est entrainé. représente le procédé de l’invention, selon un exemple de réalisation, mis en œuvre notamment par le dispositif électronique de la . Description détaillée d’un exemple de réalisation de l’invention En référence aux figures 1, 2 et 3, à l’étape S10, un réseau de neurones 111, mémorisé en mémoire d’un ordinateur 300, est entrainé par l’ordinateur 300 (autrement dit : le processeur de l’ordinateur 300) pour commander ou informer un système de contrôle de stabilité 130 d’un véhicule automobile 100 à partir d’une pluralité d’images d’un environnement du véhicule 100, comprenant par exemple le véhicule 200, acquise par une caméra 120. Durant cet entrainement le réseau de neurones 111 reçoit un ensemble D d’images et la commande ou l’information à transmettre à un système de stabilité d’un véhicule automobile. A l’étape S20, un utilisateur, en utilisant l’interface homme -machine 310 (par exemple : comprenant un clavier et écran) de l’ordinateur 300 élague le réseau de neurones 111, par exemple en supprimant les connexions qui ont un poids inférieur à un seuil. Cette suppression de connexions peut avoir des conséquences sur les autres connexions du réseau ; par exemple certaines connexions non-supprimées peuvent être rendues inactives, ce qui explique la nécessité des étapes suivantes qui vont les identifier et les éliminer. A l’étape S30, l’ordinateur 300 parcours l’ensemble des connexions du réseau de neurones 111 (et donc réalise une sélection d’une connexion), et calcule pour un ensemble d d’images, pour chaque connexion ayant un poids w : G w = où : d est un sous ensemble de D (approximant D) N(x) est une fonction non linéaire (mais linéaire par parties) réalisée par le réseau de neurones 111 (autrement dit : N(x) est la sortie du réseau de neurones 111 lorsque la donnée x est la valeur en entrée du réseau de neurones). Ainsi, dN (x)/ dw est la dérivée partielle en x par rapport à w. Les images x sont mémorisées dans la mémoire de l’ordinateur 300 et sont, par exemple, lues par l’ordinateur 300 (donc déterminées) séquentiellement dans la mémoire de l’ordinateur. Chaque image est par exemple un fichier regroupant les éléments pertinents d’une image issue par exemple d’une caméra commercialisée par la société Mobileye. A l’étape S40, pour chaque connexion du réseau de neurones 111, l’ordinateur détermine si G w = 0, (c’est-à-dire que chaque dérivée partielle de la pluralité de dérivées partielles est égale à 0) (il s’agit d’une étape de comparaison arithmétique) A l’étape S50, L’ordinateur 300 élague alors toutes les connexions ayant un poids w pour lequel G w = 0. A l’étape S60, le réseau de neurones est chargé dans la mémoire du dispositif électronique 110 du véhicule 100 afin d’être utilisé lorsque le véhicule 100 circule. Procédé d’élagage d’un réseau de neurones (111) comprenant une pluralité de neurones et une pluralité de connexions entre la pluralité de neurones, chaque connexion de la pluralité de connexion comportant un poids, le réseau de neurones étant configuré pour calculer en sortie du réseau de neurones l’image d’une valeur en entrée du réseau de neurones par une fonction non linéaire, le procédé étant caractérisé en ce qu’il comprend la série d’étapes suivantes Sélection d’une connexion candidate parmi la pluralité de connexions, Répétition (S30) des deux sous-étapes suivantes : Détermination de la valeur, Calcul d’une dérivée partielle de la fonction en la valeur par rapport au poids de la connexion candidate, la répétition des deux sous-étapes déterminant une pluralité de dérivées partielles, Comparaison (S40) arithmétique à partir de la pluralité de dérivées partielles, Elagage (S50) de la connexion candidate si la comparaison arithmétique produit un résultat prédéterminé, Le procédé d’élagage comprenant une étape d’entrainement (S10) du réseau de neurones (111) préalablement à la série d’étapes pour une utilisation du réseau de neurones (111) dans un véhicule automobile (100), l’étape d’entrainement (S10) entrainant le réseau de neurones (111) pour commander ou informer un système de contrôle de stabilité (130) du véhicule automobile (100) à partir d’une pluralité d’images d’un environnement du véhicule (100). Procédé d’élagage selon la revendication précédente dans lequel la comparaison (S40) arithmétique produit le résultat prédéterminé si chaque dérivée partielle de la pluralité de dérivées partielles est égale à 0. Procédé d’élagage selon l’une quelconque des revendications précédentes comprenant une première étape d’élagage (S20) préalablement à une répétition de la série d’étapes. Procédé d’élagage selon l’une quelconque des revendications précédentes dans lequel la série d’étapes est répétée pour toutes les connexions de la pluralité de connexion. Programme d’ordinateur comprenant des instructions, exécutables par un microprocesseur ou un microcontrôleur, pour la mise en œuvre du procédé selon l’une quelconque des revendications 1 à 4. Dispositif électronique (300) configuré pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 4.