La détection d’anomalies en Machine Learning non supervisé

Isolation Forest et Local Outlier Factor avec Sklearn.

Isolation Forest et Local Outlier Factor avec Sklearn.

La détection d’anomalies parmi une population d’individus peut être réalisée par des algorithmes de Machine Learning non supervisés tels que l’Isolation Forest ou le LOF (Local Outlier Factor). En utilisant la bibliothèque Scikit-Learn, nous avons développé deux exemples d’utilisation, tout d’abord sur des images synthétiques de petite taille (avec Isolation Forest), puis sur des données numériques issues d’Excel (avec LOF) et représentant trois paramètres d’injection (vitesse, pression et température) en fonderie sous pression.

Deux types de détection d’anomalies

Deux méthodes de détection d'anomalies.
Deux méthodes de détection d’anomalies.

Dans la pratique, la détection d’anomalies contient 2 branches importantes. Tout d’abord, la « Outlier Detection » qui consiste à détecter les anomalies dans le Data Set initial. L’algorithme Isolation Forest fait partie de cette branche. L’autre branche est la « Novelty Detection » qui consiste à détecter des anomalies dans les données futures (donc en dehors du Train Set initial). Ce dernier type de détection peut être réalisé par l’algorithme assez populaire LocalOutlierFactor (LOF) disponible lui aussi dans la librairie de Machine Learning Scikit-Learn.

Machine Learning supervisé et non supervisé

Machine Learning supervisé et non supervisé données étiquetées ou non.
Machine Learning supervisé et non supervisé données étiquetées ou non.

La différence entre Machine Learning supervisé et non supervisé réside dans le fait que les données sont étiquetées (ou taguées) en Machine Learning supervisé et non étiquetées en Machine Learning non supervisé.

Les données étiquetées -que ce soit des images ou des valeurs numériques –  facilitent grandement le traitement algorithmique, mais nécessitent en amont un travail d’étiquetage des données qui peut être très conséquent. Dans certains cas, il n’est pas possible d’étiqueter les données.

Principe de l’Isolation Forest

Principe de l' Isolation Forest.
Principe de l’ Isolation Forest.

L’isolation Forest (forêt d’isolation) est un algorithme d’apprentissage non supervisé de Machine Learning qui permet la détection d’anomalies dans un jeu de données (Data Set). Il isole les données atypiques, autrement dit celles qui sont trop différentes de la plupart des autres données. Rappelons que l’apprentissage non supervisé est une des branches du Machine Learning qui possède la particularité de ne pas avoir besoin de données labelisées contrairement à d’autres techniques (réseau de neurones, KNN, SVM, …).

Isolation Forest - arbre et split court signe d'anomalie significative.
Isolation Forest – arbre et split court signe d’anomalie significative.

En pratique, l’algorithme Isolation Forest réalise une série de splits (découpages aléatoires) du Data Set et compte le nombre de découpages nécessaires pour isoler des individus. L’algorithme construit dans le même temps un arbre ou chaque individu est au bout d’une des branches de cet arbre. Plus le nombre de découpages est réduit et plus il y a de chances que cet individu constitue réellement une anomalie par rapport au reste de la population du Data Set. Inversement, un grand nombre de découpage nécessaire pour isoler un individu laisse penser que cet individu n’est pas une anomalie mais est proche d’un grand nombre d’autres individus. Pour éviter de détecter de fausses anomalies, le logiciel itère le processus un grand nombres de fois (et passe d’un arbre à une multitude d’arbres, d’où la notion de forêts) en modifiant les paramètres (les seuils des split) afin de ne conserver que les individus qui sont statistiquement isolés des autres. Cet algorithme est donc basé sur les arbres de décision (comme le modèle RandomForest), une des techniques de Machine Learning bien connue.

Isolation Forest dans Scikit-Learn

Isolation Forest sur images de synthèse. Code Python.
Isolation Forest sur images de synthèse. Code Python.

Pour mettre en pratique ce type d’algorithme, on peut utiliser la librairie Scikit-Learn avec l’algorithme IsolationForest qui fait partie des méthodes d’ensemble. Il faudra charger en début de programme la bibliothèque ad-hoc (from sklearn.ensemble import IsolationForest). IsolationForest est l’un des meilleurs algorithmes de sa catégorie. Il a en particulier comme point fort de pouvoir analyser des Data Set de très grande dimension, c’est-à-dire contenant un très grand nombre de variables et de ne pas nécessiter de labellisation préalable.

Applications de la détection d’anomalies

La détection d’anomalies est utilisée dans de nombreux secteurs. Dans le secteur de la sécurité bancaire, où il est largement utilisé, ce type d’algorithme permet de détecter un achat anormal (par exemple à l’autre bout du monde) avec une carte bancaire par rapport à une pratique normale. Il peut être utilisé également en maintenance prédictive, en SPC (Statistical Process Control) mais aussi pour le dépistage précoce de maladies.

Application en analyse d’images avec Scikit-Learn

Images synthétiques pour isolation forest - machine learning non supervisé.
Images synthétiques pour isolation forest – machine learning non supervisé.

