SSAD
Date
Formats
Catégories
Contenu
La bibliothèque Self-Supervised Anomaly Detection (SSAD) est un framework Python dédié à l’apprentissage auto-supervisé de modèles de reconstruction de type autoencodeur pour la détection d’anomalies. Elle formalise et industrialise les concepts introduits dans nos travaux précédents :
- N. Najari, S. Berlemont, G. Lefebvre, S. Duffner, et C. Garcia, RADON: Robust Autoencoder for Unsupervised Anomaly Detection, SIN 2021, p. 1-8. doi: 10.1109/SIN54109.2021.9699174
- N. Najari, S. Berlemont, G. Lefebvre, S. Duffner, et C. Garcia, Robust Variational Autoencoders and Normalizing Flows for Unsupervised Network Anomaly Detection, AINA 2022, LNNS 450, p. 281-292. doi: 10.1007/978-3-030-99587-4_24
Les méthodes de détection d’anomalies basées sur la reconstruction partent du principe suivant : le modèle est entraîné à compresser puis décompresser les données, qu’on lui présente. La compression perd de l’information, tandis que la décompression la rajoute. Ce mécanisme d’apprentissage est très intéressant, car il peut s’effectuer de manière non-supervisée, id est, en l’absence de labellisation manuelle des données par des experts, souvent coûteuse voire impossible. On s’attend à ce que le modèle produise une reconstruction fidèle pour des données normales, issues de la même distribution que le jeu d’entraînement, alors qu’une donnée anormale ne devrait pas être reconstruite correctement. En l’absence d’une stratégie d’apprentissage spécifique, le modèle basé reconstruction va apprendre à reconstruire tout l’ensemble d’apprentissage sans aucun discernement. Les anomalies déjà présentes sont alors incluses, par définition, dans l’ensemble considéré comme normal. Ce processus nécessite un jeu d’entraînement non-contaminé, ce qui est généralement impossible en conditions réelles.
L’apport central de SSAD est d’exploiter l’auto-supervision en cours d’entraînement, pour rendre la détection d’anomalies plus robuste aux contaminations du jeu d’apprentissage. La robustesse est une propriété du processus d’apprentissage, qui permet au modèle de ne pas être biaisé par la présence d’anomalies non-identifiées durant l’entraînement. Contrairement aux approches, qui supposent un jeu « propre » (sans anomalies), SSAD s’appuie sur une hypothèse plus réaliste : les données d’entraînement peuvent contenir une part non négligeable d’anomalies. Le framework auto-adapte le processus d’apprentissage à intervalles réguliers, en réalisant notamment :
- Une analyse des distributions de scores de reconstruction par heuristique (
distribution_analyzer), pour réaliser une séparation explicite en intervalles de valeurs normal / anormal / incertain (confidence_interval_configuration) - Des scores de confiance d’appartenance à ces zones pour chaque échantillon grâce à des estimateurs de confiance (
confidence_estimator) - Une nouvelle structure de fonction de coût multi-objectifs, visant à la fois la reconstruction des normaux et la déconstruction des anomalies, tout en permettant une pondération de l’importance de ces échantillons par le score de confiance
Grâce à ce squelette d’un apprentissage auto-supervisé, SSAD fournit une API claire et modulaire permettant l’exploration et la combinaison de nouvelles heuristiques et processus d’auto-supervision, tout en réutilisant tels quels des modules déjà existants, ex. des infrastructures de modèles ou des objectifs de reconstruction.
Le code est disponible sur GitHub sous licence MIT.