Brevet FR3113273A1 — publié le 20220211

L’invention concerne la conduite autonome d’un véhicule, et en particulier la génération d’une instruction de conduite à partir d’une donnée obtenue à partir d’au moins un capteur du véhicule, par exécution (34) sur un dispositif compris dans le véhicule d’un algorithme fondé sur un réseau de neurones FIG. 1 Compression automatisée de réseaux de neurones pour la conduite autonome La présente invention appartient au domaine de la conduite autonome, et en particulier aux réseaux de neurones utilisés dans ce domaine. Dans le détail, il concerne des réseaux neurones optimisés en taille et complexité par un compression automatisée obtenue lors de l’entrainement. On entend par « véhicule terrestre à moteur » tout type de véhicule tel qu’un véhicule automobile, un cyclomoteur, une motocyclette, un robot de stockage dans un entrepôt, etc. On entend par « réseau de neurones » tout type de réseau de neurones artificiels de la famille des méthodes de l’intelligence artificielle par apprentissage. Un réseau de neurones à convolution (CNN, convolutional neural networks), un réseau récursif à cascade de corrélation ou encore à rétropropagation sont des exemples de réseaux de neurones. Un réseau de neurones est aussi appelé réseau neuronal. Dans la présente invention, on utilise préférentiellement un réseau de neurones profonds, c’est-à-dire comportant au moins cinq couches. Les véhicules autonomes utilisent des réseaux de neurones pour assurer les fonctions de conduite autonome. Ces réseaux nécessitent de nombreux paramètres se présentant sous forme de poids des connexions du réseau, et pour les réseaux à convolutions, sous forme de noyaux de convolutions, qui ont un coût en terme de mémoire embarquée. En particulier, ces réseaux neuronaux nécessitent d’importantes ressources en calculs puisque riches en multiplications et additions tensorielles en virgule flottante : le réseau ResNet50, par exemple, peut requérir 3.8 milliards de FLOPS. De plus, ces réseaux peuvent requérir une mémoire importante : si le ResNet50 comporte environ 600 000 paramètres, les records en terme d’espace occupé peuvent atteindre la centaine de milliards de paramètres (la bibliothèque DeepSpeed de Microsoft, MARQUE DEPOSEE, vise à pouvoir entraîner de tels réseaux). De telles spécifications entraînent un besoin énergétique fort : les solutions connues peuvent consommer jusqu’à 30 Watts, ce qui peut nuire à l’autonomie du véhicule. La raison de telles demandes en ressources provient du fait que les performances des réseaux neuronaux bénéficient grandement d’un accroissement de leur nombre de paramètres pour leur entraînement, ce qui explique l’explosion de la taille des réseaux durant la dernière décennie. Toutefois, cela ne veut pas dire que, une fois entraînés, tous ces paramètres soient utiles, d’où l’apparition des techniques d’élagage : elles permettent de bénéficier de la capacité des grands réseaux à trouver des solutions optimales tout en limitant l’impact de cette taille sur le besoin en ressources par l’élimination des paramètres inutiles après l’entraînement des réseaux. Afin d’alléger un réseau neuronal profond, de sorte à réduire les ressources en calcul et en mémoire qu’il requiert, il est possible de supprimer, ou « élaguer », des connexions, parmi celles que l’on aura jugé les moins nécessaires d’après un critère qui peut varier en fonction des techniques. L’un des critères les plus répandu se fonde sur la valeur de ces paramètres, c’est-à-dire leur « magnitude » : les paramètres de moindre magnitude sont jugés moins importants et sont donc ceux qui sont éliminés en priorité. Toutefois, afin que l’élagage de paramètres puisse engendrer une accélération matérielle, il faut pour ça élaguer des neurones entiers, ce qui est appelé « élagage structuré ». Les documents suivants passent en revu diverses techniques d’élagage : The State of Sparsity in Deep Neural Networks (https://arxiv.org/pdf/1902.09574), Rethinking the Value of Network Pruning (https://arxiv.org/pdf/1810.05270) et What is the state of neural network pruning ? (https://arxiv.org/pdf/2003.03033.pdf ) ; Method and system for vision-centric deep-learning-based road situation analysis - US9760806B1 ; Systems and methods involving features of adaptive and/or autonomous traffic control - US20150134232A1 ; « AutoPrune: Automatic Network Pruning by Regularizing Auxiliary Parameters » (http://papers.nips.cc/paper /9521-autoprune-automatic-network-pruning- by-regularizing-auxiliary-parameters.pdf). L’élagage des paramètres est habituellement le résultat d’un processus arbitraire imposé manuellement au réseau durant l’entraînement sans que cela soit de son fait. Généralement, s’il permet un gain en nombre de paramètres, ce procédé va toutefois à l’encontre de l’algorithme utilisé pour l’apprentissage du réseau (rétropropagation du gradient) ce qui se traduit par une perte de performances du réseau, qui doit être ensuite ré-entraîné pour compenser la perte (fine-tuning). Quant à Autoprune, il utilise une technique, développée par « Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1 » (https://arxiv.org/pdf/1602.02830.pdf) qui implique une altération arbitraire du gradient (outil mathématique utilisé durant l’entraînement des réseaux de neurones). Cette altération consiste à calculer les gradients sur les paramètres binarisés mais à les appliquer sur ces mêmes paramètres non-binarisés, ce qui introduit une incohérence entre ce sur quoi les gradients sont appliqués et comment ils ont été calculés. Il existe donc un besoin d’économie de la mémoire et des ressources en calcul pour les réseaux de neurones embarqués sur véhicules autonomes. En outre, les coûts de calcul nécessaires pour l’entraînement du réseau par les techniques d’élagage de l’état de l’art sont trop importants. La présente invention vient améliorer la situation. A cet effet un premier aspect de l’invention concerne un procédé de conduite autonome d’un véhicule, pour la génération d’une instruction de conduite à partir d’une donnée obtenue à partir d’au moins un capteur du véhicule, par exécution sur un dispositif compris dans le véhicule d’un algorithme fondé sur l’application à la donnée d’un réseau de neurones, le procédé comportant les étapes de : réception de la donnée obtenue à partir du capteur ; génération de l’instruction de conduite par application de l’algorithme ; caractérisé en ce que le réseau de neurones est simplifié lors de son entraînement par un élagage, l’élagage consistant à entrainer le réseau de neurones en lui appliquant des masques, l’application des masques lors de l’entrainement supprimant au moins un noyau de convolution du réseau de neurones. L’élagage par simple application de masques configurés pour supprimer directement des noyaux de convolution se fait en un nombre réduit d’étape. En particulier, quand les procédés de compression habituels nécessitent trois étapes : entrainement – élagage – réentrainement (ces étapes pouvant être réitérées plusieurs fois), le procédé selon l’invention se limite à une seule étape (entrainement avec masques). La seule intervention extérieure (celle d’élaguer les poids) est garantie d’être sans aucun impact sur le réseau et d’être ainsi purement transparente tout en permettant une diminution du temps de calcul pour l’entraînement. Puisque les masques, qui sont des éléments du réseau constitués de paramètres, peuvent être appris lors de l’apprentissage, cela revient, pour le réseau, à apprendre de lui-même à réduire sa propre architecture durant l’entraînement de manière purement automatisée, naturelle et sans intervention extérieure pouvant dénaturer l’apprentissage. Dans un mode de réalisation, l’application des masques lors de l’entrainement comporte les sous-étapes de : obtention de données d’entrainement prédéterminée ; application du réseau de neurones aux données d’entrainement prédéterminée, l’application comportant une application d’une fonction d’activation. Dans un mode de réalisation, la fonction d’activation est une fonction d’activation non saturante. Dans un mode de réalisation, la fonction d’activation non saturant est une unité de rectification linéaire, ReLu. Ainsi, tous les paramètres négatifs des masques deviennent nuls. De cette manière, l’élagage est naturel, dérivable et ne rompt pas le graphe de calcul (utilisé par les frameworks, structure de conception informatique, de d’apprentissage profond pour effectuer l’apprentissage par rétropropagation de l’erreur, nécessaire à l’apprentissage). De plus, comme la dérivée de ReLU pour les termes négatifs est nulle, alors les feature maps (entrées/sorties entre les couches d’un réseau de neurones) annulées, du fait d’éléments négatifs des masques, ne peuvent être réactivés (comme ces paramètres négatifs ne peuvent plus apprendre). De ce fait, les neurones correspondants sont élagués pendant l’entraînement. Un deuxième aspect de l’invention concerne un programme informatique comportant des instructions pour la mise en œuvre du procédé selon le premier ou le deuxième aspect de l’invention, lorsque ces instructions sont exécutées par un processeur. Un troisième aspect de l’invention concerne un dispositif de conduite autonome d’un véhicule, pour la génération d’une instruction de conduite à partir d’une donnée obtenue à partir d’au moins un capteur du véhicule, par exécution sur un dispositif compris dans le véhicule d’un algorithme fondé sur l’application à la donnée d’un réseau de neurones, le dispositif comportant au moins un mémoire et au moins un processeur agencés pour effectuer les opérations de : - réception de la donnée obtenue à partir du capteur ; - génération de l’instruction de conduite par application de l’algorithme ; caractérisé en ce que le réseau de neurones est simplifié lors de son entraînement par un élagage, l’élagage consistant à entrainer le réseau de neurones en lui appliquant des masques, l’application des masques lors de l’entrainement supprimant au moins un noyau de convolution du réseau de neurones. Un quatrième aspect de l’invention concerne un véhicule configuré pour comprendre le dispositif selon le troisième aspect de l’invention. D’autres caractéristiques et avantages de l’invention apparaîtront à l’examen de la description détaillée ci-après, et des dessins annexés sur lesquels : est un diagramme illustrant les étapes d’un procédé selon un mode de réalisation de l’invention ; est un schéma illustrant l’application théorique de masques dans un mode de réalisation de l’invention ; est un schéma illustrant un résultat d’une convolution dans un mode de réalisation de l’invention ; est un schéma illustrant des résultats expérimentaux pour un mode de réalisation de l’invention ; illustre la structure d’un dispositif selon un mode de réalisation de l’invention. L’invention est décrite ci-après dans son application, non limitative, au cas d’un réseau de neurones de type réseau neuronal convolutif, CNN ou encore ConvNet, utilisé pour analyse une image acquise par une caméra d’un véhicule autonome. D’autres applications sont naturellement envisageables pour la présente invention. Par exemple, le procédé selon l’invention peut être mis en œuvre par le véhicule autonome pour des étapes de fusion de données de capteurs (agrégation des images acquises par les caméras, des données des radars, lidars, ultrasons ou encore laser) ou encore pour des étapes de décisions de conduite. La figure 1 illustre un procédé, selon un mode de réalisation de l’invention. A une étape 30, une donnée Img est obtenue à partir d’au moins un capteur d’un véhicule autonome. Dans le présent mode de réalisation, Img correspond à une pluralité d’images acquises par une caméra, telle qu’une caméra multifonction située en haut au centre du pare-brise du véhicule. A une étape 32, un traitement d’Img est effectué pour extraire des données P_Img exploitables par un réseau de neurones. Un tel traitement consiste par exemple à effectuer un premier filtrage des images pour accentuer des contrastes ou enlever des perturbations visuelles, par exemple introduites par des saletés sur la caméra. Un autre traitement consiste à une fusion avec des données d’autres capteurs, tels qu’un radar ou un laser, pour enrichir les images d’informations complémentaires ou d’informations de fiabilité relatives aux images. A une étape 34, un algorithme fondé sur un réseau de neurones N est appliqué à P_Img. Dans un mode de réalisation particulier, N est directement appliqué à Img et conduit à l’obtention d’une donnée S. Dans le cas d’une reconnaissance d’image, S comprend des données relatives à l’environnement du véhicule et typiquement d’identification d’objets pertinents pour la conduite autonome. Par exemple, S comprend l’information selon laquelle deux camions sont présents dans telle zone de l’image, un piéton proche d’un passage clouté, etc. Le réseau de neurones est simplifié lors de son entraînement par un élagage. L’élagage consiste à entrainer le réseau de neurones en lui appliquant des masques. L’application des masques lors de l’entrainement supprime au moins un noyau de convolution du réseau de neurones. En particulier, l’application des masques lors de l’entrainement comporte les sous-étapes de : obtention de données d’entrainement prédéterminée ; application du réseau de neurones aux données d’entrainement prédéterminée, l’application comportant une application d’une fonction d’activation. L’application de la fonction d’activation est mise en œuvre, classiquement, entre des couches du réseau. En outre, la fonction d’activation est configurée pour que les paramètres négatifs des neurones auxquels sont appliqués les données ainsi activées deviennent nuls. La fonction d’activation est une fonction d’activation non saturante telle qu’une unité de rectification linéaire, ReLu. Ainsi, l’apprentissage consiste à apprendre des masques constitués de paramètres tout à fait normaux et, avant d’effectuer le produit avec les feature maps, d’appliquer une fonction d’activation ReLU aux masques de sorte que tous les paramètres négatifs des masques deviennent nuls. Des explications relatives à l’annulation des paramètres négatifs sont données ci-après en référence aux figures 3 et 4. Dans la présente description, on entend par « paramètre » un paramètre appris. En effet, on distingue entre paramètres appris et paramètres non-appris. Il est courant, comme dans la présente description, de nommer les paramètres appris comme « paramètres » et les paramètres non-appris comme « meta-paramètres », ou encore « hypermaramètre ». Les paramètres de profondeur, pas et de marge ne sont pas appris, ce sont des méta-paramètres. Par contre, les poids des connexions ainsi que les éléments des noyaux de convolution sont des paramètres appris, que la présente invention se propose de compresser. A une étape 36, un post-traitement est appliqué à S et conduit à l’obtention de P_S. Par exemple, le post-traitement comporte l’application d’un bloc de décision, qui peut également être fondé sur l’application d’un réseau de neurones, traduisant les informations environnementales en instructions de conduite (angle volant, accélération, clignotants, etc.). A une étape 38, l’instruction de conduite est appliquée aux composants en charge de la conduite autonome. Par exemple, l’angle volant est transmis au calculateur ESP, Electronic Stability Program, pour correcteur électronique de trajectoire, pour application de l’angle volant. La figure 2 illustre l’application des masques conduisant à l’annulation de feature map. Le réseau de neurones N est constitué de couches appliquant une fonction sur une entrée et renvoyant une sortie, ces entrées et sorties pouvant être de dimensions différentes. L’exemple que nous allons prendre ici est celui de la couche de convolution, mais nous étendrons ce principe aux couches denses ou n’importe quel autre type de couche. Pour une autre couche, il suffit de faire en sorte que chaque paramètre du masque soit associé aux connections d’entrées ou aux sorties d’un même neurone. Considérons, comme illustré à la figure 2 une convolution prenant en entrée f in « feature maps » (en quelque sorte, des images à f in canaux) de taille in w x in h et renvoyant en sortie f out des feature maps de taille out w × out h . Sur la figure 2, à chaque feature map d’entrée et de sortie de la convolution 16 est associé un paramètre d’un masque. Il y a un produit 14 entre ces paramètres et leur feature map correspondante. De même en sortie avec le produit 18. Comme les paramètres des masques peuvent être nuls (grisés, références 10 et 12), cela revient à annuler ces feature maps (également en rouge). De ce fait, une telle annulation revient à faire comme illustré à la figure 3 . La figure 3 représente un résultat sur la convolution, représentée par l’opération 20. Nous pouvons alors considérer que les dimensions de sortie ne sont plus f in et f out mais f in ’ et f out ’ , ces dimensions valant alors la norme 0 (le nombre d’éléments non nuls) des masques correspondants : le réseau a bel et bien appris f in ’ et f out ’ , alors que ces dimensions sont, sans cette technique, des hyperparamètres (paramètres utilisés pour contrôler le procédé d’entrainement) dont le réseau dépend sans pouvoir les apprendre. La figure 4 est un schéma illustrant des résultats expérimentaux pour un mode de réalisation de l’invention. Afin d’inciter les masques à avoir un maximum d’éléments nuls (donc en fait négatifs pour notre implémentation), un terme de régularisation est ajouté à la fonction de perte. Ce terme de régularisation cherche à estimer le nombre de paramètres dédiés au traitement de chaque feature map. Pour un réseau N , de paramètres w , entraîné sur le jeu de données D avec la fonction de perte L et composé de couches indexées par i , le problème d’optimisation résolu par l’entraînement et auquel on a ajouté notre terme de régularisation s’écrit comme suit : Dans cette formule, s est la taille du noyau de convolution. C’est pourquoi elle est au carré, pour un noyau de taille 3, on a 3x3 paramètres. En faisant augmenter lambda (le coefficient caractérisant l’importance de la régularisation lors de l’entraînement), on force le réseau à réduire son nombre de paramètres. Le rapport entre nombre de paramètres et précision du réseau est montré à la Figure 4. Sur cette figure, la partie gauche correspond aux résultats expérimentaux sur l’ensemble de données CIFAR-10 avec un réseau ResNet20 et la partie droite aux résultats expérimentaux sur l’ensemble de données CIFAR-10 avec un réseau ResNet18. En particulier, sur ces deux parties, l’axe des ordonnées 40 correspond à un indice de précision de test et l’axe des abscisses 42 au nombre de paramètres. Le point avec le plus grand nombre de paramètres est celui pour lequel lambda était nul. Les autres points correspondent aux cas où lambda était non nul (et plus grand inversement proportionnellement au nombre de paramètres à la fin de l’entraînement). Dans un autre mode de réalisation, si le terme ajouté à l’équation précédente pénalise le nombre de paramètres, il est possible de pénaliser le nombre d’opérations en multipliant le terme de pénalisation, pour chaque couche, par . Ces deux types de pénalisation (mémoire et calcul) peuvent être combinées de sorte à laisser à l’entraînement le choix de quel aspect minimiser pour impacter le moins négativement les performances du réseau, puisque pénaliser les opérations risque d’inciter l’entraînement à élaguer le plus les premières couches qui sont pourtant les plus importantes à conserver pour les performances. La figure 5 représente un exemple de dispositif D compris dans le véhicule VEH, dans le réseau CLD ou dans le serveur SRVR. Ce dispositif D peut être utilisé en tant que dispositif centralisé en charge d’au moins certaines étapes du procédé décrit ci-avant en référence à la figure 1. Dans un mode de réalisation, il correspond à un calculateur de conduite autonome. Dans la présente invention, le dispositif D est compris dans le véhicule. Ce dispositif D peut prendre la forme d’un boitier comprenant des circuits imprimés, de tout type d’ordinateur ou encore d’un smartphone. Le dispositif D comprend une mémoire vive 1 pour stocker des instructions pour la mise en œuvre par un processeur 2 d’au moins une étape des procédés tels que décrits ci-avant. Le dispositif comporte aussi une mémoire de masse 3 pour le stockage de données destinées à être conservées après la mise en œuvre du procédé. Le dispositif D peut en outre comporter un processeur de signal numérique (DSP) 4. Ce DSP 4 reçoit des données pour mettre en forme, démoduler et amplifier, de façon connue en soi ces données. Le dispositif comporte également une interface d’entrée 5 pour la réception des données mises en œuvre par des procédés selon l’invention et une interface de sortie 6 pour la transmission des données mises en œuvre par le procédé. La présente invention ne se limite pas aux formes de réalisation décrites ci-avant à titre d’exemples ; elle s’étend à d’autres variantes. Ainsi, il a été décrit un mode de réalisation correspondant à l’application d’un réseau de neurones de type CNN pour une analyse d’image. D’autres applications sont envisageables et par exemple l’application d’un réseau de neurones récurrents, RNN pour Recurrent Neural Network, pour la prise de décision d’instructions de conduite autonome à partir d’informations environnementales. Procédé de conduite autonome d’un véhicule, pour la génération d’une instruction de conduite à partir d’une donnée obtenue à partir d’au moins un capteur du véhicule, par exécution sur un dispositif compris dans le véhicule d’un algorithme fondé sur un réseau de neurones, le procédé comportant les étapes de : réception (30) de la donnée obtenue à partir du capteur ; génération de l’instruction de conduite à partir de la donnée obtenue par application de l’algorithme ; caractérisé en ce que le réseau de neurones est simplifié lors de son entraînement par un élagage, l’élagage consistant à entrainer le réseau de neurones en lui appliquant des masques, l’application des masques lors de l’entrainement supprimant au moins un noyau de convolution du réseau de neurones. Procédé selon la revendication 1, dans lequel l’application des masques lors de l’entrainement comporte les sous-étapes de : obtention de données d’entrainement prédéterminée ; application du réseau de neurones aux données d’entrainement prédéterminée, l’application comportant une application d’une fonction d’activation. Procédé selon la revendication 2, dans lequel la fonction d’activation est une fonction d’activation non saturante. Procédé selon la revendication 3, dans lequel la fonction d’activation non saturant est une unité de rectification linéaire, ReLu. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un processeur (2). Dispositif (D) de conduite autonome d’un véhicule, pour la génération d’une instruction de conduite à partir d’une donnée obtenue à partir d’au moins un capteur du véhicule, par exécution sur un dispositif compris dans le véhicule d’un algorithme fondé sur un réseau de neurones, le dispositif comportant au moins un mémoire et au moins un processeur agencés pour effectuer les opérations de : réception de la donnée obtenue à partir du capteur ; génération de l’instruction de conduite à partir de la donnée obtenue par application de l’algorithme ; caractérisé en ce que le réseau de neurones est simplifié lors de son entraînement par un élagage, l’élagage consistant à entrainer le réseau de neurones en lui appliquant des masques, l’application des masques lors de l’entrainement supprimant au moins un noyau de convolution du réseau de neurones. Véhicule configuré pour comprendre le dispositif selon la revendication 6.