Brevet FR3142582A1 — publié le 20240531

L’invention se rapporte à un procédé d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste, comprenant, en phase d’inférence et pour une donnée d’inférence injectée dans le réseau de neurones : S30) une prédiction de la classe (104) pour la donnée d’inférence ; S40) une détermination d’une signature courante (109) par une extraction d’une pluralité de couches (101) du réseau de neurones pour la donnée d’inférence ; S50) une mesure d’un score de conformité (119) entre la signature courante (109) et la signature de référence (103) correspondant à la classe prédite, la signature de référence (103) étant déterminée en utilisant une base de données de référence (105) ; S60) en fonction du score de conformité (119), une validation de la donnée d’inférence et de la classe associée (104), ou une correction de la donnée d’inférence et/ou dans au moins une des couches (101) du réseau de neurones. Figure pour l’abrégé : Fig. 2 Procédé de robustification des réseaux de neurones multicouches par hybridation avec la commande prédictive MPC vis-à-vis d’une attaque antagoniste La présente invention se rapporte à un procédé et un système de construction d’une base de données de référence à partir d’un réseau de neurones multicouches, ainsi qu’à un procédé et un système d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste. L’avionique des aéronefs propose plusieurs équipements de géolocalisation. Les plus courants sont ceux utilisant les signaux satellite de positionnement (GPS) ou encore les équipements de suivi de la variation de l’inertie du véhicule se référençant à un lieu géographique particulier puis proposant une position géographique par intégration des variations de l’inertie du véhicule. Dans le cas des très petits aéronefs comme des drones, ces équipements sont trop encombrants pour être cumulés lors de la mission. L’avionique privilégie donc les équipements de type GPS pour mettre à disposition la position du drone. En revanche, la fiabilité des équipements GPS ne suffit pas à assurer le niveau de sureté de fonctionnement global, et pour l’atteindre, il est connu d’ajouter un équipement de reconnaissance de position par capture et analyse d’image géographique en la comparant à un ensemble d’image dont le géo-référencement est connu. La comparaison d’image s’envisage par l’utilisation de l’apprentissage automatique de classe de forme et par corrélation entre les classes des images géoréférencées. L’apprentissage automatique utilise des réseaux de neurones artificiels et en particulier les réseaux à convolution (CNN). Lors d’une phase d’apprentissage, chaque prise de vue aérienne est classée afin de lui attribuer des coordonnées terrestres. Lors de la phase d’inférence, une nouvelle photographie est prise, et le réseau de neurones attribue une classe à la nouvelle photographie, ce qui permet de géoréférencer l’image. L’acquisition d’une même zone sous différents angles de prise de vue permet ensuite de déterminer la position de l’aéronef, selon une technique bien connue de l’homme du métier. Cependant, les réseaux de neurones peuvent faire l’objet d’attaques malveillantes, en particulier selon une technique dit antagoniste. Une attaque antagoniste ou adverseriale est une méthode consistant à apporter de petites modifications aux objets de telle sorte que le modèle d'apprentissage automatique commence à les classer de manière erronée. Les réseaux de neurones sont connus pour être vulnérables à de telles attaques. La recherche de méthodes contradictoires a historiquement commencé dans le domaine de la reconnaissance d'images. Il a été démontré que des changements mineurs dans les images, tels que l'ajout d'un bruit insignifiant, peuvent entraîner des changements conséquents dans les prédictions des classificateurs et même complètement confondre les modèles. Par exemple, l’éblouissement d’une caméra par un laser, un oiseau dans le fond de l’image acquise, un défaut de la caméra (irisation par exemple), de la neige ou encore de la pluie peuvent fortement perturber les prédictions du classificateur. Ainsi, l’utilisation de réseaux de neurones pour effectuer de la géolocalisation n’est pas satisfaisante car elle ne permet pas de produire le niveau de confiance équivalent à celui nécessaire au domaine aéronautique. L’invention vise à surmonter les inconvénients précités. Un objet de l’invention est donc un procédé de construction d’une base de données de référence à partir d’un réseau de neurones multicouches, comprenant : S10) une étape d’extraction d’une pluralité de couches du réseau de neurones multicouches pour différentes données d’entraînement injectées dans le réseau de neurones , S20) une étape de détermination d’une pluralité de signatures de référence, chaque signature de référence étant obtenue à partir des couches du réseau de neurones pour les données d’entraînement correspondant à une même classe prédite, la base de données de référence associant chaque classe prédite avec la signature de référence correspondante. Avantageusement, l’étape S10) comprend un calcul d’une valeur caractéristique par couche pour chaque donnée d’entraînement ; et dans l’étape S20), chaque signature de référence est obtenue en calculant la moyenne, pour toutes les données d’entraînement correspondant à une même classe, de chaque valeur caractéristique couche par couche. Avantageusement, dans l’étape S10), les données d’entraînement sont issues d’un sous-ensemble de données d’entraînement correctement prédites par le réseau de neurones, les données d’entraînement dudit sous-ensemble étant ensuite triées en fonction de leur probabilité d’appartenir à une des classes, et sélectionnées en prenant une proportion prédéfinie du sous-ensemble trié. L’invention se rapporte aussi à un procédé d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste, comprenant, en phase d’inférence et pour une donnée d’inférence injectée dans le réseau de neurones : S30) une prédiction de la classe pour la donnée d’inférence ; S40) une détermination d’une signature courante par une extraction d’une pluralité de couches du réseau de neurones pour la donnée d’inférence ; S50) une mesure d’un score de conformité entre la signature courante et la signature de référence correspondant à la classe prédite, la signature de référence étant déterminée en utilisant la base de données de référence obtenue par le procédé de construction d’une base de données de référence précité ; S60) en fonction du score de conformité, une validation de la donnée d’inférence et de la classe associée, ou une correction de la donnée d’inférence et/ou dans au moins une des couches du réseau de neurones. Avantageusement, dans l’étape S40), la signature courante comprend une pluralité de valeurs caractéristiques, chaque valeur caractéristique étant obtenue par extraction réalisée sur une des couches du réseau de neurones pour la donnée d’inférence, dans lequel l’étape S50) comprend : - le calcul d’une distance entre la signature courante et la signature de référence ; - le calcul d’une valeur statistique appliquée à la distance ; - la donnée d’inférence étant validée si la valeur statistique est supérieure à un seuil prédéterminé. Avantageusement, le seuil prédéterminé est calculé hors ligne sur un jeu de test pour une application cible de la classification. Avantageusement, chaque signature de référence comprend un vecteur moyen et une matrice de covariance associées à la classe prédite, et dans lequel, dans l’étape S50) : - la distance est une distance de Mahalanobis, la distance de Mahalanobis étant calculée en tenant compte de la matrice inverse de covariance ; - la valeur statistique est une p-valeur d’un test du khi-deux appliqué à la distance de Mahalanobis correspondant à la distance entre la signature courante et la distribution des signatures de référence associées à la classe prédite, la distribution étant modélisée dans la base de données de référence par le vecteur moyen et la matrice de covariance associées à la classe prédite. Avantageusement, la valeur caractéristique de chaque couche est obtenue en calculant une combinaison statistique matricielle entre les cartes de caractéristiques de la couche. Avantageusement, la combinaison statistique matricielle comprend le calcul d’une médiane entre les cellules de même rang et de même colonne, et le calcul d’une valeur maximale parmi toutes les médianes. Avantageusement, la combinaison statistique matricielle comprend le calcul d’une médiane entre les cellules de même rang et de même colonne, et le calcul d’une norme de Froebenius d’une matrice composée de toutes les médianes. En variante, la valeur caractéristique de chaque couche est obtenue en calculant une unique statistique pour l’ensemble cartes de caractéristiques. Avantageusement, l’unique statistique correspond à une moyenne entre toutes les cellules des cartes de caractéristiques. Avantageusement, la correction de la donnée d’inférence comprend une étape de filtrage du signal injecté et/ou des couches du réseau de neurones. Avantageusement, la correction de la donnée d’inférence comprend une reconstruction de l’entrée de chaque couche par une technique de reconstruction inverse, et une mesure de l’erreur de reconstruction. Avantageusement, au moins une des couches du réseau de neurones est corrigée par substitution de la valeur caractéristique ou de la moyenne entre la valeur caractéristique et la signature de référence. Avantageusement, le nombre de couches extraites est défini en fonction d’un taux d’erreurs résiduelles de la signature courante. Avantageusement : - 10 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -3 ; - 17 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -5 ; - 24 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -7 ; - 33 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 9 . Avantageusement, les données d’entraînement sont des images géoréférencées, et la donnée d’inférence est une image, la classe prédite correspondant à un géoréférencement de ladite image. Avantageusement, le procédé comprend l’extraction des couches les moins corrélées entre elles du réseau de neurones multicouches, parmi l’ensemble des couches du réseau de neurones multicouches. Avantageusement les étapes S30), S40) et S50) sont répétées après la correction de la donnée d’inférence et/ou des couches du réseau de neurones, jusqu’à ce que le score de conformité remplisse une condition prédéterminée. L’invention se rapporte aussi à un produit programme d’ordinateur comprenant des instructions de code pour la mise en œuvre du procédé précité lorsqu’il est exécuté par un ordinateur. L’invention se rapporte aussi à un support de stockage lisible par ordinateur stockant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, impliquent que l’ordinateur mette en œuvre le procédé précité. L’invention se rapporte aussi à un système de construction d‘une base de données de référence à partir d’un réseau de neurones multicouches, comprenant - un module d’extraction d’une pluralité de couches du réseau de neurones multicouches pour différentes données d’entraînement injectées dans le réseau de neurones ; - une base de données de référence associant chaque classe prédite par le réseau de neurones avec une signature de référence correspondante. L’invention se rapporte aussi à un système d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste, comprenant : - un module de prédiction de la classe pour chaque donnée d’inférence ; - un module d’extraction d’une pluralité de couches du réseau de neurones multicouches, de façon à obtenir une signature courante pour la donnée d’inférence ; - un module de lecture de la base de données de référence obtenue par le système de construction d‘une base de données de référence précité ; - un module de mesure d’un score de conformité entre la signature courante et la signature de référence correspondant à la classe prédite, la signature de référence étant déterminée en utilisant la base de données de référence ; le système d’amélioration étant configuré pour valider la donnée d’inférence et la classe associée ou pour corriger la donnée d’inférence et/ou au moins une des couches du réseau de neurones en fonction du score de conformité. L’invention se rapporte aussi à un système de détermination de la position d’un aéronef, comprenant le système d’amélioration de la robustesse précité, les données d’entraînement étant des images géoréférencées, et dans lequel la longueur de la signature de référence et la longueur de la signature courante sont associés à un taux d’erreurs résiduelles du système de détermination de la position d’un aéronef. Description des figures D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple. La représente un schéma d’un exemple de réseau de neurones artificiel. La illustre les différentes étapes du procédé selon l’invention d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste. La illustre un ordinogramme des différentes étapes du procédé selon l’invention. La illustre les différentes étapes du procédé selon l’invention de construction d’une base de données de référence. La illustre un autre mode de réalisation de calcul de la signature de référence et de la signature courante. La illustre un mode de réalisation de détermination du score de conformité entre la signature de référence associée à la classe prédite et la signature courante. La illustre un mode de réalisation de correction de la donnée d’inférence. La représente un schéma général d’un réseau de neurones artificiels 100, par exemple un réseau de neurones complètement connecté encore appelé réseau dense. De façon générale, chaque couche intermédiaire d’un réseau peut être connectée totalement ou partiellement à une autre couche. Un réseau de neurones est classiquement composé de plusieurs couches (125, 126, 127, 128) de neurones interconnectés. Le réseau comporte au moins une couche d’entrée 125 et une couche de sortie 128 et plusieurs couches intermédiaires (126, 127) encore appelées couches cachées. Les neurones 129 de la couche d’entrée 125 reçoivent des données d’entrée. Les données d’entrée peuvent être de natures différentes selon l’application visée. Par exemple, les données d’entrée sont des pixels d’une image. Un réseau de neurones a pour fonction générale d’apprendre à résoudre un problème donné, par exemple un problème de classification ou de régression. Un réseau de neurones est, par exemple, utilisé dans le domaine de la classification d’image ou de la reconnaissance d’image ou plus généralement la reconnaissance de caractéristiques qui peuvent être visuelles, audio, textuelles. Chaque neurone d’une couche est connecté, par son entrée et/ou sa sortie, à quelques neurones de la couche précédente ou suivante pour les réseaux de neurones convolutifs (appelés par la suite CNN pour « Convolution Neural Network »), voire à tous les neurones de la couche précédente ou suivante (pour les réseaux de neurones denses ou « fully connected »). Les connexions entre deux neurones 129-130 de deux couches successives se font à travers des synapses artificielles 131. Ainsi, le neurone est juste une fonction qui fait la somme pondérée de ses entrées puis applique une fonction d’activation simple (par exemple force le résultat à zéro s’il est négatif, et le laisse en l’état s’il est positif). Ce résultat sert ensuite d’entrée pour d’autres neurones. Le synapse est donc un poids, un coefficient appliqué à chaque entrée. De façon alternative, il est possible d’implémenter le réseau de neurones de façon matérielle, par exemple via des dispositifs memristifs. Les coefficients des synapses sont optimisés grâce à un mécanisme d’apprentissage du réseau de neurones. Le mécanisme d’apprentissage a pour objectif l’entrainement du réseau de neurones à résoudre un problème défini. Ce mécanisme comporte deux phases distinctes, une première phase de propagation de données de la couche d’entrée vers la couche de sortie et une seconde phase de rétro-propagation d’erreurs de la couche de sortie vers la couche d’entrée avec, pour chaque couche, une mise à jour des poids des synapses. Les erreurs calculées à partir des neurones de sortie à l’issue de la phase de propagation de données sont liées au problème à résoudre. Il s’agit, de manière générale, de déterminer une valeur appelée logit (une prédiction). Lors de la première phase de propagation de données, des données d’apprentissage, par exemple des images ou séquences d’images de référence, sont fournies en entrée des neurones de la couche d’entrée et propagées dans le réseau. Chaque neurone met en œuvre, pendant cette première phase, une fonction d’intégration des données reçues qui consiste à calculer une somme des données reçues pondérées par les coefficients des synapses. Dans le cas d’un CNN, on définit la convolution comme étant le déplacement d’un filtre (matrice de coefficients, les « synapses ») « au-dessus » d’une couche donnée (matrice). Ainsi chaque neurone réalise un produit matriciel entre le filtre et la zone de la couche précédente (sous-matrice de neurones) située sous le filtre. Chaque neurone propage ensuite ce résultat vers les neurones de la couche suivante via d’autres convolutions. Selon les modèles de neurones choisis, la fonction d’intégration qu’il réalise peut varier. L’erreur entre la valeur de sortie des neurones 132 et une valeur attendue ou une valeur cible qui correspond à l’état final des neurones de la couche de sortie que l’on souhaite obtenir en relation avec les données d’entrée d’apprentissage et le problème à résoudre par le réseau est calculée. Par exemple, si le réseau doit résoudre un problème de classification, l’état final attendu d’un neurone correspond à la classe qu’il est censé identifier dans les données d’entrée. Plus généralement, à chaque problème particulier à résoudre (classification, régression) on associe une ou plusieurs fonction(s) de coût ou fonction objective à optimiser (par minimisation ou maximisation). Un objectif de la phase de rétro-propagation d’erreurs est de rechercher les paramètres du réseau qui minimisent l’erreur. La fonction objective dépend des coefficients du réseau de neurones. Lors de la seconde phase de rétro-propagation d’erreurs, on calcule l’erreur à partir des neurones de la couche de sortie 128 ; cette erreur est une fonction des poids (coefficients) de toutes les couches du modèle. Puis cette erreur est recalculée localement pour chaque couche en tenant compte des coefficients propres à chaque couche (rétropropagation d’erreur). Ensuite, les coefficients de chaque couche (et de chaque neurone) sont mis à jour de sorte à réduire l’erreur globale finale. Le processus se poursuit pour chaque couche de neurones jusqu’à la dernière couche. Les données d’entrée du réseau peuvent être organisées sous la forme de matrices. Le réseau peut être configuré pour générer en sortie un score ou une information de classification ou tout autre type de sortie adaptée selon le problème à résoudre. Par exemple, si les données d’entrée sont des images ou des caractéristiques extraites d’images ou de séquences d’images, un réseau de neurone peut être configuré pour reconnaitre les objets extraits des images et les classifier selon différentes classes ou catégories prédéfinies. Le problème résolu par le réseau est alors un problème de classification. Les figures 2 et 3 illustrent de façon schématique les principales étapes du procédé d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste conforme à l’invention. Une donnée d’inférence 102 est injectée dans le réseau de neurones 100. La donnée d’inférence peut être tout type de signal pour lequel le réseau de neurones peut être entraîné, en particulier une image 2D, une image 3D, un fichier audio. Il est essentiel que le réseau de neurones comprenne plusieurs couches. Le réseau de neurones peut être un réseau de neurones convolutif (CNN pour « Convolutional Neural Network »), ou tout autre type de réseau multicouche. Une couche supplémentaire 133 peut être ajoutée en sortie du réseau de neurones, en particulier pour une application de recherche d'images à des fins de géolocalisation, par exemple la couche NetVLAD, inspirée de la représentation d'image "Vector of Locally Aggregated Descriptors" couramment utilisée dans la recherche d'images. Une extraction d’une pluralité de couches 101 est effectuée pour la donnée d’inférence, de façon à obtenir une signature courante 109 correspondant à la donnée d’inférence (étape S40). Une classe 104 est prédite en sortie du réseau de neurones 133 (étape S30). La sortie du réseau de neurones 133 n’est pas à proprement parler une classe, mais un vecteur produit par la couche supplémentaire 133 (NetVLAD). En effet, pour que la sortie soit une classe, il faut rechercher, dans la base géoréférencée de vecteurs VLAD (qui est une autre base de données, qui n’apparait pas dans les figures), le vecteur VLAD « le plus similaire » au vecteur 104, puis récupérer la latitude/longitude (ou le nom du lieu) associée à ce vecteur. Dans la suite du document, pour raisons de simplicité, il est considéré que la sortie du réseau de neurones 133 est une classe prédite (référence 104). La prédiction de la classe 104 et la détermination de la signature courante 109 peuvent être effectuées de façon concomitante, ou l’une après l’autre, sans que l’ordre n’ait d’importance. La signature courante 109 est ensuite comparée à une signature de référence 103 qui correspond à la classe prédite 104 (étape S50). La comparaison est effectuée par un module de mesure d’un score de conformité 117. Toutes les signatures de référence 103 sont stockées dans une base de données de référence 105. Un score de conformité 119 est mesuré entre la signature courante 109 et la signature de référence 103 (étape S60). En fonction du score de conformité 119, la classe prédite est validée, ou la donnée d’inférence est corrigée. La correction de la donnée d’inférence peut être effectuée directement à l’entrée du réseau de neurones 100, ou dans directement dans les couches 101 du réseau de neurones. Le procédé est mis en œuvre pour chaque nouvelle donnée d’inférence injectée dans le réseau de neurones. La correction directement dans les couches 101 du réseau de neurones peut être effectuée par une soustraction de la différence moyenne entre la signature courante 109 et la signature de référence 103 propagée en avant (feedforward) vers la couche supplémentaire 133. Il est également possible de rétro-propager (feedback) la correction entre les couches 101 ; dans ce cas, la fonction d'entropie de Shannon peut être utilisée afin de choisir la signature de référence 103 locale la plus appropriée par substitution à l'entrée du réseau. Ainsi, une modification de la structure prenant en compte la convergence par contrôle prédictif (MPC pour Model based Predictive Control) permet de stabiliser le comportement des réseaux de neurones multicouches, ce qui résout le problème des attaques antagonistes. Le procédé selon l’invention permet non seulement de détecter une potentielle attaque intentionnelle de la donnée d’inférence mais aussi de la corriger. En effet, en détectant, sur n'importe quelle couche, ou sur l’ensemble des couches, qu’une statistique dépasse un seuil donné, alors il est possible de détecter des attaques antagonistes, et d’avoir à contrario des garanties de robustesse. La illustre le procédé de création de la base de données de références 105, également illustrée par l’ordinogramme de la . Des données d’entraînement 102 sont injectées dans le réseau de neurones 100. Dans une application de géolocalisation, les données d’entraînement 102 sont des images 2D. Pour chaque donnée d’entraînement, un vecteur caractéristique est extrait des couches 101 du réseau de neurones en utilisant le un module d’extraction 114 (étape S10). Le vecteur caractéristique est composé d’une pluralité de valeurs caractéristiques, chaque valeur caractéristique étant associée à une des couches du réseau de neurones. Avantageusement, seuls les vecteurs caractéristiques 134 des données d’entraînement vérifiées sont ensuite intégrés dans la base de données de référence 105. Les données d’entraînement vérifiées correspondent à des données correctement prédites. La dimension des matrices 2D peut être réduite en utilisant un hachage sensible local tel que décrit notamment dans l’article « Near-optimal hashing algorithms for approximate nearest neighbor in high dimensions » (A. Andoni and P. Indyk, Foundations of Computer Science, 2006. FOCS’06. 47th Annual IEEE Symposium on. IEEE, 2006, pp. 459–468). Ainsi, chaque représentation de couche peut être soit une matrice 2D, soit un vecteur. Une fois que toutes les représentations de couches sont enregistrées pour chaque donnée d’entraînement, la signature de référence pour chaque classe est calculée et stockée dans la base de données de référence (étape S20). Il peut être noté que la prédiction finale du réseau de neurones n’est pas composée d’une seule et unique prédiction mais plutôt d’un vecteur comprenant une probabilité (ou score) pour chaque classe. La prédiction finale du réseau de neurones est généralement la classe ayant la probabilité la plus élevée. Selon un mode de réalisation avantageux, seules les données d’entraînement 102 correctement prédites sont sélectionnées, c’est-à-dire celles pour lesquelles la probabilité maximale est associée à la bonne classe attendue. Une fois que toutes les données correctes ont été obtenues, elles sont triées selon leurs probabilités maximales dans l’ordre décroissant, c’est-à-dire de la « meilleure prédiction » à la « moins bonne ». Il peut ensuite être défini de ne construire la base qu’avec un pourcentage prédéfini du nombre total de données d’entraînement 102, à partir du tri précité, selon l’ordre décroissant. Cela permet de construire la base de données de référence avec des données très fiables. La illustre un exemple d’extraction de chaque couche du réseau de neurones. Dans ce mode de réalisation il y a une signature de référence pour chaque classe du jeu d’entrainement correct. Dans un CNN ; chaque couche comprend plusieurs cartes de caractéristiques 111. Dans un réseau de neurones convolutif, dans chaque couche, le nombre de cartes de caractéristiques 111 est égal au nombre de filtres utilisés pour filtrer la couche précédente, indépendamment du nombre de cartes de caractéristiques de la couche précédente. Avantageusement, la valeur caractéristique de chaque couche 101 est obtenue en calculant une combinaison statistique matricielle entre les cartes de caractéristiques 111 de la couche. Par « combinaison matricielle », on entend une combinaison des cellules en profondeur (c’est-à-dire pour plusieurs cartes de caractéristiques) et dans au moins une des deux directions horizontale ou verticale définies correspondant aux lignes et aux colonnes de la carte de caractéristique. Selon un mode de réalisation avantageux, la combinaison statistique matricielle comprend le calcul d’une médiane entre les cellules 112 de même rang et de même colonne (calcul en profondeur selon direction A, ), et le calcul d’une valeur maximale parmi toutes les médianes (calcul selon les directions horizontale B et verticale C). Sur la , la matrice 118 est composée des valeurs médianes des cellules de même rang et de même colonne, pour les différentes cartes de caractéristiques 111 qui constituent la couche. Sur la , il y a donc autant de matrices 118 qu’il y a de couches à extraire pour constituer un vecteur de référence pour la donnée d’entraînement. La signature de référence 103 comprend donc un vecteur moyen obtenu en calculant, pour tous les vecteurs de référence (ADN 17-1, ADN 17-2, …, ADN 17-N sur la ) correspondant à une même classe, la moyenne des valeurs pour chaque couche. D’autres modes de réalisation peuvent être envisagés pour effectuer la combinaison statistique matricielle. En particulier, une fois que les valeurs médianes ont été calculées pour les cellules de même rang et de même colonne, une norme matricielle telle que la norme de Froebenius de la matrice 118 comprenant toutes les valeurs médianes de la couche peut être calculée. La norme de Froebenius d’une matrice correspond à la racine carrée de la somme de tous les éléments de la matrice, chaque élément étant mis au carré avant d'être additionné. Un vecteur de référence est ensuite obtenu avec toutes les valeurs caractéristiques correspondant aux normes de Froebenius, pour toutes les couches du réseau de neurones, et pour chaque donnée d’entraînement. .Une moyenne est ensuite calculée entre les différents vecteurs de référence d’une même classe, pour obtenir la signature de référence correspondant à la classe. En variante, la valeur caractéristique de chaque couche peut être obtenue en calculant une unique statistique pour l’ensemble des cartes de caractéristiques 111, par exemple une moyenne entre toutes les cellules des cartes de caractéristiques 111 pour chaque couche. D’autres combinaisons matricielles peuvent être envisagées. Au lieu de combiner valeur maximale parmi toutes les médianes, il est aussi envisageable de combiner médiane parmi toutes les valeurs maximales, médiane parmi toutes les moyennes, moyenne parmi toutes les médianes, valeur maximale parmi toutes les normes de Froebenius, norme de Froebenius parmi toutes les valeurs maximales etc. En cherchant à maximiser le taux de vrais positifs (nombre d’exemples identifiés comme étant anormaux parmi les exemples antagonistes/nombre d’exemples antagonistes) et à minimiser le taux de faux positifs (nombre d’exemples identifiés comme étant anormaux parmi les exemples corrects/nombre d’exemples corrects), il a été déterminé que les meilleurs résultats sont obtenus avec le couple statistique médiane/maximum des médianes. La base de données de référence 105 associe ainsi une signature de référence pour chaque classe. Cette signature de référence est constituée d’un vecteur moyen pour chaque classe et d’une matrice de variances/covariances pour chaque classe. Pour une application de reconnaissance de lieu, la taille de la base de données de référence 105 fait quelques mégaoctets, ce qui la rend embarquable, en particulier en regard de la place mémoire restante une fois que la base de vecteurs VLAD (typiquement de 10 Go) est installée. Les étapes suivantes sont mises en œuvre en phase d’inférence et pour une donnée d’inférence 108 injectée dans le réseau de neurones. Ces étapes visent à améliorer la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste. Pour chaque nouvelle donnée d’inférence, par exemple pour chaque nouvelle image de terrain acquise par l’aéronef, le réseau de neurones prédit une classe 104 (étape S30). La signature courante 109 de la donnée d’inférence 108 est ensuite déterminée (étape S40). Pour cela, plusieurs couches 101 sont extraites du réseau de neurones, selon un des modes de réalisation décrits précédemment pour l’extraction des couches pour les données d’entraînement. Dans une étape S50, un score de conformité 119 est mesuré entre la signature courante 109 et la signature de référence 103, la signature de référence 103 étant déterminée en utilisant la base de données de référence 105 prédéfinie. La signature de référence 103 utilisée est celle qui correspond à la classe prédite pour la donnée d’inférence 108. En fonction du score de conformité 119, la donnée d’inférence 108 et la classe associée 104 sont validées, ou la donnée d’inférence 108 est corrigée (étape S60). En variante, au lieu de corriger la donnée d’inférence 108 à l’entrée du réseau de neurones, au moins une des couches 101 du réseau de neurones est corrigée par substitution de la donnée 106 ou encore de la moyenne entre la donnée 106 et la donnée 103. Selon une autre variante, la donnée d’inférence 108 est corrigée en entrée par filtrage des défauts, et au moins une des couches 101 du réseau de neurones est corrigée par substitution de la valeur caractéristique 110 ou encore de la moyenne entre la valeur caractéristique 110 et la signature de référence 103. Le procédé selon l’invention n’ajoute pas plus de temps de calcul que celui nécessaire pour comparer la signature de référence et la signature courante produite en temps réel. Le temps d’extraction du vecteur peut être rendu négligeable par utilisation d’unités de traitement graphiques ayant une architecture de traitement en parallèle (GPU). La illustre un mode de réalisation préférentiel du procédé conforme à l’invention d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste. Une donnée d’inférence 108, dans le cas présent une image de terrain acquise par une caméra, est injectée dans le réseau de neurones 100. Une classe 104 est prédite par le réseau de neurones 100. Pour une application de reconnaissance de lieu, le réseau de neurones 100 peut être un réseau de neurones convolutif 100 combiné à une couche NetVLAD 133. La classe prédite correspond dans ce cas à un couple de coordonnées latitude/longitude (du vecteur VLAD) ou à un nom de lieu (si celui-ci est unique). Un module de lecture 116 reçoit en entrée la classe prédite 104, et récupère la signature de référence correspondant à la classe dans la base de données de référence 105. Par ailleurs, un module d’extraction 114 extrait une pluralité de couches 101 du réseau de neurones multicouches, de façon à obtenir la signature courante 109 pour la donnée d’inférence 108. L’extraction de chaque couche peut être effectuée en particulier en calculant une combinaison statistique matricielle entre les cartes de caractéristiques de la couche. Un module de mesure d’un score de conformité 117 mesure un score de conformité entre la signature courante 109 et la signature de référence 103. Selon un mode de réalisation avantageux, le score de conformité est déterminé en calculant une distance de Mahalanobis entre la signature courante et la signature de référence. La distance de Mahalanobis permet de déterminer la cohérence entre des données reçues (signature courante) et celles fournies par un modèle (signature de référence). La distance de Mahalanobis utilise une matrice inverse de covariance (c’est à dire l’inverse de la matrice de covariance) pour chaque classe. La matrice de covariance est calculée à partir des vecteurs de référence extraits pour les données d’entraînement correspondant à une même classe. La matrice inverse de covariance est stockée, pour chaque classe, dans la base de données de référence. La distance de Mahalanobis D est calculée par un sous-ensemble 120 du module de mesure d’un score de conformité 117, avec la formule suivante : correspond à la signature courante (sous forme de vecteur), correspond à la signature de référence correspondant à la moyenne des signatures de référence (vecteur moyen), et la matrice de covariance. Un test du khi-deux est ensuite appliqué à la distance de Mahalanobis pour la donnée d’inférence. Le test du khi-deux peut être est effectué car une hypothèse gaussienne est faite sur la distribution de la distance de Mahalanobis sur l’ensemble des données d’entrainement pour une même classe, ce qui est une hypothèse admise dans l’état de l’art. Le test du khi-deux permet de tester l’adéquation entre un échantillon d’une série de valeurs observées (ici le carré de la distance de Mahalanobis) et une loi de probabilité (par exemple loi normale ou gaussienne). Un sous-ensemble 121 du module de mesure d’un score de conformité 117 effectue le test du khi-deux, et fournit une p-value, également appelée degré de signification. La p-value est comparée à un seuil prédéterminé. La p-valeur est appliquée à la distance de Mahalanobis correspondant à la distance entre la signature courante et la distribution des signatures de référence associées à la classe prédite, la distribution étant modélisée dans la base de données de référence 105 par le vecteur moyen et la matrice de covariance associées à la classe prédite. Avantageusement, le seuil prédéterminé est calculé hors ligne sur un jeu de test pour une application cible de la classification, en particulier en fonction du taux de faux positifs et du taux de vrais positifs définis précédemment. Pour des applications de reconnaissance de lieu, un seuil égal à 4% peut être utilisé. Le module de mesure d’un score de conformité 117 compare la p-value par rapport au seuil. Si la p-value est supérieure ou égale au seuil, la donnée d’inférence 108 est validée avec la classe 104 qui a été prédite. Au contraire, si la p-value est inférieure au seuil, la donnée d’inférence est considérée comme étant une observation aberrante, et dans ce cas une correction est apportée à la donnée d’inférence. D’autres distances mathématiques permettant de déterminer la similarité entre une série de données connues (les données d’entrainement) et inconnues (la donnée d’inférence) peuvent être utilisées, par exemple la distance L1, la distance L2 ou la similarité cosinus. La illustre un mode de réalisation de correction de la donnée d’inférence. Si le module de mesure d’un score de conformité 117 détermine que la donnée d’inférence est aberrante, un système d’amélioration 115 corrige la donnée d’inférence 108. Le système d’amélioration 115 prend en entrée la donnée d’inférence 108, et fournit une donnée d’inférence corrigée 123. Le système d’amélioration 115 peut avantageusement utiliser des filtres 122, par exemple l’un des filtres parmi le groupe comprenant : filtre médian, filtre moyenneur, filtre gaussien, filtre de Wiener, filtre de détection de bords, filtre Laplacien, filtre de type « Non Local means ». Le filtre peut avantageusement utiliser une ou plusieurs versions précédentes 124 de la donnée d’inférence corrigée. L’étape de correction par filtrage peut être effectuée autant de fois que nécessaire, jusqu’à ce que le score de conformité atteigne un seuil prédéfini. Selon une variante, il est possible de ne corriger que certaines des couches du réseau de neurones. Dans ce cas, les filtres sont disposés à l’entrée de la couche à corriger. Selon une autre variante de l’invention, la correction de la donnée d’inférence 108 comprend une reconstruction de l’entrée de chaque couche 101 par une technique de reconstruction inverse, et une mesure de l’erreur de reconstruction. La technique de reconstruction inverse consiste à reconstruire une couche i à partir de la couche i+1 (couche suivante dans le sens de propagation de la donnée injectée dans le réseau de neurones), à mesurer l’erreur de reconstruction, et à effectuer une ou plusieurs itérations de correction jusqu’à ce que l’erreur de reconstruction soit inférieure à un seuil. Le nombre de couches extraites 101 pour les données d’entrainement et pour les données d’inférence peut être défini en fonction d’un taux d’erreurs résiduelles associé au score de conformité 119. En effet, il est possible de définir un mot de signature élaboré par corrélation entre la signature courante et la signature de référence correspondant à la classe prédite pour la donnée d’inférence, qui correspond à la distance entre la signature courante 109 et la signature de référence 103. Le mot de signature comprend L éléments correspondant au nombre de couches extraites. Dans le cas où, pour chaque couche, la corrélation avec la signature de référence vaut soit zéro soit un, le mot de signature représente valeurs possibles. Par convention, le mot de référence d’identité est un mot de L bits de valeur 1. Ainsi, le mot d’erreur représente le nombre de valeurs erronées corrélées qui représente valeurs possibles. TS est défini ainsi : TS = nombre d’erreurs/nombre total de valeurs = / Dans l’hypothèse d’une similarité (aucun bit du mot à zéro, 0 erreurs, x=0) et en relation avec la taille du réseau : nb couches TS 10 9,8E-04 -3 17 7,6E-06 -5 24 6,0E-08 -7 33 1,2E-10 -9 TS est le taux d'erreur de la signature, qui quantifie la fiabilité de l'ensemble du système de corrélation. La distance est un critère de valorisation de chaque bit du taux d'erreur TS par calcul : chaque bit du vecteur est valorisé à un quand la distance entre la signature de référence et la signature courante est nulle ou à zéro quand la distance est infinie (ou supérieur à un seuil). Ainsi, dix couches sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 3 . Dix-sept couches sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 5 . Vingt-quatre couches sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 7 . Trente-trois couches sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 9 . Lors du développement d’un système utilisant des réseaux de neurones, le nombre de couches extraites indique de quel niveau de criticité (ou DAL pour « Development Assurance Level ») le système est le plus proche. En effet, les standards Eurocae ED-12 (équivalent au standard RTCA DO-178) et Eurocae ED-80 (équivalent au standard RTCA DO-254) fixent les conditions de sécurité applicables respectivement aux logiciels critiques de l'avionique et aux équipements électroniques d'avionique. Les standards comprennent quatre niveaux de criticité (classés de A à D), définis de la façon suivante : Niveau A : Un défaut du système ou sous-système étudié peut provoquer un problème catastrophique - Sécurité du vol ou atterrissage compromis - Crash de l'avion (taux d’erreurs résiduelles inférieur à 10 - 9 ) . Niveau B : Un défaut du système ou sous-système étudié peut provoquer un problème dangereux entraînant des dégâts sérieux voire la mort de quelques occupants (taux d’erreurs résiduelles inférieur à 10 - 7 ) . Niveau C : Un défaut du système ou sous-système étudié peut provoquer un problème majeur entraînant un dysfonctionnement des équipements vitaux de l'appareil (taux d’erreurs résiduelles inférieur à 10 - 5 ) . Niveau D : Un défaut du système ou sous-système étudié peut provoquer un problème mineur sans effet sur la sécurité du vol (taux d’erreurs résiduelles inférieur à 10 - 3 ) . Ainsi, il est possible de définir un nombre de couches à extraire en fonction du niveau de criticité attendu. Par ailleurs le nombre de couches à extraire peut être adapté à la complexité du système utilisant le réseau de neurones, ce qui permet un ajustement de l’effort de calcul et la consommation des ressources associées selon le contexte d’utilisation de la solution (embarqué ou non). Selon un mode de réalisation, seules les couches 101 les moins corrélées entre elles, parmi l’ensemble des couches du réseau de neurones multicouches, sont extraites. Cela permet de n’utiliser que les couches qui susceptibles de fortement varier d’une donnée d’entraînement à l’autre. Le fait de disposer d’un niveau de confiance vérifiable pour la reconnaissance des formes dans une image permet de relier les informations géographiques de cette image à la position de l’aéronef avec un niveau de confiance quantifiable, de façon similaire à celui proposé par les systèmes de navigation par signaux satellite (GPS). Il est donc envisageable de contrôler la position de l’aéronef à partir d’images, ou de succession d’images, prises directement en opération et en cohérence avec la dynamique de l’aéronef. L’invention a été décrite pour des données d’entrée de type images 2D. Elle peut s’étendre à tout type de donnée d’entrée, par exemple de la voix, du texte, une image quelconque, ou tout type de donnée pour laquelle une classe doit être prédite par un réseau de neurones structuré en couches. L’invention peut être mise en œuvre en tant que programme d’ordinateur comportant des instructions pour son exécution. Le programme d’ordinateur peut être enregistré sur un support d’enregistrement lisible par un processeur. La référence à un programme d'ordinateur qui, lorsqu'il est exécuté, effectue l'une quelconque des fonctions décrites précédemment, ne se limite pas à un programme d'application s'exécutant sur un ordinateur hôte unique. Au contraire, les termes programme d'ordinateur et logiciel sont utilisés ici dans un sens général pour faire référence à tout type de code informatique (par exemple, un logiciel d'application, un micro logiciel, un microcode, ou toute autre forme d'instruction d'ordinateur) qui peut être utilisé pour programmer un ou plusieurs processeurs pour mettre en œuvre des aspects des techniques décrites ici. Les moyens ou ressources informatiques peuvent notamment être distribués ("Cloud computing"), éventuellement selon des technologies de pair-à-pair. Le code logiciel peut être exécuté sur n'importe quel processeur approprié (par exemple, un microprocesseur) ou cœur de processeur ou un ensemble de processeurs, qu'ils soient prévus dans un dispositif de calcul unique ou répartis entre plusieurs dispositifs de calcul (par exemple tels qu’éventuellement accessibles dans l’environnement du dispositif). Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur ou en mémoire morte. De manière générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif avant d'être exécutés. L'unité centrale peut commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur ou dans la mémoire morte ou bien dans les autres éléments de stockage précités. L’invention peut être implémentée sur un dispositif de calcul basé, par exemple, sur un processeur embarqué. Le processeur peut être un processeur générique, un processeur spécifique, un circuit intégré propre à une application (connu aussi sous le nom anglais d’ASIC pour « Application-Specific Integrated Circuit ») ou un réseau de portes programmables in situ (connu aussi sous le nom anglais de FPGA pour « Field-Programmable Gate Array »). Le dispositif de calcul peut utiliser un ou plusieurs circuits électroniques dédiés ou un circuit à usage général. La technique de l'invention peut se réaliser sur une machine de calcul reprogrammable (un processeur ou un micro-contrôleur par exemple) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel). L’invention peut aussi être implémentée dans un système de localisation embarqué dans un porteur mobile comprenant en outre un ou plusieurs dispositifs d’acquisition d’image. La position du porteur mobile calculée par l’invention peut être restituée à un utilisateur via une interface homme machine. Procédé de construction d’une base de données de référence à partir d’un réseau de neurones multicouches, comprenant : S10) une étape d’extraction d’une pluralité de couches (101) du réseau de neurones multicouches (100) pour différentes données d’entraînement (102) injectées dans le réseau de neurones , S20) une étape de détermination d’une pluralité de signatures de référence (103), chaque signature de référence (103) étant obtenue à partir des couches (101) du réseau de neurones pour les données d’entraînement (102) correspondant à une même classe prédite (104), la base de données de référence (105) associant chaque classe prédite (104) avec la signature de référence (103) correspondante. Procédé selon la revendication 1, dans lequel l’étape S10) comprend un calcul d’une valeur caractéristique (106) par couche (101) pour chaque donnée d’entraînement (102) ; dans lequel, dans l’étape S20), chaque signature de référence (103) est obtenue en calculant la moyenne, pour toutes les données d’entraînement (102) correspondant à une même classe (104), de chaque valeur caractéristique (106) couche par couche (101). Procédé selon l’une des revendications précédentes, dans lequel, dans l’étape S10), les données d’entraînement (102) sont issues d’un sous-ensemble de données d’entraînement (102) correctement prédites par le réseau de neurones (100), les données d’entraînement (102) dudit sous-ensemble étant ensuite triées en fonction de leur probabilité d’appartenir à une des classes (104), et sélectionnées en prenant une proportion prédéfinie du sous-ensemble trié. Procédé d’amélioration de la robustesse d’un réseau de neurones multicouches vis-à-vis d’une attaque antagoniste, comprenant, en phase d’inférence et pour une donnée d’inférence (108) injectée dans le réseau de neurones : S30) une prédiction de la classe (104) pour la donnée d’inférence (108) ; S40) une détermination d’une signature courante (109) par une extraction d’une pluralité de couches (101) du réseau de neurones pour la donnée d’inférence (108) ; S50) une mesure d’un score de conformité (119) entre la signature courante (109) et la signature de référence (103) correspondant à la classe prédite, la signature de référence (103) étant déterminée en utilisant la base de données de référence (105) obtenue par le procédé de construction d’une base de données de référence selon l’une des revendications 1 à 3 ; S60) en fonction du score de conformité (119), une validation de la donnée d’inférence (108) et de la classe associée (104), ou une correction de la donnée d’inférence (108) et/ou dans au moins une des couches (101) du réseau de neurones. 5. Procédé selon la revendication 4, dans lequel, dans l’étape S40), la signature courante (109) comprend une pluralité de valeurs caractéristiques (110), chaque valeur caractéristique (110) étant obtenue par extraction réalisée sur une des couches (101) du réseau de neurones pour la donnée d’inférence (108), dans lequel l’étape S50) comprend : - le calcul d’une distance entre la signature courante (109) et la signature de référence (103) ; - le calcul d’une valeur statistique appliquée à la distance ; - la donnée d’inférence (108) étant validée si la valeur statistique est supérieure à un seuil prédéterminé. 6. Procédé selon la revendication 5, dans lequel le seuil prédéterminé est calculé hors ligne sur un jeu de test pour une application cible de la classification. 7. Procédé selon l’une des revendications 5 ou 6 prise en combinaison avec l’une des revendications 1 à 3, dans lequel chaque signature de référence (103) comprend un vecteur moyen et une matrice de covariance associées à la classe prédite, et dans lequel, dans l’étape S50) : - la distance est une distance de Mahalanobis, la distance de Mahalanobis étant calculée en tenant compte de la matrice inverse de covariance ; - la valeur statistique est une p-valeur d’un test du khi-deux appliqué à la distance de Mahalanobis correspondant à la distance entre la signature courante et la distribution des signatures de référence associées à la classe prédite, la distribution étant modélisée dans la base de données de référence (105) par le vecteur moyen et la matrice de covariance associées à la classe prédite. Procédé selon l’une des revendications 2 ou 5 à 7, dans lequel la valeur caractéristique (106, 110) de chaque couche (101) est obtenue en calculant une combinaison statistique matricielle entre les cartes de caractéristiques (111) de la couche. Procédé selon la revendication 8, dans lequel la combinaison statistique matricielle comprend le calcul d’une médiane entre les cellules (112) de même rang et de même colonne, et le calcul d’une valeur maximale parmi toutes les médianes. 10. Procédé selon la revendication 8, dans lequel la combinaison statistique matricielle comprend le calcul d’une médiane entre les cellules (112) de même rang et de même colonne, et le calcul d’une norme de Froebenius d’une matrice (118) composée de toutes les médianes. 11. Procédé selon l’une des revendications 2 ou 5 à 7, dans lequel la valeur caractéristique (106, 110) de chaque couche (101) est obtenue en calculant une unique statistique pour l’ensemble cartes de caractéristiques (111). 12. Procédé selon la revendication 11, dans lequel l’unique statistique correspond à une moyenne entre toutes les cellules (112) des cartes de caractéristiques (111). 13. Procédé selon l’une des revendications 4 à 12, dans lequel la correction de la donnée d’inférence (108) comprend une étape de filtrage du signal injecté et/ou des couches du réseau de neurones. 4 Procédé selon l’une des revendications 4 à 12, dans lequel la correction de la donnée d’inférence (108) comprend une reconstruction de l’entrée de chaque couche (101) par une technique de reconstruction inverse, et une mesure de l’erreur de reconstruction. 15. Procédé selon l’une des revendications 5 à 12, dans lequel au moins une des couches (101) du réseau de neurones est corrigée par substitution de la valeur caractéristique (110) ou de la moyenne entre la valeur caractéristique (110) et la signature de référence (103). 16. Procédé selon l’une des revendications précédentes, dans lequel le nombre de couches extraites (101) est défini en fonction d’un taux d’erreurs résiduelles de la signature courante. 17. Procédé selon la revendication 15, dans lequel : - 10 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -3 ; - 17 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -5 ; - 24 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 -7 ; - 33 couches (101) sont extraites pour un taux d’erreurs résiduelles inférieur à 10 - 9 . 18. Procédé selon l’une des revendications 4 à 17, dans lequel les données d’entraînement (102) sont des images géoréférencées, et dans lequel la donnée d’inférence (108) est une image, la classe prédite (104) correspondant à un géoréférencement de ladite image. 19. Procédé selon l’une des revendications précédentes, comprenant l’extraction des couches (101) les moins corrélées entre elles du réseau de neurones multicouches, parmi l’ensemble des couches du réseau de neurones multicouches. 20. Procédé selon l’une des revendications précédentes, dans lequel les étapes S30), S40) et S50) sont répétées après la correction de la donnée d’inférence (108) et/ou des couches (101) du réseau de neurones, jusqu’à ce que le score de conformité (109) remplisse une condition prédéterminée. Produit programme d’ordinateur comprenant des instructions de code pour la mise en œuvre du procédé selon l’une des revendications 1 à 19 lorsqu’il est exécuté par un ordinateur. Support de stockage lisible par ordinateur stockant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, impliquent que l’ordinateur mette en œuvre le procédé selon l’une des revendications 1 à 19. 3Système (113) de construction d‘une base de données de référence à partir d’un réseau de neurones multicouches, comprenant - un module d’extraction (114) d’une pluralité de couches (101) du réseau de neurones multicouches pour différentes données d’entraînement (102) injectées dans le réseau de neurones ; - un module de détermination d’une pluralité de signatures de référence, chaque signature de référence (103) étant obtenue à partir des couches (101) du réseau de neurones pour les données d’entraînement (102) correspondant à une même classe prédite (104) ; - une base de données de référence (105) associant chaque classe prédite (104) par le réseau de neurones avec une signature de référence correspondante (103) 4Système d’amélioration de la robustesse d’un réseau de neurones multicouches (115) vis-à-vis d’une attaque antagoniste, comprenant : - un module de prédiction de la classe (115) pour chaque donnée d’inférence (108) ; - un module d’extraction (114) d’une pluralité de couches du réseau de neurones multicouches, de façon à obtenir une signature courante (109) pour la donnée d’inférence (108) ; - un module de lecture (116) de la base de données de référence (105) obtenue par le système de construction (113) d‘une base de données de référence selon la revendication 23 ; - un module de mesure d’un score de conformité (117) entre la signature courante (109) et la signature de référence (103) correspondant à la classe prédite, la signature de référence (103) étant déterminée en utilisant la base de données de référence (105) ; le système d’amélioration (115) étant configuré pour valider la donnée d’inférence (108) et la classe associée (104) ou pour corriger la donnée d’inférence (108) et/ou au moins une des couches (101) du réseau de neurones en fonction du score de conformité (119). 25. Système de détermination de la position d’un aéronef (117), comprenant le système d’amélioration de la robustesse (115) selon la revendication 24, les données d’entraînement (102) étant des images géoréférencées, et dans lequel la longueur de la signature de référence (103) et la longueur de la signature courante (109) sont associés à un taux d’erreurs résiduelles du système de détermination de la position d’un aéronef.