FR3118503A1 - Procédé et dispositif de détection d'anormalité de données - Google Patents

Procédé et dispositif de détection d'anormalité de données Download PDF

Info

Publication number
FR3118503A1
FR3118503A1 FR2014189A FR2014189A FR3118503A1 FR 3118503 A1 FR3118503 A1 FR 3118503A1 FR 2014189 A FR2014189 A FR 2014189A FR 2014189 A FR2014189 A FR 2014189A FR 3118503 A1 FR3118503 A1 FR 3118503A1
Authority
FR
France
Prior art keywords
sample
data
distance
input data
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2014189A
Other languages
English (en)
Other versions
FR3118503B1 (fr
Inventor
Frédéric HEITZMANN
Miguel-Angel SOLINAS
Marina REYBOZ
Romain COHENDET
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR2014189A priority Critical patent/FR3118503B1/fr
Priority to EP21845064.1A priority patent/EP4268132A1/fr
Priority to PCT/EP2021/087687 priority patent/WO2022144340A1/fr
Priority to US18/252,163 priority patent/US20230409881A1/en
Publication of FR3118503A1 publication Critical patent/FR3118503A1/fr
Application granted granted Critical
Publication of FR3118503B1 publication Critical patent/FR3118503B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01DHARVESTING; MOWING
    • A01D46/00Picking of fruits, vegetables, hops, or the like; Devices for shaking trees or shrubs
    • A01D46/24Devices for picking apples or like fruit
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60TVEHICLE BRAKE CONTROL SYSTEMS OR PARTS THEREOF; BRAKE CONTROL SYSTEMS OR PARTS THEREOF, IN GENERAL; ARRANGEMENT OF BRAKING ELEMENTS ON VEHICLES IN GENERAL; PORTABLE DEVICES FOR PREVENTING UNWANTED MOVEMENT OF VEHICLES; VEHICLE MODIFICATIONS TO FACILITATE COOLING OF BRAKES
    • B60T8/00Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force
    • B60T8/17Using electrical or electronic regulation means to control braking
    • B60T8/174Using electrical or electronic regulation means to control braking characterised by using special control logic, e.g. fuzzy logic, neural computing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60TVEHICLE BRAKE CONTROL SYSTEMS OR PARTS THEREOF; BRAKE CONTROL SYSTEMS OR PARTS THEREOF, IN GENERAL; ARRANGEMENT OF BRAKING ELEMENTS ON VEHICLES IN GENERAL; PORTABLE DEVICES FOR PREVENTING UNWANTED MOVEMENT OF VEHICLES; VEHICLE MODIFICATIONS TO FACILITATE COOLING OF BRAKES
    • B60T8/00Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force
    • B60T8/32Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration
    • B60T8/88Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration with failure responsive means, i.e. means for detecting and indicating faulty operation of the speed responsive control means
    • B60T8/885Arrangements for adjusting wheel-braking force to meet varying vehicular or ground-surface conditions, e.g. limiting or varying distribution of braking force responsive to a speed condition, e.g. acceleration or deceleration with failure responsive means, i.e. means for detecting and indicating faulty operation of the speed responsive control means using electrical circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60TVEHICLE BRAKE CONTROL SYSTEMS OR PARTS THEREOF; BRAKE CONTROL SYSTEMS OR PARTS THEREOF, IN GENERAL; ARRANGEMENT OF BRAKING ELEMENTS ON VEHICLES IN GENERAL; PORTABLE DEVICES FOR PREVENTING UNWANTED MOVEMENT OF VEHICLES; VEHICLE MODIFICATIONS TO FACILITATE COOLING OF BRAKES
    • B60T2270/00Further aspects of brake control systems not otherwise provided for
    • B60T2270/40Failsafe aspects of brake control systems
    • B60T2270/406Test-mode; Self-diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Fuzzy Systems (AREA)
  • Environmental Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Abstract

Procédé et dispositif de détection d'anormalité de données La présente description concerne un procédé de détection d'anomalies utilisant un réseau neuronal artificiel entraîné (502) configuré pour mettre en œuvre au moins une fonction auto-associative destinée à répliquer un échantillon de données d'entrée au niveau d'une ou de plusieurs sorties (A), le procédé comprenant : a) l'injection d'un échantillon de données d'entrée dans le réseau neuronal artificiel entraîné (502) afin de générer un premier échantillon répliqué au niveau desdites une ou plusieurs sorties (A) ; b) l'exécution d'au moins une opération de réinjection ; c) le calcul d'un premier paramètre sur la base d'une distance entre une valeur d'un n-ième échantillon répliqué présent au niveau desdites une ou plusieurs sorties et une valeur d'une des valeurs précédemment injectées ou réinjectées ; et d) la comparaison du premier paramètre avec un premier seuil (), et le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières si le premier seuil est dépassé. Figure pour l'abrégé : Fig. 5

Description