Une base de 100 images synthétiques a été constituée. Dans ces 100 images, 4 images « anomalies » ont été insérées à des positions aléatoires ; deux images avec une forme de retassure et deux autres images avec une forme de soufflure. Ces 4 images représentent par exemple des défauts détectés sur micrographie sur coupe de pièce. Les images n’ont pas été étiquetées comme étant bonnes ou « à défaut ». Les images sont de petite taille (64 pixels) pour pouvoir obtenir un temps de calcul très réduit et valider la faisabilité. Il a été nécessaire de caler les hyperparamètres (n_estimators, …) du modèle IsolationForest pour qu’il puisse bien identifier les 4 anomalies insérées dans le Data Set synthétique. IsolationForest isole bien les 4 anomalies sans savoir néanmoins de quel type de défauts sont constitués les images anomalies. Il valide seulement que ces images sont des anomalies et présentent des différences par rapport au reste du Data Set (les 96 images restantes).

Génération de 100 images 8x8 avec bruit aléatoire.
Génération de 100 images 8×8 avec bruit aléatoire.

Pour des images de plus grande taille et pour des processus plus élaborées (classification de défauts), Isolation Forest n’est plus pertinent et il y aura lieu d’utiliser des réseaux de neurones convolutifs (CNN pour Convolutional Neural Networks), plus adaptés à la problématique de traitement d’images.

Analyse de paramètres de fabrication avec LOF

Avec l’algorithme LOF (Local Outlier Factor) de Scikit-Learn, nous avons analysé un Data Set de près de 900 données de synthèse qui présentent 3 paramètres de fabrication : la vitesse d’injection du piston (en m/s), la pression de multiplication P3 (en MPa) et enfin la température du métal (°C) dans le four de maintien.

Importance de la standardisation des données

Détection des anomalies sans et avec normalisation des données.
Détection des anomalies sans et avec normalisation des données.

Une première analyse (figure de gauche) montre que si les valeurs anormales de pression et de température sont bien détectées (points en rouge), il n’en est pas de même pour toutes les valeurs de vitesses anormalement basses qui ne sont pas détectées par l’algorithme. Si les 3 valeurs inférieures à 2.4 m/s sont bien détectées, 7 points entre ces valeurs en rouge et le reste des points ne sont ainsi pas détectées comme anomalie. Cela s’explique par la trop grande différence d’échelle entre la vitesse (3) et la pression (90) qui perturbe l’algorithme.

Normalisation des données avant traitement par LOF.
Normalisation des données avant traitement par LOF.

Pour remédier à cela, il y a lieu de « normaliser » les valeurs pour les ramener à une échelle identique afin de faciliter le traitement par l’algorithme. On applique pour cela une fonction de transformation, MinMaxScaler, qui ramène chaque paramètre en 0 et 1.

On peut voir qu’un plus grand nombre d’anomalies (41 contre 28) sont détectées et en particulier les vitesses réduites en dehors du nuage de point majeur. Il a 4.47 % d’anomalies détectées dans ce data set.

Représentation graphique des valeurs

Détection d'anomalies - représentation 3D des points.
Détection d’anomalies – représentation 3D des points.

Sur le graphe visualisant la vitesse et la pression, on s’aperçoit que des anomalies sont dans le nuage de points (et non en dehors) et on peut s’en étonner car elles ne paraissent pas isolées. En fait, comme il y a une troisième variable, la température de métal, ces points sont issus de la dimension en Z, non représentée sur un graphique en 2D. Une représentation en 3D du nuage de points permet de visualiser que les points anomalies sont bien en dehors du nuage principal. Si les points détectés sont classés comme étant des anomalies, cela ne veut évidemment pas dire que ces paramètres conduiront à la fabrication de pièces mauvaises, mais uniquement que les valeurs de l’un des paramètres est un point isolé.

Conclusions

L’isolation Forest et l’algorithme LOF sont assez peu connus par rapport à d’autres algorithmes (réseau de neurones). S’ils sont largement utilisés dans le système bancaire pour la détection de fraudes, il peut y avoir également des applications industrielles pour la détection d’évènements anormaux ou l’analyse de données de production pour détecter des dérives de process (combinaison de paramètres anormaux). L’intérêt de ces algorithmes est de faire partie du Machine Learning non supervisé. Ils ne nécessitent donc pas de données étiquetées et peuvent donc être alimentés plus facilement au niveau de la constitution du Data Set, sans travail préliminaire en amont. Evidement, si l’on dispose de données étiquetées, l’utilisation de Machine Learning supervisé s’imposera.

2 commentaires

  1. Alriclmx dit :

    Merci pour cet article très intéressant.

    L’utilisation de Machine Learning non supervisé permettrait de gagner un temps colossal sur l’étiquetage. Y a t’il eut des études comparant les écarts de précisions entre du supervisé et du non supervisé (par exemple 10% d’erreur contre 20%) ? ou obtient-on des résultats très similaire ?

    • Le CTIF dit :

      Bonjour Alric et merci de votre intérêt pour notre article de MetalBlog sur la détection d’anomalies en Machine Learning.
      La détection d’anomalies ne permet pas de s’affranchir de la labellisation car seuls les points anormaux sont repérés. Par contre, des technologies comme l’Auto-Labelling (l’algorithme présente des data pré-labellisées à l’annotateur qui valide ou modifie) ou l’Active Learning (apprentissage avec moins de données labellisées et plutôt celles qui posent problème) sont des pistes intéressantes pour lever le verrou de la labellisation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *