FR 3091390 A1 20200703 FR 1874213 A 20181227 Description Titre de l'invention : Procédé de génération d'un exemple ad- versaire pour un modèle d'apprentissage automatique, procédé de robustification, dispositif de génération et programme produit or- dinateur associés [0001] La présente invention concerne un procédé de génération d'un exemple adversaire pour un modèle d'apprentissage automatique. [0002] La présente invention concerne également un procédé de robustification du modèle d'apprentissage automatique, un dispositif de génération et un produit programme ordinateur associés. [0003] En particulier, l'invention concerne le domaine de l'intelligence artificielle et plus particulièrement les modèles d'apprentissage automatique qui se basent sur des approches statistiques afin de permettre d'améliorer les performances du modèle à résoudre des tâches sans être explicitement programmés pour chacune de ces tâches. [0004] L'apprentissage automatique comporte deux phases. La première phase consiste à définir un modèle à partir de données présentes dans une base de données, appelées observations. L'estimation du modèle consiste à effectuer une tâche pratique, telle que traduire un discours, estimer une densité de probabilité, reconnaître la présence d'un objet dans une image ou classer un fichier numérique, par exemple. Cette phase dite d'apprentissage est généralement réalisée préalablement à l'utilisation pratique du modèle. La seconde phase correspond à l'utilisation du modèle : le modèle étant défini, de nouvelles données hors de la base de données peuvent alors être soumises au modèle afin d'obtenir le résultat correspondant à la tâche souhaitée. [0005] 11 est connu de continuer l'apprentissage du modèle durant la deuxième phase, en prenant en compte un retour sur la qualité des tâches réalisées. Cet apprentissage continu est important pour corriger les défauts du modèle afin de rendre le modèle plus robuste et. ainsi d'améliorer son fonctionnement et de prévenir les éventuelles attaques informatiques contre ce modèle. [0006] En particulier, il est connu de déterminer des exemples adversaires du modèle d'apprentissage automatique. Un exemple adversaire est une donnée d'entrée pour lequel le résultat associé est différent du résultat associé à une autre donnée d'entrée voisine. L'exemple adversaire est donc un cas particulier problématique pour le modèle d'apprentissage automatique. En effet, une légère variation de la donnée d'entrée devrait aboutir à une prédiction semblable si le modèle était suffisamment robuste. Par exemple, le fait de modifier la luminosité d'une image ne doit pas modifier les objets identifiés sur l'image ou le fait d'ajouter quelques mots dans un 2 fichier ne doit pas modifier le fait de savoir s'il contient un virus ou non. [0007] Toutefois, ces exemples adversaires ne donnent pas entière satisfaction, en particulier dans le domaine de la cyber-sécurité. [0008] La présente invention a pour but de proposer un procédé permettant d'améliorer encore la pertinence des exemples adversaires du modèle d'apprentissage automatique. [0009] À cet effet, l'invention a pour objet un procédé de génération d'au moins un exemple adversaire pour un modèle d'apprentissage automatique, le modèle d'apprentissage automatique étant associé à une base de données, le modèle d'apprentissage automatique associant une prédiction à au moins une donnée d'entrée, chaque donnée d'entrée comprenant au moins une composante numérique, le procédé de génération comprenant, pour au moins une donnée d'entrée initiale choisie parmi les données d'entrée issues de la base de données, les étapes suivantes : [0010] - définition d'une fonction de variation de la donnée d'entrée initiale définissant une pluralité de données d'entrée modifiées à partir de la donnée d'entrée initiale; [0011] - définition d'une contrainte de direction à la fonction de variation de sorte que la différence entre au moins une composante de chaque donnée d'entrée modifiée et la composante lui correspondant de la donnée d'entrée initiale soit de signe prédéterminé , et [0012] - génération d'une pluralité de données d'entrée modifiées à partir de la donnée d'entrée initiale par la fonction de variation contrainte ; [0013] - génération de l'exemple adversaire correspondant à la donnée d'entrée modifiée parmi la pluralité de données d'entrée modifiées maximisant la probabilité qu'une prédiction modifiée obtenue par l'application du modèle d'apprentissage automatique à cette donnée d'entrée modifiée soit différente d'une prédiction initiale obtenue par l'application du modèle d'apprentissage automatique à la donnée d'entrée initiale. [0014] Suivant d'autres aspects avantageux de l'invention, le procédé de génération comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : [0015] - chaque donnée d'entrée est associée à un fichier numérique comprenant une suite de caractères, le procédé de génération comprenant une étape de conversion de la suite de caractères en la ou les composantes numériques de la donnée d'entrée ; [0016] - le procédé comprend en outre avant les étapes de génération, une étape de définition d'une contrainte de domaine à la fonction de variation, de sorte que chaque composante de la donnée d'entrée modifiée appartienne à un domaine de définition associé prédéterminé ; [0017] - le procédé comprend comprenant en outre avant les étapes de génération, une étape de définition d'une contrainte de seuil à la fonction de variation, de sorte que la différence entre chaque composante de la donnée d'entrée modifiée et la composante 3 lui correspondant de la donnée d'entrée initiale soit inférieure à un seuil associé prédéterminé ; [0018] - la contrainte de direction à la fonction de variation est définie de sorte que la différence entre chaque composante de chaque donnée d'entrée modifiée et la composante lui correspondant de la donnée d'entrée initiale soit de signe prédéterminé ; et [0019] - la génération de l'exemple adversaire est réalisée par un algorithme d'optimisation à base de gradient. [0020] L'invention a également pour objet un procédé de robustification du modèle d'apprentissage automatique, comprenant les étapes du procédé de génération tek' que définit ci-dessus, le procédé de robustification comprenant en outre les étapes suivantes [0021] - ajout de l'exemple adversaire à la base de données afin d'obtenir une hase de données enrichie ; et [0022] - apprentissage du modèle d'apprentissage automatique à partir de la base de données enrichie. [0023] En complément avantageux, le procédé de robustification comprend une deuxième itération de l'ensemble des étapes du procédé de robustification tel que défini ci-dessus à partir de la base de données enrichie. [0024] L'invention a également pour objet un dispositif de génération d'au moins un exemple adversaire pour un modèle d'apprentissage automatique, le modèle d'apprentissage automatique étant associé à une base de données, le modèle d'apprentissage automatique associant à au moins une donnée d'entrée une prédiction, chaque donnée d'entrée comprenant au moins une composante numérique, le dispositif électronique de génération étant, pour au moins une donnée d'entrée initiale choisie parmi les données d'entrée issue de la base de données, propre à: [0025] - définir une fonction de variation de la donnée d'entrée initiale définissant une pluralité de données d'entrée modifiées à partir de la donnée d'entrée initiale; [0026] - définir une contrainte de direction à la fonction de variation de sorte que la différence entre chaque composante de chaque donnée d'entrée modifiée et la composante lui correspondant de la donnée d'entrée initiale soit de signe constant ; et [0027] - générer une pluralité de données d'entrée modifiées à partir de la donnée d'entrée initiale par la fonction de variation contrainte ; [0028] - générer l'exemple adversaire correspondant à la donnée d'entrée modifiée parmi la pluralité de données d'entrée modifiées maximisant la probabilité qu'une prédiction modifiée obtenue par l'application du modèle d'apprentissage automatique à cette donnée d'entrée modifiée soit différente d'une prédiction initiale obtenue par l'application du modèle d'apprentissage automatique à la donnée d'entrée initiale. [0029] L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exécutées par un ordinateur, mettent en oeuvre un procédé de génération tel que défini précédemment. [0030] Ces caractéristiques et avantages de l'invention apparaitront à la lecture de la des- cription qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : [0031] - [fig.1] la figure 1 est une représentation schématique d'un ensemble électronique comprenant un dispositif électronique de génération selon l'invention ; et [0032] - [fig.2] la figure 2 est un organigramme d'un procédé de robustification selon l' invention. [0033] Un ensemble électronique 10 est représenté sur la figure 1. L'ensemble électronique 10 comprend au moins une base de données 12, un dispositif électronique de modélisation 14, un dispositif électronique de génération 16 et un dispositif électronique de robustification 18. [0034] La base de données 12 est propre à stocker une pluralité de données. Chaque donnée est par exemple un fichier numérique, une image, une vidéo, un son, etc. [0035] Le dispositif de modélisation 14 est propre à exécuter un modèle d'apprentissage au- tomatique. En particulier le dispositif de modélisation 14 est propre à appliquer le modèle d'apprentissage automatique à au moins une donnée d'entrée X afin d'obtenir une prédiction Y associée. [0036] Le modèle d'apprentissage automatique est par exemple un réseau de neurones bien connu de l'homme du métier. [0037] A titre d'exemple, lorsque la donnée d'entrée X est issue d'une image, la prédiction Y associée est par exemple un texte décrivant au moins un objet présent sur l'image. Lorsque la donnée d'entrée X est issue d'un fichier numérique, la prédiction Y est par exemple une traduction dans une autre langue du texte du fichier, une classification du contenu du fichier ou une analyse anti-virus du fichier. [0038] Chaque donnée d'entrée X est un vecteur ou un tableau comprenant au moins une composante Xi. Au moins l'une des composantes Xi est numérique. Avantageusement, toutes les composantes Xi de la donnée d'entrée X sont numériques. [0039] Selon un exemple de réalisation, le dispositif de modélisation 14 se présente sous la forme d'un calculateur indépendant comprenant en outre au moins un processeur et une mémoire. Dans ce cas, le dispositif de modélisation 14 se présente au moins partiellement sous la forme d'un circuit logique programmable de type FPGA (de l'anglais « Field-Programmable Gate An-ay ») et/ou d'un logiciel stocké dans la mémoire du calculateur et exécutable par le processeur de celui-ci. [0040] Selon un autre exemple de réalisation, le dispositif de modélisation 14 est mis en oeuvre par un autre calculateur. Dans ce cas, le dispositif de modélisation 14 se présente au moins partiellement sous la forme d'un logiciel stocké dans une mémoire d'un tel calculateur et exécutable par un processeur de celui-ci. [0041] Le dispositif de génération 16 est propre à générer au moins un exemple adversaire EA pour le modèle d'apprentissage automatique. [0042] En référence à la figure 1, le dispositif de génération 16 comprend un premier module d'acquisition 20, un premier module de traitement 22 et un premier module dc sortie 24. [0043] Le premier module d'acquisition 20 permet d'acquérir l'ensemble des données externes du dispositif de génération 16 nécessaires pour le fonctionnement de celui-ci. En particulier, le premier module d'acquisition 20 est propre à recevoir des données d'entrée X issues de la base de données 12. [0044] Le premier module de traitement 22 est apte à traiter les données acquises par le module d'acquisition 20 à l'aide du dispositif de modélisation 14 afin de mettre en oeuvre un procédé 200 de génération de Pau moins un exemple adversaire EA pour le modèle d'apprentissage automatique. [0045] Finalement, le premier module de sortie 24 est apte à transmettre l'ensemble des données traitées par le premier module de traitement 22 au dispositif de robustification 18. [0046] Selon un exemple de réalisation, le dispositif de génération 16 se présente sous la forme d'un calculateur indépendant comprenant en outre au moins un processeur et une mémoire. Dans ce cas, les modules précités se présentent au moins partiellement sous la forme de circuits logiques programmables de type FPGA (de l'anglais Field-Programmable Gate Array ») et/ou de logiciels stockés dans la mémoire du calculateur et exécutables par le processeur de celui-ci. [0047] Selon un autre exemple de réalisation, le dispositif de génération 16 est mis en oeuvre par un autre calculateur. Dans ce cas, les modules précités se présentent au moins partiellement sous la forme de logiciels stockés dans une mémoire d'un tel calculateur et exécutables par un processeur de celui-ci. [0048] Le dispositif de robustification 18 est propre à mettre en oeuvre la robustification du modèle d'apprentissage automatique. [0049] Par robustification du modèle, on entend une optimisation du modèle par laquelle le modèle est rendu plus robuste et moins sensible aux effets de la variabilité dans les données et des paramètres d'entrée du modèle. [0050] En référence à la figure 1, le dispositif de robustification 18 comprend un deuxième module d'acquisition 26, un deuxième module de traitement 28 et un deuxième module de sortie 30. [0051] Le deuxième module d'acquisition 26 permet d'acquérir l'ensemble des données externes du dispositif de robustification 18 nécessaires pour le fonctionnement de 6 celui-ci. En particulier le deuxième module d'acquisition 26 est propre à recevoir l'au moins un exemple adversaire EA de la part du dispositif de génération 16. [0052] Le deuxième module de traitement 28 est apte à traiter les données acquises par le deuxième module d'acquisition 26 afin de mettre en oeuvre un procédé 300 d'apprentissage du modèle d'apprentissage automatique à partir de la hase de données 12. [0053] Finalement, le deuxième module de sortie 30 est apte à transmettre l'ensemble des données traitées par le deuxième module de traitement 28, et en particulier à transmettre le modèle d'apprentissage automatique rohustifié, au dispositif de modélisation 14. [0054] Selon un exemple de réalisation, le dispositif de robustification 18 se présente sous la forme d'un calculateur indépendant comprenant en outre au moins un processeur et une mémoire. Dans cc cas, les modules précités se présentent au moins partiellement sous la forme de circuits logiques programmables de type FPGA (de l'anglais « Field-Programmable Gate Array ») et/ou de logiciels stockés dans la mémoire du calculateur et exécutables par le processeur de celui-ci. [0055] L'homme du métier comprendra que les dispositifs de modélisation 14, de génération 16 et de robustification 18 se présentent en variante sous la forme d'un calculateur unique. [0056] Selon un autre exemple de réalisation, le dispositif de robustification 18 est mis en oeuvre par un autre calculateur. Dans ce cas, les modules précités se présentent au moins partiellement sous la forme de logiciels stockés dans une mémoire d'un tel calculateur et exécutables par un processeur de celui-ci. [0057] Un procédé de robustification 100 sera désormais expliqué en référence à la figure 2 présentant un organigramme de ses étapes. [0058] Le procédé de robustification 100 comprend le procédé de génération 200 suivi du procédé d'apprentissage 300. [0059] Lors d'une étape initiale optionnelle 210 de conversion, au moins donnée comprise dans la base de données 12 est convertie en une donnée d'entrée X comprenant au moins une composante numérique Xi. [0060] Par exemple, si les données sont des fichiers numériques comprenant une suite de ca- ractères, chaque fichier est transformé en une matrice numérique indiquant pour chaque caractère sa place dans le fragment de texte analysé. [0061] La suite du procédé de robustification 100 est décrit pour une donnée d'entrée initiale X choisie parmi les données d'entrée X issues de la base de données 12. L'homme du métier comprendra que le procédé de robustification 100 est applicable à n'importe quelle donnée d'entrée X issue de la base de données 12. [0062] Lors d'une étape 220, le dispositif de génération 16 définit une fonction de variation 7 F de la donnée d'entrée initiale X définissant une pluralité de données d'entrée modifiées X' à partir de la donnée d'entrée initiale X : [0063] [Math.1] F(x) 100641 La fonction F permet d'obtenir une pluralité de données d'entrées modifiées X' dans le voisinage de la donnée d'entrée initiale X en faisant varier légèrement cette dernière. 100651 Puis le procédé de génération 200 comprend une étape 230 de définition d'une contrainte de direction à la fonction de variation F de sorte que la différence entre au moins composante Xi' de chaque donnée d'entrée modifiée X' et la composante Xi lui correspondant de la donnée d'entrée initiale X soit de signe prédéterminé Si. Le signe prédéterminé Si est positif ou négatif. 100661 Avantageusement, la contrainte de direction à la fonction de variation F est définie de sorte que la différence entre chaque composante Xi' de chaque donnée d'entrée modifiée X' et la composante Xi lui correspondant de la donnée d'entrée initiale X soit de signe prédéterminé Si. 100671 Dans un mode de réalisation avantageux, la contrainte de direction est définie de telle sorte que la différence entre chaque composante Xi' de la donnée d'entrée modifiée X' et la composante Xi lui correspondant de la donnée d'entrée initiale X soit de signe Si positif : [0068] [Math.2] Xi -Xi >0 [0069] On entend par « composante lui correspondant», la même composante de la donnée d'entrée modifiée X' que celle de la donnée d'entrée initiale X. Autrement dit, on entend par « composante lui correspondant », la composante ayant le même indice. [0070] La contrainte de direction Cd est particulièrement avantageuse lorsque la donnée d'entrée X est issue d'un fichier numérique et représente un nombre d'éléments contenus dans ce fichier. En effet, enlever des données au fichier risquerait de casser la structure du fichier et de rendre ce fichier corrompu. Ainsi, avec la contrainte de direction, seul de l'ajout de contenu est possible dans le fichier, cc qui permet de garantir l'intégrité du fichier. [0071] En variante, la contrainte de direction Cd est définie de telle sorte que la différence entre chaque composante Xi' de la donnée d'entrée modifiée X' et la composante Xi lui correspondant de la donnée d'entrée initiale X soit négative. [0072] Dans un mode de réalisation avantageux, le procédé 200 comprend une étape 240 de définition d'une contrainte de domaine à la fonction de variation F, de sorte que chaque composante Xi' de la donnée d'entrée modifiée X' appartienne à un domaine de définition associé prédéterminé. 8 [0073] Le domaine de définition de chaque composante Xi' est par exemple un intervalle numérique compris entre une valeur minimale ai et une valeur maximale pi : [0074] [Math.3] ai