Procédé et dispositif de détection d'anormalité de données
La présente description concerne de façon générale des réseaux neuronaux artificiels, et en particulier un procédé et un dispositif de détection d'anomalies dans des données reçues par des réseaux neuronaux artificiels.
L'explosion importante de données a profondément modifié la façon dont nous traitons des données. Avec l'avènement de l'Internet des objets (IoT) amené par la technologie de cinquième génération des systèmes de communication mobile, cette tendance à la croissance est destinée à s'accélérer. L'intelligence artificielle a émergé comme étant un outil fondamental pour un traitement de méga-données ou "big data". En particulier, des réseaux neuronaux artificiels (ANN), en raison de leur capacité à représenter des données complexes, sont devenues un outil clef dans une multitude de taches requérant le traitement de quantités importantes de données. De tels réseaux se sont révélés fournir des résultats sans précédent (par exemple, la vision par ordinateur, la reconnaissance vocale, la traduction automatique, le triage de texte). Par conséquent, il n'est pas surprenant que des ANN embarqués se trouvent maintenant dans un nombre croissant de systèmes.
Le déploiement d'ANN sur des dispositifs de pointe est en effet une alternative à l'envoi des données à des centres de données, et est souhaitable pour un certain nombre de raisons, incluant la confidentialité, le traitement des données à la volée pour éviter un stockage, un retard et une accélération.
Ce flux de données massif et rapide, et les nouvelles utilisations qu'il entraîne, ont le potentiel de provoquer des dégâts importants. De nouveaux systèmes rencontrent nécessairement des situations imprévues et, parmi celles-ci, des anomalies qui pourraient avoir des conséquences dramatiques (par exemple pour des véhicules autonomes, un réseau intelligent, un filtrage de contenus inappropriés). Dans ce contexte, des systèmes efficaces pour détecter des anomalies dans des flux de données sont devenus importants de façon croissante. Une détection d'anomalies (AD) utilisant des ANN profonds est par conséquent un sujet de recherche actif.
L'AD est un problème complexe. Pour décider si des données d'entrée constituent une anomalie, un système doit la distinguer de données d'entrée "régulières". Une façon intuitive de rendre un système capable de détecter des anomalies consiste à l'entraîner à reconnaître ce qui est une donnée "régulière" et ce qui est une anomalie, en lui fournissant des instances de données régulières et irrégulières. Toutefois, une telle approche d'apprentissage supervisée requiert des données d'entraînement dans lesquelles chaque valeur est marquée comme étant une anomalie ou comme étant une donnée régulière, et de telles données d'entraînement sont souvent difficiles et coûteuses à obtenir. De plus, cette approche est sous-optimale en raison d'un déséquilibre de classe. En effet, des données irrégulières sont souvent plus difficiles à obtenir que des données régulières, et par conséquent il y en a beaucoup moins que des données régulières.
Un objectif des modes de réalisation de la présente description est de satisfaire au moins en partie un ou plusieurs des besoins de l'art antérieur.
Un aspect prévoit un procédé de détection d'anomalies utilisant un réseau neuronal artificiel entraîné configuré pour mettre en œuvre au moins une fonction auto-associative destinée à répliquer un échantillon de données d'entrée au niveau d'une ou de plusieurs sorties, le procédé comprenant : a) l'injection d'un échantillon de données d'entrée dans le réseau neuronal artificiel entraîné afin de générer un premier échantillon répliqué au niveau desdites une ou plusieurs sorties du réseau neuronal artificiel entraîné ; b) l'exécution d'au moins une opération de réinjection dans le réseau neuronal artificiel entraîné en partant du premier échantillon répliqué, dans lequel chaque opération de réinjection comprend la réinjection d'un échantillon répliqué présent au niveau desdites une ou plusieurs sorties dans le réseau neuronal artificiel entraîné ; c) le calcul d'un premier paramètre sur la base d'une distance entre une valeur d'un n-ième échantillon répliqué présent au niveau desdites une ou plusieurs sorties résultant de la (n-1)ième réinjection et une valeur d'une des valeurs précédemment injectées ou réinjectées ; et d) la comparaison du premier paramètre avec un premier seuil, et le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières si le premier seuil est dépassé.
Selon un mode de réalisation, le premier paramètre est une distance totale entre la valeur d'un n-ième échantillon répliqué et une valeur de l'échantillon de données d'entrée.
Selon un mode de réalisation, le premier paramètre est une distance moyenne par réinjection.
Selon un mode de réalisation, le réseau neuronal artificiel entraîné est configuré pour mettre en œuvre une fonction de classification, une ou plusieurs sorties supplémentaires du réseau neuronal artificiel entraîné fournissant une ou plusieurs valeurs de sortie de classe résultant de la fonction de classification.
Selon un mode de réalisation, le procédé comprend en outre l'exécution d'une détection de données contradictoires/antagonistes/contradictoires/hostiles en : e) calculant un deuxième paramètre sur la base d'une distance entre des valeurs parmi lesdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant d'une réinjection avec des valeurs parmi lesdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant de l'injection de l'échantillon de données d'entrée ; et f) comparant le deuxième paramètre avec un deuxième seuil, et en traitant l'échantillon de données d'entrée comme étant un échantillon de données contradictoires si le deuxième seuil est dépassé.
Selon un mode de réalisation, les valeurs de sortie de classe sont des logits.
Selon un mode de réalisation, le calcul des premier paramètre et/ou deuxième paramètre comprend le calcul d'un ou de plusieurs parmi :
- la distance d'erreur quadratique moyenne ;
- la distance de Manhattan ;
- la distance euclidienne ;
- la distance ;
- la distance de Kullback-Leibler ;
- la distance de Jeffries-Matusita ;
- la distance de Bhattacharyya ; et
- la distance de Chernoff.
Selon un mode de réalisation, le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières comprend le stockage de l'échantillon de données d'entrée dans un tampon de données d'échantillon, le procédé comprenant en outre l'exécution d'un nouvel apprentissage de classe sur une pluralité d'échantillons de données d'entrée stockées dans le tampon de données d'échantillon.
Selon un autre aspect, on prévoit un système de détection d'anomalies, le système comprenant un dispositif de traitement configuré pour : a) injecter un échantillon de données d'entrée dans un réseau neuronal artificiel entraîné afin de générer un premier échantillon répliqué au niveau d'une ou de plusieurs sorties du réseau neuronal artificiel entraîné, dans lequel le réseau neuronal artificiel entraîné est configuré pour mettre en œuvre au moins une fonction auto-associative destinée à répliquer des échantillons d'entrée au niveau desdites une ou plusieurs sorties ; b) effectuer au moins une opération de réinjection dans le réseau neuronal artificiel entraîné en commençant par le premier échantillon répliqué, dans lequel chaque opération de réinjection comprend la réinjection d'un échantillon répliqué présent au niveau desdites une ou plusieurs sorties dans le réseau neuronal artificiel entraîné ; c) calculer un premier paramètre sur la base d'une distance entre une valeur d'un n-ième échantillon répliqué présent au niveau desdites une ou plusieurs sorties après la (n-1)-ième réinjection et une valeur d'une des valeurs précédemment injectées ou réinjectées ; et d) comparer le premier paramètre à un seuil, et traiter l'échantillon de données d'entrée comme étant un échantillon de données irrégulières si le seuil est dépassé.
Selon un mode de réalisation, le système comprend en outre : un ou plusieurs actionneurs ; et un module d'inférence configuré pour commander lesdits un ou plusieurs actionneurs seulement si l'échantillon de données d'entrée n'est pas détecté comme étant un échantillon de données irrégulières.
Selon un mode de réalisation, le réseau neuronal artificiel entraîné est configuré pour mettre en œuvre une fonction de classification mise en œuvre par le module d'inférence, une ou plusieurs sorties supplémentaires du réseau neuronal artificiel entraîné fournissant une ou plusieurs valeurs de sortie de classe résultant de la fonction de classification.
Selon un mode de réalisation, le dispositif de traitement est configuré en outre pour effectuer une détection de données contradictoires en : e) calculant un deuxième paramètre sur la base d'une distance entre des valeurs parmi lesdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant d'une réinjection avec des valeurs parmi lesdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant de l'injection des données d'entrée ; et f) comparant le deuxième paramètre avec un deuxième seuil, et traitant l'échantillon de données d'entrée comme étant un échantillon de données contradictoires si le deuxième seuil est dépassé.
Selon un mode de réalisation, les valeurs de sortie de classe sont des logits.
Selon un mode de réalisation, le système comprend en outre un tampon de données échantillon, dans lequel le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières comprend le stockage de l'échantillon de données d'entrée au tampon de données échantillon, le procédé comprenant en outre l'exécution d'un nouvel apprentissage de classe sur une pluralité d'échantillons de données d'entrée dans le tampon de données échantillon.
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la illustre schématiquement une architecture d'un ANN du type perceptron multicouche selon un exemple de mode de réalisation ;
la illustre schématiquement un auto-encodeur selon un exemple de mode de réalisation ;
la est un graphe assurant une illustration à deux dimensions de données irrégulières et régulières ;
la est un graphe représentant un exemple de données classées par un classificateur d'ANN ;
la est un graphe représentant un exemple de données contradictoires ;
la illustre schématiquement un système destiné à une détection d'anomalies selon un exemple de mode de réalisation de la présente description ;
la est un organigramme illustrant des opérations d'un procédé de détection d'anomalies selon un exemple de mode de réalisation de la présente description ;
la est un graphe représentant un exemple de trois classes de données et de trajectoires de réinjection d'échantillons de données irrégulières et régulières ;
la illustre schématiquement une architecture d'ANN comprenant un classificateur et un auto-encodeur selon un exemple de mode de réalisation de la présente description ;
la est un schéma-bloc représentant un système de calcul destiné à mettre en œuvre un procédé de détection d'anomalies selon un exemple de mode de réalisation de la présente description ;
la représente l'apprentissage d'un réseau neuronal artificiel selon un exemple de mode de réalisation ;
la représente une réinjection de données dans un réseau neuronal artificiel selon un exemple de mode de réalisation ;
la représente une réinjection de données dans un réseau neuronal artificiel selon un autre exemple de mode de réalisation ;
la est un organigramme représentant des opérations d'un procédé de détection d'anomalies sur la base de la réinjection de données de la ou 10C ;
la est un organigramme représentant des opérations d'un procédé de détection d'anomalies selon encore un autre exemple de mode de réalisation ; et
la illustre un système matériel selon un exemple de mode de réalisation de la présente description.
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques.
Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, des techniques destinées à l'apprentissage d'un réseau neuronal artificiel, sur la base par exemple de la minimisation d'une fonction objective telle qu'une fonction de coût, sont connues de la personne du métier, et ne seront pas décrites ici en détail.
Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments.
Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence à l'orientation des figures.
Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
Dans la description suivante, les termes suivants seront supposés avoir les définitions suivantes :
– "données régulières" : des données qui se trouvent dans une distribution de données d'un ensemble de données déjà connu d'un système de traitement de données. Cette distribution de données est plus grande que les limites de l'ensemble de données connu, mais la détermination de la frontière de cette distribution de données est une des difficultés à surmonter. Les données qui sont identifiées comme étant des données régulières sont par exemple traitées comme telles. Cela peut impliquer par exemple l'application d'une fonction de classification aux données, et/ou un autre traitement des données en supposant qu'elles sont des données valides.
– "données irrégulières" : toute donnée qui n'est pas une donnée régulière. De telles données, qui sont parfois également appelées données anormales, données déviantes, ou données rémanentes, dévient significativement de la distribution de données du jeu de données connu. Par exemple, des données irrégulières peuvent correspondre à des données corrompues, frauduleuses ou d'autres données artificielles telles que des données contradictoires, ou des données appartenant à une classe précédemment inconnue du système de traitement de données ;
– "données contradictoires" : un type particulier de données irrégulières, correspondant à des données qui ont été spécifiquement générées afin de tromper le système de traitement de données pour qu'il les traitent comme étant des données régulières. Par exemple, des données contradictoires sont élaborées afin de tirer parti des imprécisions d'une fonction de classification mise en œuvre par un système de traitement de données. Dans certains cas, un agresseur peut par exemple avoir accès au modèle appliqué par le système de traitement de données, ce qui est connu comme étant une attaque dite boîte blanche, ce qui signifie que même de très petites imprécisions dans le modèle peuvent être exploitées ;
–"auto-associative" : la fonction de réplication d'entrées, comme dans un auto-encodeur. Toutefois le terme "auto-encodeur" est souvent associé à un ANN qui est destiné à effectuer une certaine compression, impliquant par exemple une compression de l'espace latent signifiant que lesdites une ou plusieurs couches cachées contiennent moins de neurones que le nombre de neurones de l'espace d'entrée. En d'autres mots, l'espace d'entrée est incorporé dans un espace plus petit. Le terme "auto-associative" est utilisé ici pour désigner une fonction de réplication similaire à celle d'un auto-encodeur, mais une fonction auto-associative est plus générale en ce qu'elle peut impliquer ou non une compression ;
– "apprentissage supervisé" : apprentissage d'un réseau neuronal qui est basé sur des marquages de réalité de terrain fournis au réseau en même temps que les données ;
- "apprentissage auto-supervisé" : apprentissage d'un réseau neuronal dans lequel les données d'entrée au réseau servent en tant que seule réalité de terrain, par exemple pendant l'apprentissage d'un modèle auto-associatif.
Bien que dans la description qui suit des exemples de mode réalisation soient basés sur une architecture d'ANN du type perceptron multicouche (MLP), il sera évident à la personne du métier que les principes peuvent s'appliquer plus largement à un quelconque ANN, totalement connecté ou non, tel qu'un quelconque réseau neuronal à apprentissage profond (DNN), tel qu'un réseau neuronal récurrent (RNN) ou un réseau neuronal convolutif (CNN), ou tout autre type d'ANN.
Des exemples d'un MLP et d'un auto-encodeur seront décrits ci-après plus en détail en relation avec les figures 1 et 2.
La illustre une architecture d'ANN du type perceptron multicouche 100 selon un exemple de mode de réalisation.
L'architecture d'ANN 100 selon l'exemple de la figure 1 comprend trois couches, en particulier une couche d'entrée (INPUT LAYER), une couche cachée (HIDDEN LAYER), et une couche de sortie (OUTPUT LAYER) générant une sortie Y (FEATURES). Dans d'autres modes de réalisation, il pourrait y avoir plus d'une couche cachée. Chaque couche comprend par exemple un certain nombre de neurones. Par exemple, l'architecture d'ANN 100 définit un modèle dans un espace à 2 dimensions, et il y a ainsi deux neurones visibles dans la couche d'entrée recevant les valeurs correspondantes X1 et X2 d'une entrée X. Le modèle a une couche cachée ayant sept neurones cachés de sortie, et correspond ainsi à une matrice de dimensions , car dans cet exemple c'est une couche complètement connectée, également appelée couche dense. L'architecture d'ANN 100 de la correspond à un réseau de classification, et le nombre de neurones de la couche de sortie correspond ainsi au nombre de classes, l'exemple de la ayant trois classes.
La mise en correspondance appliquée par l'architecture d'ANN 100 est une agrégation de fonctions, ou fonction agrégée, comprenant une fonction associative dans chaque couche, ces fonctions étant connectées dans une chaîne pour mettre en correspondance . Il y a seulement deux telles fonctions dans l'exemple simple de la , correspondant à celles de la couche cachée et de la couche de sortie.
Chaque neurone de la couche cachée reçoit le signal provenant de chaque neurone d'entrée, un paramètre correspondant étant appliqué à chaque neurone j de la couche cachée à partir de chaque neurone d'entrée i de la couche d'entrée. La figure 1 illustre les paramètres à appliqués aux sorties d'un premier des neurones d'entrée à chacun des sept neurones cachés.
L'objectif du modèle neuronal défini par l'architecture 100 est d'approcher une fonction donnée en réglant un ensemble de paramètres . Le modèle correspond à une mise en correspondance , les paramètres étant par exemple modifiés pendant l'apprentissage sur la base d'une fonction objective, telle qu'une fonction de coût. Par exemple, la fonction objective est basée sur la différence entre la réalité de terrain et la valeur de sortie . Dans certains modes de réalisation, la fonction de mise en correspondance est basée sur une projection non linéaire , généralement appelée fonction d'activation, de sorte que la fonction de mise en correspondance peut être définie par , où sont les paramètres de , et est une valeur de vecteur. En général, une même fonction est utilisée pour toutes les couches, mais il est également possible d'utiliser une fonction différente par couche. Dans certains cas, une fonction d'activation linéaire pourrait également être utilisée, le choix entre une fonction linéaire et une fonction non linéaire dépendant du modèle particulier et des données d'apprentissage.
La valeur de vecteur est par exemple évaluée par la fonction non linéaire en tant que l'échantillon d'agrégation. Par exemple, la valeur de vecteur est constituée de poids W, et chaque neurone k de la couche de sortie reçoit les sorties en provenance de chaque neurone j de la couche cachée pondérées par un poids correspondant parmi les poids . La valeur de vecteur peut par exemple être vue comme étant une autre couche cachée avec une fonction d'activation non linéaire et ses paramètres W. La figure 1 représente les poids à appliqués entre la sortie d'un neurone supérieur de la couche cachée et chacun des trois neurones de la couche de sortie.
La projection non linéaire est par exemple sélectionnée manuellement, par exemple comme étant une fonction sigmoïde. Les paramètres de la fonction d'activation sont, toutefois, apprises par apprentissage, par exemple sur la base de la règle de descente du gradient. D'autres caractéristiques de l'architecture d'ANN, telles que la profondeur du modèle, le choix de l'optimiseur pour la descente du gradient et la fonction de coût, sont également sélectionnées par exemple manuellement.
La illustre un auto-encodeur 200 selon un exemple de mode de réalisation. L'auto-encodeur 200 dans l'exemple de la correspond à un exemple utilisé pour un traitement d'imagerie comprenant une compression et une décompression, bien que dans certains cas les opérations de compression et de décompression puissent être sans perte.
Par exemple, des images d'entrée 202 sont injectées dans les neurones d'une couche d'entrée (INPUT LAYER) de l'auto-encodeur 200. Dans le cas d'un traitement d'une image à nuances de gris, il y a par exemple un neurone d'entrée par pixel de l'image d'entrée. Pour d'autres types d'images, tels que des images en couleur, il pourrait y avoir un plus grand nombre de neurones d'entrée. Bien que pour simplifier l'illustration un nombre limité de neurones soit représenté dans la couche d'entrée de la , pour une image de 28 par 28 pixels, la couche d'entrée comprend par exemple 784 neurones.
L'auto-encodeur 200 comprend par exemple également une couche latente (LATENT LAYER) comprenant le plus petit nombre de neurones parmi toutes les couches. Dans l'exemple de la , la couche latente comprend seulement deux neurones. Une ou plusieurs couches cachées entre la couche d'entrée et la couche latente sont des couches d'encodage qui réduisent progressivement le nombre de neurones. Une ou plusieurs couches cachées entre la couche latente et la couche de sortie sont des couches de décodage qui augmentent progressivement le nombre de neurones. Dans l'exemple de la , il y a deux couches cachées d'encodeur et deux couches cachées de décodeur : une première couche cachée d'encodeur (ENCODER HIDDEN LAYER 1), qui comprend par exemple 500 neurones, et une deuxième couche cachée d'encodeur (ENCODER HIDDEN LAYER 2), qui comprend par exemple 300 neurones, une première couche cachée de décodeur (DECODER HIDDEN LAYER 1), qui comprend par exemple 300 neurones, et une deuxième couche cachée d'encodeur (DECODER HIDDEN LAYER 2), qui comprend par exemple 500 neurones. Bien sûr, ce sont essentiellement des exemples. Généralement, les côtés d'encodage et de décodage d'un auto-encodeur sont symétriques, bien qu'i serait également possible que ces côtés soient asymétriques. Une couche de sortie (OUTPUT LAYER) fournit une sortie X' du réseau.
L'objectif du modèle neuronal défini par l'auto-encodeur 200 est de faire une approximation d'une fonction en réglant un ensemble de paramètres . Les paramètres sont par exemple modifiés pendant l'apprentissage sur la base d'une fonction objective, telle qu'une fonction de coût.
Comme dans l'ANN 100 de la figure 1, chaque neurone des couches cachées de l'auto-encodeur 200 reçoit le signal provenant de chaque neurone de la couche précédente, et chaque neurone j applique un paramètre correspondant provenant de chaque neurone i de la couche précédente.
Il y a deux procédures qui peuvent être appliquées à un ANN tel que l'ANN 100 de la figure 1, ou l'ANN 200 de la figure 2, une première étant une procédure d'apprentissage ou de rétro-propagation afin d'apprendre les paramètres , et l'autre étant une procédure d'inférence ou à propagation avant, pendant laquelle des valeurs d'entrée X passent dans la fonction, et sont multipliées par les calculs intermédiaires définissant la fonction de mise en correspondance , afin de générer une sortie dans le cas de l'ANN de classification 100 de la figure 1, ou une sortie dans le cas de l'auto-encodeur ANN 200 de la .
On notera que l'apprentissage d'un auto-encodeur n'implique pas l'utilisation de données d'apprentissage marquées, comme un tel ANN est simplement entraîné pour répliquer, au niveau de la sortie du réseau, les valeurs au niveau de l'entrée du réseau. Ainsi, un auto-encodeur est entraîné au moyen d'un apprentissage auto-supervisé.
Une fois qu'un auto-encodeur a été entraîné, il peut effectuer des inférences, en d'autres mots reproduire sa mise en correspondance entrée-sortie apprise pour de nouvelles données entrantes. Dans le cas d'un classificateur MLP similaire à celui de la , l'exécution d'une inférence implique la fourniture dans l'ANN d'un nouvel échantillon d'entrée, par exemple une image d'entrée, et l'observation du résultat de classification dans la couche de sortie qui résulte de la propagation avant, par exemple la classe que l'ANN associe à une nouvelle image. Dans le cas d'un auto-encodeur similaire à celui de la , l'exécution d'une inférence implique le processus de codage et de décodage d'une entrée pour obtenir sa reconstruction.
Système de traitement de données comprenant par exemple l'ANN MLP 100 de la , l'auto-encodeur 200 de la , ou un autre type de réseau neuronal, peut être soumis à des données irrégulières, comme cela sera décrit ci-après plus en détail en relation avec les figures 3A, 3B et 4.
La est un graphe fournissant une illustration de données irrégulières et régulières, sur la base d'un espace d'entrée à deux dimensions X1, X2. La définition d'anomalies est par exemple discutée en détail dans la publication de Chalapathy et Chawla intitulée "Deep learning for anomaly detection : A survey”, January 24, 2019, et la reproduit sensiblement la figure 3 de cette publication. Des anomalies sont des données qui s'écartent de façon significative par rapport à un ensemble original de données. Par exemple, des régions N1 et N2 de la sont des régions dans lesquelles la majorité des observations est située, et sont ainsi considérées comme étant des données normales ou régulières. Au contraire, des points de données O1, O2 et une région O3 sont situés plus loin de la masse des points de données, et sont ainsi considérés comme étant des anomalies. De telles anomalies peuvent survenir pour une large gamme de raisons, telles que des actions malveillantes, des échecs systèmes ou une fraude intentionnelle.
La est un graphe représentant un exemple de données classées par un classificateur ANN, sur la base d'un espace d'entrée bidimensionnel similaire X1, X2 comme dans l'exemple de la . La fournit en particulier un exemple d'un modèle qui classifie des éléments en trois classes. Par exemple, un réseau neuronal artificiel, tel que l'ANN 100 de la , est entraîné pour mettre en correspondance des échantillons d'entrée définis comme étant des points représentés par des paires de valeurs d'entrée X1 et X2 dans une classe des trois classes C, D et E.
A titre d'exemple, , où X1 est une caractéristique de poids, X2 est une caractéristique de hauteur correspondante, et la fonction met en correspondance les échantillons de hauteur et de poids dans une classification de chat (C), chien (D) ou éléphant (E). En d'autres mots, l'ANN est entraîné pour définir une frontière non linéaire entre chats, chiens et éléphants sur la base d'une caractéristique de poids et d'une caractéristique de hauteur d'un animal, chaque échantillon décrit par ces caractéristiques tombant dans une des trois classes.
L'espace défini par la valeur X1 dans l'axe y et X2 dans l'axe x est divisé en trois régions 202, 204 et 206, correspondant respectivement aux classes C, D et E. Dans la région 202, tout échantillon a une probabilité plus élevée de tomber dans la classe C que dans les autres classes D et E, et de façon similaire pour les régions 204 et 206. Une frontière 208 entre les classes C et D, et une frontière 210 entre les classes D et E, sont les frontières de décision de classe. L'épaisseur de ces frontières représente l'incertitude du modèle, c'est-à-dire que, le long de ces frontières, des échantillons ont des probabilités égales d'appartenir à chacune des deux classes séparées par la frontière.
Les pentagones dans la représentent des points de données apprises, et les cercles en traits pointillés de chaque région 202, 204, 206 indiquent la limite des échantillons. Des étoiles dans chacun des cercles en traits pointillés représentent de nouvelles données d'entrée mais régulières qui sont classées de façon appropriée par le réseau. Les cercles en représentent de nouvelles données irrégulières. Ces anomalies révèlent d'importants aperçus des données et transportent souvent de précieuses informations relatives à des données. Par conséquent, l'utilisation de la détection d'anomalies pour pouvoir identifier de façon précise de telles anomalies est une objection clef dans différents systèmes de prise de décision.
La est un graphe représentant un exemple de données contradictoires, de nouveau sur la base d'un espace d'entrée bidimensionnel similaire à celui des figures 3A et 3B. L'exemple de la est basé sur une publication Internet de N. Papernot et I. Goodfellow, "Breaking things is easy", cleverhans-blog, December 16, 2016. Des exemples contradictoires sont un cas particulier d'anomalies. Selon une publication de Goodfellow et al., 2014, intitulée "Explaining and harnessing adversarial examples", des exemples contradictoires sont des "inputs formed by applying small but intentionally worst-case perturbations to examples from the dataset, such that the perturbed input results in the model outputting an incorrect answer with high confidence" (des entrées formées en appliquant des perturbations petites mais intentionnellement du pire cas à des exemples provenant de l'ensemble de données, de sorte que l'entrée perturbée résulte dans le fait que le modèle délivre une réponse incorrecte à confiance élevée). Une explication courante du phénomène est basée sur l'accord habituellement imparfait entre des frontières de décision de taches et des frontières de décision de modèle, comme cela est illustré en , comme cela sera expliqué ci-après.
Une courbe en trait continu 402 en représente une frontière de décision de modèle entre les classes A et B, en d'autres mots une frontière qui a été apprise par un ANN, alors qu'une courbe en traits pointillés 404 en représente une frontière de décision de tache, en d'autres mots la frontière de classe réelle entre les classes A et B. Des croix en représentent les points d'apprentissage pour la classe A, et les cercles des points d'apprentissage pour la classe B.
Une croix 406 en représente un premier exemple contradictoire correspondant au déplacement d'un point de test 408 pour la classe A à travers la frontière de décision de tache 402, sans traverser la frontière de décision de tache 404. Ainsi, l'exemple contradictoire 406 est identifié incorrectement comme tombant dans la classe B.
Un cercle 410 en représente un deuxième exemple contradictoire correspondant au déplacement d'un point de test 412 pour la classe B à travers la frontière de décision de modèle 402, sans traverser la frontière de décision de tache 404. Ainsi, l'exemple contradictoire 410 est identifié incorrectement comme tombant dans la classe A.
Être apte à détecter de façon fiable la présence de données d'entrée contradictoires est d'une grande importance, par exemple pour la sécurité du système.
La est un schéma bloc représentant un système 500 configuré pour mettre en œuvre un procédé de détection d'anomalies selon un exemple de mode de réalisation de la présente description.
Le système 500 comprend un réseau neuronal artificiel 502 qui applique au moins une fonction auto-associative, et génère au moins une ou plusieurs sorties, une ou plusieurs valeurs de sortie auto-associé A. Dans certains modes de réalisation, l'ANN 502 applique également une fonction hétéro-associative, ou de classification, et génère, au niveau d'une ou de plusieurs sorties, une ou plusieurs valeurs de sortie hétéro-associatives H. Le système 500 comprend en outre un circuit de commande (CTRL) 504, qui comprend par exemple un tampon mémoire (BUFFER) 506.
Le circuit de commande 504 a par exemple une entrée configurée pour recevoir un échantillon de données d'entrée (INPUT). En outre, le circuit de commande 504 est par exemple configuré pour recevoir lesdites une ou plusieurs valeurs de sortie auto-associatives A en provenance de l'ANN 502. Dans certains modes de réalisation, le circuit de commande 504 reçoit également lesdites une ou plusieurs valeurs de sortie hétéro-associatives H en provenance de l'ANN 502. Comme cela sera décrit plus en détail ultérieurement, les valeurs de sortie auto-associatives A sont par exemple fournies au circuit de commande 504 afin d'être réinjectées comme partie d'un procédé de détection de données irrégulières. Comme cela sera également décrit plus en détail ultérieurement, les valeurs de sortie hétéro-associatives H sont par exemple fournies au circuit de commande 504 dans le but de détecter des exemples contradictoires.
Le circuit de commande 504 comprend également par exemple une sortie destinée à fournir un signal de détection d'anomalies (ANOMALY DETECTION) indiquant lorsqu'une anomalie a été détectée, et/ou une sortie fournissant un signal de sortie (OUTPUT) générée par l'ANN 502.
Soit l'un parmi l'ANN 502 et le circuit de commande 504, soit les deux peuvent être mis en œuvre par un matériel informatique dédié, ou par un programme informatique exécuté par un ou plusieurs processeurs, ou par une combinaison de matériel informatique et de logiciel.
Le fonctionnement du système de détection d'anomalies 500 de la sera décrit ci-après plus en détail en relation avec la .
La est un organigramme illustrant des opérations dans un procédé de détection d'anomalies selon un exemple de mode de réalisation de la présente description. Ce procédé est par exemple mis en œuvre par le système 500 de la . Le procédé est par exemple appliqué chaque fois qu'un nouvel échantillon de données d'entrée INPUT est reçu par le circuit de commande 504.
Dans une opération 601 (RECEIVE INPUT DATA), un échantillon de données d'entrée est reçu. Par exemple, cet échantillon de données d'entrée correspond au signal d'entrée INPUT du circuit de commande 504 de la . En fonction de l'application, cet échantillon de données d'entrée peut correspondre à un quelconque type parmi une large gamme de types de signal, comportant, mais n'étant pas limité à, un signal capturé par un ou plusieurs capteurs, tel qu'une image, une séquence audio, une mesure d'un accéléromètre, une mesure de température, etc.
Dans une opération 602 (FIRST INFERENCE), l'échantillon de données d'entrée est appliqué à un ANN entraîné afin d'effectuer une première inférence. L'ANN entraîné est configuré pour mettre en œuvre au moins une fonction auto-associative pour répliquer des échantillons d'entrée au niveau desdites une ou plusieurs sorties. Par exemple, l'ANN entraîné est l'ANN 502 de la . La génération de la première inférence implique par exemple l'injection, par le circuit de commande 504, l'échantillon de données d'entrée dans l'ANN 502, et la réception en réponse d'un échantillon répliqué au niveau desdites une ou plusieurs sorties de l'ANN 502.
L'ANN 502 a par exemple été entraîné sur la base d'un ensemble de données d'apprentissage en utilisant un apprentissage supervisé et/ou non supervisé. En particulier, la fonction auto-associative de l'ANN 502 a par exemple été entraînée par un apprentissage auto-supervisé. Le modèle de la fonction auto-associative a par exemple été entraîné pour apprendre à reconstruire les données d'un ensemble de données correspondant à ce qui a été considéré comme des données "régulières". En d'autres mots, cet ensemble de données d'apprentissage ne comprend pas de données irrégulières, mais seulement des données régulières. Pendant l'apprentissage, les paramètres de l'ANN 502, comportant les poids et biais, sont par exemple actualisés de façon itérative jusqu'à ce que le modèle a appris une fonction pour transformer une entrée en une sortie. Par exemple, comme cela est connu de la personne du métier, cela peut impliquer la définition d'une fonction de perte qui représente une insatisfaction liée aux résultats du modèle ; c'est-à-dire, la perte est élevée lorsque le modèle effectue un mauvais travail et faible lorsqu'il est bien exécuté. Typiquement, l'apprentissage consiste à minimiser la fonction de perte en modifiant les paramètres du modèle pour qu'il converge vers une bonne mise en correspondance entre les entrées et les sorties. La modification de paramètres est par exemple effectuée en utilisant une technique connue comme étant une descente du gradient. Un signal d'erreur est propagé en arrière à travers tous les neurones afin de régler de façon itérative les paramètres internes du modèle.
Une fois que ce type d'apprentissage est achevé, l'ANN 502 est prêt à être utilisé dans le but de détecter des anomalies, sans impliquer une nouvelle phase d'apprentissage pour chaque nouvelle donnée entrante comme cela est requis dans certaines solutions de l'état de la technique, réduisant ainsi de façon significative le temps de calcul.
Si l'ANN 502 met également en œuvre une fonction de classification, cette partie hétéro-associative a par exemple été entraînée en utilisant un apprentissage supervisé, par exemple sur la base de données d'apprentissage marquées provenant de l'ensemble de données. Pendant l'apprentissage, des paires de données sont présentées au réseau, par exemple X peut être des images et Y les marquages décrivant la classe à laquelle ils appartiennent. Le classificateur est entraîné pour mettre en correspondance les images avec leurs classes correspondantes. Plus généralement, le classificateur est entraîné pour mettre en correspondance des échantillons d'entrée de l'ensemble de données d'apprentissage avec les marquages associés.
Dans une opération 603 (MULTIPLE REINJECTIONS), n opérations de réinjection sont effectuées par exemple dans le réseau neuronal artificiel entraîné, en commençant par l'échantillon répliqué résultant de l'injection de l'échantillon de données d'entrée à l'opération 602. Chaque opération de réinjection comprend la réinjection dans l'ANN entraîné d'un échantillon répliqué présent au niveau desdites une ou plusieurs sorties dans le réseau neuronal artificiel entraîné. Par exemple, le circuit de commande 504 de la est configuré pour réinjecter en retour lesdites une ou plusieurs valeurs auto-associatives A dans l'ANN 502. La valeur de n est par exemple égale à au moins 1, et dans certains cas à au moins 3, par exemple entre 3 et 20.
Dans une opération 604 (CALCULATE DISTANCE), une distance totale est calculée entre la valeur du n-ième échantillon répliqué, c'est-à-dire l'échantillon présent au niveau desdites une ou plusieurs sorties de l'ANN entraîné résultant de la n-ième réinjection, et une valeur d'une des valeurs précédemment injectées ou réinjectées. Par exemple, la distance est calculée par rapport à l'échantillon de données d'entrée, ou par rapport à l'échantillon répliqué résultant de l'injection dans l'ANN de l'échantillon de données d'entrée. Il y a une variété de métriques de distance qui pourrait être utilisée afin de générer la distance, et la personne du métier comprendra comment choisir une métrique appropriée sur la base, par exemple, du type d'échantillons en cours de traitement. Par exemple, une ou plusieurs des métriques de distance suivantes pourraient être utilisées : la distance d'erreur quadratique moyenne (MSE) ; la distance de Manhattan ; la distance euclidienne ; la distance χ2 ; la distance de Kullback-Leibler ; la distance de Jeffries-Matusita ; la distance de Bhattacharyya ; et la distance de Chernoff. Dans le cas où les échantillons de données sont des images, la distance MSE est par exemple la métrique la plus simple à utiliser. La MSE pour une image couleur est, par exemple, simplement la somme des différences au carré entre des valeurs d'intensité. La distance est par exemple calculée par le circuit de commande 504.
Dans une opération 605 (DISTANCE > ?), la distance calculée à l'opération 604, est comparée au seuil . Si ce seuil est dépassé (Y), à une opération 606 (PROCESS INPUT DATA AS ANOMALY), l'échantillon de données d'entrée est par exemple traité comme étant une anomalie. Par exemple, cela implique la génération, par le circuit de commande 504, du signal de détection d'anomalies indiquant qu'une anomalie a été détectée. En outre ou selon une variante, la valeur de données d'entrée est stockée dans le tampon 506, où elle est par exemple ajoutée à une liste d'anomalies identifiées. Dans certains modes de réalisation, cette liste d'anomalies est utilisée comme base pour un nouvel apprentissage de classe lorsque le nombre d'échantillons dans la liste atteint un certain nombre qui permet une telle opération. En particulier, si certains ou tous les échantillons d'anomalies sont regroupés, ils peuvent correspondre à une ou plusieurs nouvelles classes qui peuvent être apprises en utilisant une technique d'apprentissage supervisée, comme cela est connu de la personne du métier. Certaines ou toutes les anomalies peuvent également bien sûr être relativement dispersées dans l'espace d'entrée, ce qui signifie qu'aucune nouvelle classe ne peut être identifiée.
Si à l'opération 605, le seuil n'est pas dépassé (N) par la distance calculée à l'opération 604, à une opération 607 (PROCESS INPUT DATA AS REGULAR), l'échantillon de données d'entrée, est par exemple traité comme étant un échantillon de données régulières. Par exemple, cela peut signifier que le circuit de commande 504 est configuré pour générer le signal de sortie OUTPUT soit en validant l'échantillon de données d'entrée comme étant une donnée régulière, soit en fournissant un résultat sur la base de cette donnée. Par exemple, dans le cas où l'ANN 502 exécute une fonction de classification, la sortie hétéro-associative H résultant de l'injection de l'échantillon de données d'entrée peut être fournie en tant que signal de sortie OUTPUT.
Alors que dans l'exemple de la seule une distance totale est calculée à l'opération 605 après que n réinjections ont été effectuées, dans d'autres modes de réalisation il serait possible d'effectuer en outre un ou plusieurs calculs de distance après chaque réinjection, chaque distance étant par exemple calculée par rapport à l'échantillon de données d'entrée, ou par rapport à l'échantillon de données réinjecté qui résultait de l'échantillon de données répliqué au niveau desdites une ou plusieurs sorties de l'ANN entraîné. Par exemple, une distance l est calculée sur la base du résultat de la première inférence (opération 602), une distance 2 sur la base du résultat de la première réinjection, et ainsi de suite, jusqu'à une distance (n+1) résultant de cette n-ième réinjection. Ces distances intermédiaires permettent par exemple de modifier le nombre de réinjections en fonction de l'évolution de la distance et/ou de la vitesse de variation.
Le système de détection d'anomalies 500 de la , et le procédé de détection d'anomalies de la , sont basés sur une observation effectuée par les présents inventeurs que les variations de la trajectoire suivies par des échantillons auto-associatifs au moment de réinjections sont différentes entre des données régulières et des données irrégulières. Cela sera décrit ci-après plus en détail en relation avec la .
La est un graphe représentant un exemple de trois classes de données et de trajectoires de réinjection pour des échantillons de données régulières et irrégulières. La est basée sur un espace d'entrée bidimensionnel X1, X2 similaire à celui des figures 3A et 3B. Il y a par exemple trois classes de données CLASS 1, CLASS 2 et CLASS 3 qui ont été apprises par le modèle de l'ANN, par exemple l'ANN 502 de la . Les données d'apprentissage sont illustrées en , des points pentagonaux représentant les échantillons de classe 1, des points en diamant représentant les échantillons de classe 2, et des points ronds représentant les échantillons de classe 3. Les frontières de classe du modèle du modèle sont représentées par une courbe en traits pointillés 702.
Une étoile 704 fournit un exemple d'un nouvel échantillon de données correspondant à des données régulières dans la classe 3. Après la première injection (1ST INJ) de ce nouvel échantillon de données dans l'ANN entraîné, l'échantillon répliqué résultant au niveau de la sortie de l'ANN se trouve à un point plus proche du centre de la classe 3. Après une première réinjection (1ST REINJ) de l'échantillon répliqué dans l'ANN entraîné, l'échantillon répliqué résultant au niveau de la sortie de l'ANN se trouve à un point plus proche du centre de la classe 3.
Une étoile 706 fournit un exemple d'un nouvel échantillon de données correspondant à des données irrégulières dans les frontières de décision de la classe 2, mais éloignées de toutes les classes apprises. Dans ce cas, après la première injection (1ST INJ) de ce nouvel échantillon de données dans l'ANN entraîné, l'échantillon répliqué résultant au niveau de la sortie de l'ANN se trouve à un point plus proche de la classe 1, et s'est déplacé d'un saut relativement grand. Après une première réinjection (1ST REINJ) de l'échantillon répliqué dans l'ANN entraîné, l'échantillon répliqué résultant au niveau de la sortie de l'ANN se trouve à un point encore plus proche de la classe 1. Il en est de même pour les deuxième et troisième réinjections (2ND REINJ, 3RD REINJ).
On notera que la taille du pas des valeurs de données auto-associatives au moment de chaque réinjection est significativement plus grande dans le cas d'échantillons de données irrégulières que dans le cas d'échantillons de données régulières. Cela résulte du fait que la réinjection de l'entrée, qui implique par exemple le codage et le décodage de l'échantillon de données à plusieurs reprises, le fait converger de façon incrémentielle vers la structure de données inhérentes qui a été apprise par l'ANN entraîné. La vitesse à laquelle cela se produit est supérieure pour des données irrégulières, comme elles partent de points qui sont éloignés des réplications apprises. Par exemple, en comparant la distance de trajectoire totale à un seuil, un mécanisme fiable de détection d'anomalies peut être fourni.
Toutefois, bien que l'utilisation d'une mesure de distance a été décrite afin de discriminer le comportement différent des échantillons de données irrégulières par rapport aux échantillons de données régulières, un autre paramètre pourrait être utilisé qui est calculé sur la base de la distance, tel que la vitesse de variation, calculée par exemple sous forme de la moyenne des distances calculées pour chaque injection ou réinjection.
Le seuil qui est utilisé pour discriminer entre des données régulières et irrégulières est calculé par exemple sur la base de l'ensemble de données utilisé pour entraîner l'ANN. Par exemple, une pluralité des échantillons de données des données de test de l'ensemble de données d'apprentissage, c'est-à-dire des échantillons de données qui ne sont pas utilisées pour l'apprentissage en cours, mais pour tester l'ANN entraîné, sont réinjectés n fois pour mesurer la moyenne des distances totales de convergence calculées pour chacun des échantillons de données. De façon similaire, l'exercice est par exemple répété pour une pluralité d'anomalies, qui pourraient correspondre simplement au bruit si des données irrégulières ne sont pas disponibles, qui sont chacune réinjectées n fois pour mesurer la distance moyenne de convergence vers la distribution de données apprises. Le paramètre peut ensuite être fixé à une valeur permettant une discrimination entre des distances des échantillons irréguliers et réguliers, telle que la distance à mi-chemin entre chaque distance moyenne. Dans certains modes de réalisation, ce paramètre seuil est mis à jour sous forme d'une fonction de nouvelles données traitées par le système. Par exemple, si de nouvelles données sont déterminées comme étant des données régulières, la distance calculée pour ces nouvelles données peut être utilisée pour mettre à jour le paramètre afin de prendre en compte tous les écarts généraux dans les données. En outre, dans le cas où aucun ensemble de données d'apprentissage n'est disponible, par exemple si l'ANN a seulement une fonction auto-associative et aucune fonction hétéro-associative, il serait également possible de calculer ce paramètre seuil en utilisant des données synthétiques obtenues en échantillonnant la distribution de données apprise par l'ANN entraîné.
Dans certains modes de réalisation, le seuil est également fixé sur la base d'un critère de risque, c'est-à-dire le nombre d'anomalies positives fausses (c'est-à-dire de données régulières détectées comme étant des anomalies) qui est considéré acceptable pour l'application donnée. Par exemple, sur la base de l'ensemble de données d'apprentissage, le paramètre peut être sélectionné afin de cibler un taux donné de positifs faux, par exemple 1 %. Dans un tel cas, le seuil est par exemple choisi de sorte que 99 % des valeurs de données régulières ne soient pas identifiées comme étant des anomalies.
On notera que, dans l'exemple de la , le nombre n de réinjections dans le cas de l'échantillon de données régulières et dans le cas de l'échantillon de données contradictoires ne sont pas identiques. En effet, dans certains modes de réalisation, le nombre n est fixé, alors que dans d'autres modes de réalisation il peut être variable en fonction, par exemple, d'une vitesse détectée de convergence. Par exemple, s'il est détecté que la vitesse est très lente, par exemple que la distance entre des réinjections consécutives est tombée en-dessous d'un seuil donné, les réinjections sont arrêtées plus rapidement que s'il est déterminé que la vitesse est relativement rapide. Dans certains modes de réalisation, des réinjections peuvent être effectuées jusqu'à ce qu'il soit détecté qu'un mouvement s'est totalement arrêté, en d'autres mots jusqu'à ce que l'échantillon répliqué au niveau de la sortie auto-associative résultant d'une réinjection soit égal à l'échantillon d'entrée, impliquant une distance égale à zéro.
La illustre schématiquement un exemple de mise en œuvre de l'ANN 502 de la dans le cas où il comprend des fonctions à la fois auto-associative et hétéro-associative.
L'ANN 502 de la figure 8 est identique à l'ANN 100 de la figure 1, mais comprend en plus une partie auto-associative capable de répliquer les données d'entrée en utilisant des neurones de la couche de sortie. Ainsi, ce modèle effectue une intégration à partir de , où m désigne les caractéristiques, et c les classes. Comme dans l'exemple de la , dans l'ANN 502 de la , chaque échantillon d'entrée a deux valeurs, correspondant à un espace d'entrée bidimensionnel, et il y a donc également deux neurones de sortie supplémentaires correspondant (FEATURES) destinés à générer un pseudo échantillon de sortie (X') répliquant l'échantillon d'entrée. Par exemple, chaque échantillon d'entrée X est constitué d'une paire de valeurs X1, X2, et l'ANN 502 classe ces échantillons comme étant dans l'une des classes C0, C1 ou C2, correspondant au marquage (LABELS) constituant la valeur de sortie Y.
La partie auto-associative de l'ANN 502 se comporte de façon similaire à un auto-encodeur. Comme cela est mentionné précédemment, le terme "auto-associative" est utilisé ici pour désigner une fonctionnalité similaire à celle d'un auto-encodeur, si ce n'est que l'espace latent n'est pas nécessairement comprimé. En outre, comme pour l'apprentissage d'un auto-encodeur, l'apprentissage de la partie auto-associative de l'ANN peut être effectuée avec certaines contraintes afin d'éviter que l'ANN converge rapidement vers la fonction d'identité, comme cela est bien connu de la personne du métier.
Dans l'exemple de la , le réseau est commun à la partie auto-associative et à la partie de classification, si ce n'est dans la couche de sortie. En outre, il y a une connexion depuis chaque neurone de la couche cachée à chacun des neurones X1' et X2' de la couche de sortie. Toutefois, dans des variantes de mode de réalisation, il pourrait y avoir une quantité plus faible de chevauchement, ou pas de chevauchement du tout, entre les parties auto-associative et de classification de l'ANN 502. En effet, dans certains modes de réalisation, les fonctions auto-associative et hétéro-associative pourraient être mises en œuvre par des réseaux neuronaux séparés. Dans certains modes de réalisation, en plus des neurones communs dans la couche d'entrée, il y a au moins un autre neurone commun dans les couches cachées entre les parties auto-associative et de classification de l'ANN 502. Un neurone commun implique que ce neurone fournit sa sortie directement, ou indirectement, c'est-à-dire par l'intermédiaire d'un ou de plusieurs neurones d'autres couches, à au moins un des neurones de sortie de la partie auto-associative et à au moins un des neurones de sortie de la partie de classification.
Comme cela est illustré en , les sorties auto-associatives de l'ANN sont réinjectées en retour (REINJECTION) aux entrées de l'ANN. Une telle réinjection est effectuée par exemple par le circuit de commande 502 comme cela est décrit précédemment dans le but de détecter des anomalies. Ainsi, la partie auto-associative du modèle d'ANN est utilisée en tant que fonction récursive, en ce que ses sorties sont utilisées comme étant ses entrées.
La est un schéma-bloc représentant un système de calcul 900 destiné à mettre en œuvre un procédé de détection d'anomalies selon un exemple de mode de réalisation de la présente description. En particulier, la représente un exemple dans lequel l'ANN 502 et le circuit de commande 504 de la sont mis en œuvre par logiciel.
Par exemple, le système de calcul 900 comprend un dispositif de traitement (P) 902 comprenant une ou plusieurs CPU ("Central Processing Unit", unité de traitement central) sous la commande d'instructions stockées dans une mémoire d'instructions (INSTR MEM) 904. Selon une variante, plutôt que des CPU, le système de calcul pourrait comprendre une ou plusieurs NPU ("Neural Processing Unit", unité de traitement neuronal) ou des GPU (de l'anglais "Graphics Processing Unit", unité de traitement graphique), sous la commande d'instructions stockées dans la mémoire d'instructions 904. Ces instructions amènent par exemple les fonctions du circuit de commande 504, comme cela a été décrit précédemment en relation avec les figures 5 et 6, à être mises en œuvre.
Le système de calcul 900 comprend également par exemple une mémoire supplémentaire (MEMORY) 906, qui peut être mise en œuvre dans un même dispositif mémoire que la mémoire 904, ou dans un dispositif mémoire séparé. La mémoire 906 stocke par exemple l'ANN 502 dans une région mémoire 908, de sorte qu'une émulation informatique de cet ANN est possible. Par exemple, l'ANN 502 est complètement défini comme étant une partie d'un programme stocké par la mémoire d'instruction 904, comportant la définition de la structure de l'ANN, c'est-à-dire le nombre de neurones dans les couches d'entrée et de sortie et dans les couches cachées, le nombre de couches cachées, les fonctions d'activation appliquées par les circuits de neurones, etc. En outre, des paramètres de l'ANN appris pendant l'apprentissage, tels que ses paramètres et poids, sont par exemple stockés dans les régions 908 de la mémoire 906. De cette façon, l'ANN 502 peut être entraîné et activé dans l'environnement informatique du système de calcul 900. Une région mémoire supplémentaire 910 de la mémoire 906 met par exemple en œuvre le tampon 506 de la stockant la liste d'anomalies (ANOMALY LIST).
Dans certains modes de réalisation, le système de calcul 900 comprend également une interface d'entrée/sortie (I/O INTERFACE) 912 par l'intermédiaire de laquelle de nouveaux échantillons de données d'entrée sont par exemple reçus, et à partir de laquelle des données de résultat peuvent être sorties de l'ANN 502.
La figure 10A représente l'apprentissage du réseau neuronal artificiel 502 selon un exemple de mode de réalisation. Dans l'exemple de la figure 10A, le réseau 502 comprend une partie de codage 1004, et une partie de décodage 1006. Pendant l'apprentissage, des échantillons de données d'entrée X sont fournis à l'entrée (INPUT) de la partie de codage 1004, et la partie de décodage fournit, au niveau de sa sortie (OUTPUT), des premières sorties 1008 correspondant à des valeurs de reconstruction résultant de la mise en œuvre de la fonction auto-associative par le réseau 502. Ces sorties sont utilisées dans une fonction de perte en figure 10A, où est la perte de Reconstruction, qui reflète la différence entre l'entrée originale X et la sortie . La partie de décodage 1006 a également une ou plusieurs sorties 1010 correspondant aux valeurs de classification résultant de la mise en œuvre d'une fonction hétéro-associative par le réseau 502. Ces sorties sont utilisées dans une fonction de perte en figure 10A, où est la perte de Classification, qui reflète la différence entre le marquage de réalité de terrain Y et le marquage prédit pendant l'apprentissage. Par exemple, pendant l'apprentissage, les deux pertes La et Lc sont ajoutées ensemble pour un apprentissage en commun des fonctions auto- et hétéro-associatives.
La représente une réinjection de données (REINJECTIONS) dans le réseau neuronal artificiel 502 selon un exemple de mode de réalisation pendant une détection d'anomalies. Chaque nouvel échantillon de données arrivant X0, X1, X2, …, X(n-1) est réinjecté une seule ou plusieurs fois pour générer des sorties auto-associatives X1, X2, X3, …, Xn, et ses variations au moment de ses reconstructions sont mesurées afin de détecter des anomalies. Des marquages prédits Y0, Y1, Y2, …, Yn, sont également générés par exemple par la fonction de classification.
Les figures 10A et 10B correspondent à un cas dans lequel la fonction de classification est appliquée à la sortie de la partie décodeur 1006. Dans des variantes de mode de réalisation, il peut y avoir une séparation plus tôt entre les fonctions auto- et hétéro-associatives, dont un exemple est illustré en .
La illustre un cas dans lequel la fonction de classification est appliquée à l'espace latent au niveau de la sortie de la partie encodeur 1004, en parallèle à la partie décodeur 1006. La réinjection d'apprentissage et de données pour la détection d'anomalies sur la base du modèle de la est par exemple la même que celle des figures 10A et 10B. Un avantage du modèle de la est que la séparation des fonctions de classification et auto-associative conduit à un certain niveau d'indépendance entre les modèles pendant l'apprentissage. Par exemple, le modèle des figures 10A et 10B est particulièrement efficace pour traiter des images en noir et blanc ou en nuances de gris, tandis que le modèle de la est particulièrement efficace pour traiter des images en couleurs, ou pour des cas dans lesquels des logits doivent être utilisés comme partie de la détection d'anomalies.
La est un organigramme représentant des opérations d'un procédé 1100 de détection d'anomalies selon un autre exemple de mode de réalisation, qui est similaire au procédé de la . Ce procédé 1100 est par exemple mis en œuvre par le système de détection d'anomalies 500 de la . Un exemple d'échantillons de données sous forme d'images est illustré en , ceci à des fins essentiellement illustratives, tout type d'échantillon de données étant possible.
L'échantillon de données d'entrée INPUTi est appliqué à l'ANN pour effectuer une première inférence (1ST INFER) et pour générer une première sortie auto-associative Ai1 (GENERATED Ai1). Une ou plusieurs réinjections REINJ1 à REINJn sont ensuite effectuées, résultant chacune en une sortie auto-associative correspondante Ai2 à Ai(n+1) (GENERATED Ai2, GENERATED Ai(n+1)). La distance totale d(Ai(n+1),i), en d'autres mots la distance entre la sortie auto-associative finale Ai(n+1) et l'échantillon de données d'entrée INPUTi, est par exemple comparée au seuil , et, si le seuil est dépassé (Y), l'échantillon de données d'entrée INPUTi est déterminé comme étant une anomalie (ANOMALY), et, si le seuil n'est pas dépassé (N), l'échantillon de données d'entrée INPUTi est déterminé comme étant une donnée régulière (REGULAR DATA).
La est un organigramme représentant des opérations d'un procédé 1200 de détection d'anomalies selon encore un autre exemple de mode de réalisation. Ce procédé 1200 est par exemple mis en œuvre par le système de détection d'anomalies 500 de la . Un exemple d'échantillons de données sous forme d'images est représenté en , ceci à des fins essentiellement illustratives, tout type d'échantillon de données étant possible.
Le procédé 1200 est par exemple similaire au procédé 1100 de la , mais permet également de distinguer un échantillon exemple contradictoire d'autres types d'anomalies. En particulier, on a trouvé que le procédé de la permet une détection d'anomalies pour une large gamme d'anomalies, incluant la majorité d'exemples contradictoires, mais ne fournit pas d'indication relative au moment auquel des exemples contradictoires sont détectés. La présence d'exemples contradictoires peut être le résultat d'une attaque ciblée contre un réseau neuronal, et par conséquent pour certaines applications il serait souhaitable de prévoir des moyens de détection, afin de générer par exemple un signal d'avertissement ou d'appliquer une contre-mesure.
Comme dans le procédé 1100, dans le procédé 1200, l'échantillon de données d'entrée INPUTi est appliqué à l'ANN pour effectuer une première inférence (1ST INFER) et pour générer une première sortie auto-associative Ai1. Toutefois, en outre, une première sortie hétéro-associative Hi1 est générée (GENERATED Ai1 + Hi1). Cette sortie Hi1 est par exemple sous forme de logits, correspondant aux valeurs brutes des prédictions ou sorties du modèle, c'est-à-dire avant la normalisation. En particulier, comme cela est connu de la personne du métier, des logits sont générés par la dernière couche de pré-activation dans un classificateur d'ANN profond, cette couche étant fréquemment désignée comme étant la couche de logits. On propose ici d'utiliser les variations de logits comme mécanisme pour détecter des exemples contradictoires. Par exemple, la sortie H de l'ANN 502 en est par exemple fournie au circuit de commande 504 afin que les logits soient pris en compte pendant le procédé de détection d'anomalies. La illustre certains exemples de vecteurs logits 1202 pour le cas de données régulières, et des vecteurs logits 1204 pour le cas d'un exemple contradictoire.
Plusieurs réinjections REINJ1 à REINJn sont ensuite effectuées, résultant chacune en une sortie auto-associative Ai2 à Ai(n+1), et une sortie hétéro-associative (GENERATED Ai2 + Hi2, GENERATED Ai(n+1) + Hi(n+1)).
Comme dans le procédé 1100, la distance d(Ai(n+1),i), en d'autres mots la distance entre la sortie auto-associative finale Ai(n+1) et l'échantillon de données d'entrée INPUTi, est comparée au seuil , et si le seuil n'est pas dépassé (N), l'échantillon de données d'entrée INPUTi est déterminé pour être une donnée régulière (REGULAR DATA). Toutefois, dans le procédé de la figure 12, si le seuil est dépassé (Y), une étape supplémentaire est effectuée afin de distinguer entre un exemple contradictoire et d'autres types d'anomalies. Par exemple, une distance supplémentaire d(Hi(n+1),Hi1) est calculée, cette distance correspondant par exemple à la distance entre les sorties hétéro-associatives Hi(n+1) et Hi1. Cette distance peut par exemple être déterminée en utilisant les mêmes techniques que pour le calcul de la distance dans l'opération 604 de la figure 6. La distance est ensuite comparée à un seuil supplémentaire , et si le seuil est dépassé (Y), l'échantillon de données d'entrée INPUTi est considéré comme étant un exemple contradictoire (ADVERSARIAL EXAMPLE), tandis que si le seuil n'est pas dépassé (N), l'échantillon de données d'entrée INPUTi est considéré comme étant un autre type d'anomalies (ANOMALY).
Le seuil peut par exemple être fixé en utilisant une technique similaire à celle décrite précédemment pour le cas du seuil . Par exemple, dans certains modes de réalisation le seuil est un seuil qui est utilisé pour identifier une modification de la classe.
Alors que dans l'exemple de la la distance d(Hi(n+1),Hi1) est calculée seulement après que les n réinjections ont été effectuées, dans d'autres modes de réalisation il serait possible d'effectuer un calcul de distance après chaque réinjection, chaque distance étant par exemple calculée par rapport à la sortie précédente, c'est-à-dire d(Hi(n+1),Hi(n)). Cette distance, ou entropie, est par exemple cumulée après chaque réinjection afin de calculer la distance totale d(Hi(n+1),Hi1). En outre ou selon une variante, les différences d(Hi(n+1),Hi(n)) peuvent être utilisées pour décider à quel moment arrêter la réinjection, et/ou pour décider tôt qu'un échantillon d'entrée correspond à un exemple contradictoire.
En outre, bien que dans l'exemple de la la détection de l'exemple contradictoire soit basée sur des logits, elle pourrait plus généralement être basée sur toute sortie de la fonction hétéro-associative, incluant la classe prédite. En effet, une modification de classe est souvent indicative d'un exemple contradictoire.
En outre, bien que dans l'exemple de la figure 12 la détection de l'exemple contradictoire soit effectuée seulement dans le cas où les données ne sont pas détectées comme étant une anomalie, dans d'autres modes de réalisation, la détection de l'exemple contradictoire pourrait être effectuée systématiquement, par exemple en parallèle avec la détection d'anomalies générale. Dans un tel cas, si l'un des seuils de distance ou est dépassé, les données sont marquées comme étant une anomalie.
La illustre un système matériel 1300 selon un exemple de mode de réalisation de la présente description. Le système 1300 comprend par exemple un ou plusieurs capteurs (SENSORS) 1302, qui comprend par exemple un ou plusieurs capteurs parmi des capteurs d'image, des capteurs de profondeur, des capteurs thermiques, des microphones, ou tout autre type de capteurs. Lesdits un ou plusieurs capteurs 1302 fournissent de nouveaux échantillons de données de stimuli à un détecteur de nouveauté (NOV. DET.) 1303, qui comprend par exemple un système de détection d'anomalies tel que décrit ici. Ce détecteur de nouveauté 1303 fournit par exemple les échantillons de données à un module d'apprentissage incrémentiel (INC. LEARNING) 1304 ou à un module d'inférence (INFERENCE) 1306. Dans certains modes de réalisation, le détecteur de nouveauté comprend l'ANN entraîné ayant seulement une fonction auto-associative, et des inférences sont effectuées par le module d'inférence 1306. Par exemple, si le système de détection d'anomalies du détecteur de nouveauté 1303 est configuré pour utiliser des logits pour la détection d'exemples contradictoires, ceux-ci sont par exemple générés par le module d'inférence 1306. En outre, comme dans les exemples des ANN décrits ici, dans certains cas l'ANN du module d'inférence 1306 et du détecteur de nouveauté 1303 peuvent avoir des parties communes. Dans certains modes de réalisation, les modules 1304 et 1306, et également dans certains cas le détecteur de nouveauté 1303, sont mis en œuvre par une CPU 1308 sous la commande d'instructions stockées dans une mémoire d'instructions (non illustrée en ). Plutôt qu'une CPU, le système 1300 pourrait comprendre selon une variante ou en outre une GPU ou une NPU.
En fonctionnement, lorsqu'un nouvel échantillon de données est reçu, il est par exemple traité par le système de détection d'anomalies du détecteur de nouveauté 1303, optionnellement avec une entrée provenant du module d'inférence 1306, afin de détecter si la donnée est une anomalie. Pendant ce traitement, la sortie du module d'inférence 1306 aux actionneurs 1310 est par exemple placé en attente jusqu'à ce que la réponse de détection d'anomalies est disponible. Cela permet par exemple au système de seulement générer ou modifier une commande pour les actionneurs si les données d'entrée sont identifiées comme étant des données régulières.
Par exemple, dans le cas où le détecteur de nouveauté 1303 détecte, sur la base de son système de détection d'anomalies, que l'échantillon de données est une donnée régulière, il le fournit au module d'inférence 1306, où il est traité, par exemple afin d'effectuer une classification. Dans ce cas, une sortie du module d'inférence 1306 correspondant à un marquage prédit est par exemple fournie à un ou plusieurs actionneurs (ACTUATORS), qui sont par exemple commandés sur la base du marquage prédit. Par exemple, les actionneurs pourraient comporter un robot, tel qu'un bras robotique entraîné pour soulever des mauvaises herbes, ou pour cueillir des fruits mûrs sur un arbre, ou pourraient comporter des systèmes automatiques de pilotage ou de freinage dans un véhicule, ou des fonctionnements d'un circuit, tels que le réveil depuis ou l'entrée dans un mode de veille.
Selon une variante, si un système de détection de données irrégulières du détecteur de nouveauté 1303 détecte que l'échantillon de données est un échantillon de données irrégulières, l'échantillon est par exemple ajouté à une liste d'anomalies (ANOMALY LIST) 1305 du module d'apprentissage incrémentiel 1304. Le module 1304 apprend par exemple le nouvel échantillon, en même temps que d'autres échantillons de la liste d'anomalies, sur la base d'un apprentissage incrémentiel. L'apprentissage incrémentiel est un procédé d'apprentissage machine, connu de la personne du métier, d'où il résulte que des données d'entrée sont utilisées en continue pour étendre la connaissance du modèle. Par exemple, l'apprentissage incrémentiel est décrit dans la publication de Rebuffi, Sylvestre-Alvise, et al., intitulée “icarl : Incremental classifier and representation learning.”, Proceedings of the IEEE conference on Computer Vision and Pattern Recognition, 2017 et dans la publication de Parisi, German I., et al., intitulée “Continual lifelong learning with neural networks : A review.”,Neural Networks113 (2019)54-71.
Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Par exemple, bien que des exemples d'une fonction de classification ont été décrits, il sera évident à la personne du métier que, dans des variantes de mode de réalisation, les principes décrits ici pourraient s'appliquer à d'autres types de fonction ou d'algorithme de traitement de données qui n'est pas nécessairement une fonction de classification.
Enfin, la mise en œuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Par exemple, bien que des exemples ont été décrits sur la base d'architectures d'ANN à perceptron multicouche, la description du procédé proposé pour la détection d'anomalies s'applique plus généralement à un quelconque réseau neuronal d'apprentissage profond (DNN) ou réseau neuronal convolutif (CNN). Par exemple, une partie dense d'un DNN ou d'un CNN est constituée d'un MLP tel que présenté précédemment. En outre, les principes décrits ici pourraient également être appliqués à d'autres familles de réseaux neuronaux comportant, mais n'étant pas limités à, des réseaux neuronaux récurrents, des réseaux d'apprentissage par renforcement, etc. Les modes de réalisation s'appliquent également à des architectures neuronales matérielles, telles que des unités de traitement neuronal, des unités de traitement de tenseur, des memristances, etc.

Claims (14)

  1. Procédé de détection d'anomalies utilisant un réseau neuronal artificiel entraîné (502) configuré pour mettre en œuvre au moins une fonction auto-associative destinée à répliquer un échantillon de données d'entrée au niveau d'une ou de plusieurs sorties (A), le procédé comprenant :
    a) l'injection d'un échantillon de données d'entrée dans le réseau neuronal artificiel entraîné (502) afin de générer un premier échantillon répliqué au niveau desdites une ou plusieurs sorties (A) du réseau neuronal artificiel entraîné (502) ;
    b) l'exécution d'au moins une opération de réinjection dans le réseau neuronal artificiel entraîné (502) en partant du premier échantillon répliqué, dans lequel chaque opération de réinjection comprend la réinjection d'un échantillon répliqué présent au niveau desdites une ou plusieurs sorties (A) dans le réseau neuronal artificiel entraîné (502) ;
    c) le calcul d'un premier paramètre sur la base d'une distance entre une valeur d'un n-ième échantillon répliqué présent au niveau desdites une ou plusieurs sorties du réseau neuronal artificiel entraîné résultant de la (n-1)ième réinjection et une valeur d'une des valeurs précédemment injectées ou réinjectées ; et
    d) la comparaison du premier paramètre avec un premier seuil ( ), et le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières si le premier seuil est dépassé.
  2. Procédé selon la revendication 1, dans lequel le premier paramètre est une distance totale entre la valeur d'un n-ième échantillon répliqué et une valeur de l'échantillon de données d'entrée.
  3. Procédé selon la revendication 1, dans lequel le premier paramètre est une distance moyenne par réinjection.
  4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel le réseau neuronal artificiel entraîné (502) est configuré pour mettre en œuvre une fonction de classification, une ou plusieurs sorties supplémentaires (H) du réseau neuronal artificiel entraîné fournissant une ou plusieurs valeurs de sortie de classe résultant de la fonction de classification.
  5. Procédé selon la revendication 4, comprenant en outre l'exécution d'une détection de données contradictoires en :
    e) calculant un deuxième paramètre sur la base d'une distance entre des valeurs desdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant d'une réinjection avec des valeurs desdites une ou plusieurs valeurs de sortie de classe (H) présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant de l'injection de l'échantillon de données d'entrée ; et
    f) comparant le deuxième paramètre avec un deuxième seuil ( ), et en traitant l'échantillon de données d'entrée comme étant un échantillon de données contradictoires si le deuxième seuil est dépassé.
  6. Procédé selon la revendication 4 ou 5, dans lequel les valeurs de sortie de classe sont des logits.
  7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel le calcul des premier paramètre et/ou deuxième paramètre comprend le calcul d'une ou de plusieurs distances parmi :
    - la distance d'erreur quadratique moyenne ;
    - la distance de Manhattan ;
    - la distance euclidienne ;
    - la distance ;
    - la distance de Kullback-Leibler ;
    - la distance de Jeffries-Matusita ;
    - la distance de Bhattacharyya ; et
    - la distance de Chernoff.
  8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières comprend le stockage de l'échantillon de données d'entrée dans un tampon de données d'échantillon (506), le procédé comprenant en outre l'exécution d'un nouvel apprentissage de classe sur une pluralité d'échantillons de données d'entrée stockées dans le tampon de données d'échantillon (506).
  9. Système de détection d'anomalies, le système comprenant un dispositif de traitement (902) configuré pour :
    a) injecter un échantillon de données d'entrée dans un réseau neuronal artificiel entraîné (502) afin de générer un premier échantillon répliqué au niveau d'une ou de plusieurs sorties (A) du réseau neuronal artificiel entraîné (502), dans lequel le réseau neuronal artificiel entraîné est configuré pour mettre en œuvre au moins une fonction auto-associative destinée à répliquer des échantillons d'entrée au niveau desdites une ou plusieurs sorties (A) ;
    b) effectuer au moins une opération de réinjection dans le réseau neuronal artificiel entraîné (502) en commençant par le premier échantillon répliqué, dans lequel chaque opération de réinjection comprend la réinjection d'un échantillon répliqué présent au niveau desdites une ou plusieurs sorties (A) dans le réseau neuronal artificiel entraîné (502) ;
    c) calculer un premier paramètre sur la base d'une distance entre une valeur d'un n-ième échantillon répliqué présent au niveau desdites une ou plusieurs sorties (A) après la (n-1)-ième réinjection et une valeur d'une des valeurs précédemment injectées ou réinjectées ; et
    d) comparer le premier paramètre à un seuil ( ), et traiter l'échantillon de données d'entrée comme étant un échantillon de données irrégulières si le seuil est dépassé.
  10. Système selon la revendication 9, comprenant en outre :
    - un ou plusieurs actionneurs (1310) ; et
    - un module d'inférence (1306) configuré pour commander lesdits un ou plusieurs actionneurs (1310) seulement si l'échantillon de données d'entrée n'est pas détecté comme étant un échantillon de données irrégulières.
  11. Système selon la revendication 10, dans lequel le réseau neuronal artificiel entraîné (502) est configuré pour mettre en œuvre une fonction de classification mise en œuvre par le module d'inférence (1306), une ou plusieurs sorties supplémentaires (H) du réseau neuronal artificiel entraîné (502) fournissant une ou plusieurs valeurs de sortie de classe résultant de la fonction de classification.
  12. Système selon la revendication 11, dans lequel le dispositif de traitement est configuré en outre pour effectuer une détection de données contradictoires en :
    e) calculant un deuxième paramètre sur la base d'une distance entre des valeurs desdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant d'une réinjection avec des valeurs d'une desdites une ou plusieurs valeurs de sortie de classe présentes au niveau desdites une ou plusieurs sorties supplémentaires résultant de l'injection des données d'entrée ; et
    f) comparant le deuxième paramètre à un deuxième seuil ( ), et en traitant l'échantillon de données d'entrée comme étant un échantillon de données contradictoires si le deuxième seuil est dépassé.
  13. Système selon la revendication 11 ou 12, dans lequel les valeurs de sortie de classe sont des logits.
  14. Système selon l'une quelconque des revendications 9 à 13, comprenant en outre un tampon de données échantillon (506), dans lequel le traitement de l'échantillon de données d'entrée comme étant un échantillon de données irrégulières comprend le stockage de l'échantillon de données d'entrée dans le tampon de données échantillon (506), le procédé comprenant en outre l'exécution d'un nouvel apprentissage de classe sur une pluralité d'échantillons de données d'entrée stockée dans le tampon de données échantillon (506).
FR2014189A 2020-12-28 2020-12-28 Procédé et dispositif de détection d'anormalité de données Active FR3118503B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR2014189A FR3118503B1 (fr) 2020-12-28 2020-12-28 Procédé et dispositif de détection d'anormalité de données
EP21845064.1A EP4268132A1 (fr) 2020-12-28 2021-12-27 Procédé et dispositif de détection d'anomalie de données
PCT/EP2021/087687 WO2022144340A1 (fr) 2020-12-28 2021-12-27 Procédé et dispositif de détection d'anomalie de données
US18/252,163 US20230409881A1 (en) 2020-12-28 2021-12-27 Method and device for data abnormality detection

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2014189 2020-12-28
FR2014189A FR3118503B1 (fr) 2020-12-28 2020-12-28 Procédé et dispositif de détection d'anormalité de données

Publications (2)

Publication Number Publication Date
FR3118503A1 true FR3118503A1 (fr) 2022-07-01
FR3118503B1 FR3118503B1 (fr) 2024-01-12

Family

ID=75539454

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2014189A Active FR3118503B1 (fr) 2020-12-28 2020-12-28 Procédé et dispositif de détection d'anormalité de données

Country Status (4)

Country Link
US (1) US20230409881A1 (fr)
EP (1) EP4268132A1 (fr)
FR (1) FR3118503B1 (fr)
WO (1) WO2022144340A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4439483A1 (fr) * 2023-03-31 2024-10-02 Iceye Oy Systèmes et procédés de détection d'anomalies pour images

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200285555A1 (en) * 2019-03-05 2020-09-10 Ellexi Co., Ltd. Anomaly pattern detection system and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL148395B (nl) 1968-06-25 1976-01-15 Philips Nv Regelafsluiter.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200285555A1 (en) * 2019-03-05 2020-09-10 Ellexi Co., Ltd. Anomaly pattern detection system and method

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CHALAPATHYCHAWLA, DEEP LEAMING FOR ANOMALY DÉTECTION : A SURVEY, 24 January 2019 (2019-01-24)
GOODFELLOW ET AL., EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES, 2014
KIM KI HYUN ET AL: "RAPP: NOVELTY DETECTION WITH RECONSTRUC- TION ALONG PROJECTION PATHWAY", 25 September 2019 (2019-09-25), XP055833541, Retrieved from the Internet <URL:https://openreview.net/attachment?id=HkgeGeBYDB&name=original_pdf> [retrieved on 20210819] *
MIGUEL SOLINAS ET AL: "Generalization of iterative sampling in autoencoders", HAL ARCHIVES-OUVERTES.FR, CEA-02917445, 30 November 2020 (2020-11-30), XP055762074, Retrieved from the Internet <URL:https://hal-cea.archives-ouvertes.fr/cea-02917445/document> [retrieved on 20201221] *
N. PAPERNOTI. GOODFELLOW, BREAKING THINGS IS EASY, 16 December 2016 (2016-12-16)
PARISI, GERMAN I. ET AL.: "Continual lifelong learning with neural networks : A review", NEURAL NETWORKS, vol. 113, 2019, pages 54 - 71
REBUFFI, SYLVESTRE-ALVISE ET AL.: "icarl : Incremental classifier and repre-sentation learning", PROCEEDINGS OF THE IEEE CONFÉRENCE ON COMPUTER VISION AND PATTERN RÉCOGNITION, 2017

Also Published As

Publication number Publication date
FR3118503B1 (fr) 2024-01-12
US20230409881A1 (en) 2023-12-21
WO2022144340A1 (fr) 2022-07-07
EP4268132A1 (fr) 2023-11-01

Similar Documents

Publication Publication Date Title
EP2696344B1 (fr) Procede et systeme pour detecter des evenements sonores dans un environnement donne
US11636670B2 (en) Method for recognizing object in image
EP3707676B1 (fr) Procédé d&#39;estimation de pose d&#39;une caméra dans le référentiel d&#39;une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d&#39;ordinateur associé
US11156968B2 (en) Adaptive control of negative learning for limited reconstruction capability auto encoder
EP4179469A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d&#39;ordinateur associés
KR102402194B1 (ko) 딥러닝 기반 엔드-투-엔드 o-ring 결함 검출 방법
EP1792278B1 (fr) Procede de detection et de pistage de cibles ponctuelles, dans un systeme de surveillance optronique
WO2023086198A1 (fr) Robustifier la nouvelle synthèse de vue du modèle de champ de radiance neuronal (nerf) pour les données éparses
FR3118503A1 (fr) Procédé et dispositif de détection d&#39;anormalité de données
Vuković et al. Thermal image degradation influence on R-CNN face detection performance
EP3712775A1 (fr) Procédé et dispositif de détermination de la taille mémoire globale d&#39;une zone mémoire globale allouée aux données d&#39;un réseau de neurones compte tenu de sa topologie
US20220114717A1 (en) Distortion-based filtering for image classification
FR3130047A1 (fr) Procédé et dispositif pour commander un système utilisant un réseau neuronal artificiel sur la base d&#39;un apprentissage en continu
FR3114180A1 (fr) Système et procédé pour éviter un oubli catastrophique dans un réseau neuronal artificiel
FR3117223A1 (fr) Système et procédé de contrôle de véhicule à base d’apprentissage machine
FR3104291A1 (fr) Procédé et système de configuration d’un dispositif d’imagerie d’un véhicule automobile comportant N capteurs et N réseaux de neurones encodeurs dédiés
EP4322061A1 (fr) Dispositif électronique et procédé de traitement de données comportant au moins un modèle d&#39;intelligence artificielle auto-adaptatif avec apprentissage local, système électronique et programme d&#39;ordinateur associés
US20240273811A1 (en) Robustifying NeRF Model Novel View Synthesis to Sparse Data
FR3103600A1 (fr) Procede de determination automatique de parametres d’un reseau de neurones artificiels et microcontroleur pour la mise en œuvre du procede
WO2024165593A1 (fr) Procédé de robustification des réseaux de neurones multicouches par hybridation avec la commande prédictive mpc vis-à-vis d&#39;une attaque antagoniste, utilisant une base de données de signatures de référence
FR3146536A1 (fr) Système de réseaux neuronaux par distillation, procédés d’entrainement améliorés
CN116912705A (zh) 一种军用目标识别方法、装置及存储介质
KR20240027165A (ko) 라이다 데이터 기반 객체 인식 방법
EP4191530A1 (fr) Procédé de localisation et cartographie simultanées intégrant un masquage temporel auto-supervisé et modèle d&#39;apprentissage automatique pour générer un tel masquage
EP3920101A1 (fr) Methode de reduction de la taille d&#39;un reseau de neurones artificiel

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220701

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4