Ce guide pratique est destiné aux ingénieurs qui souhaitent concevoir et déployer des algorithmes permettant de détecter les anomalies dans les données de séries temporelles.
Introduction à la détection d'anomalies
La détection d'anomalies
La détection d’anomalies est le processus d'identification des événements ou des motifs dans les données dont le comportement diffère de celui attendu. Ces écarts, connus sous le nom d’anomalies, peuvent révéler des informations importantes telles que des défaillances de machine, des failles de sécurité, des signaux précoces d’alerte ou des inefficacités dans les processus.
Les anomalies des machines industrielles sont détectées à partir de signaux vibratoires. Les données de vibration sur trois axes issues d’une fenêtre temporelle sont traitées et les anomalies sont détectées par un modèle de Machine Learning. La limite de décision du modèle est représentée sur un plan de composantes principales, où les points rouges indiquent les anomalies.
Exemples de cas d’utilisation de détection d’anomalies
Les algorithmes de détection d’anomalies sont utiles dans de nombreuses industries et applications :
Maintenance prédictive : Les algorithmes de détection d’anomalies déployés sur des équipements industriels sont en mesure d’identifier les premiers signes de défaillance des machines, améliorant ainsi la sécurité et évitant des temps d'arrêt coûteux.
Santé numérique : La détection d’anomalies dans les signaux d’électrocardiogramme (ECG) peut révéler diverses affections cardiaques, telles que les arythmies, la fibrillation auriculaire ou la tachycardie ventriculaire.
Analyse de données de test de vol : Les ingénieurs s’appuient sur les essais en vol pour comprendre le comportement des systèmes et orienter les choix en matière de design. La détection d’anomalies permet de signaler des valeurs de capteurs erratiques et d’identifier des conditions de test dépassant la plage de performance attendue.
Contrôles tolérants aux pannes : Les algorithmes de détection d’anomalies, embarqués dans un moteur électrique, peuvent signaler les variations en temps réel. Cela permet au contrôleur d’ajuster sa réponse afin de prévenir les dommages et d’améliorer les performances.
Types d’anomalies dans les données de séries temporelles
Bien que des anomalies puissent apparaître dans différents types de données, telles que les images, les vidéos ou les textes, ce guide se concentre sur les données de séries temporelles, largement utilisées dans les applications d’ingénierie. Les données de séries temporelles enregistrent des mesures séquentielles, telles que la température, la pression ou les vibrations, au fil du temps. On distingue trois principaux types d’anomalies dans les données de séries temporelles.
Les anomalies ponctuelles, ou valeurs aberrantes, sont des points de données individuels qui s'écartent de la valeur attendue.
Les anomalies collectives se produisent lorsqu'un groupe de points de données s'écarte des motifs prévus.
Les anomalies multivariées sont des anomalies qui apparaissent lors de l’analyse simultanée de plusieurs sources de données et qui peuvent, ou non, constituer des anomalies lorsqu’elles sont considérées individuellement.
Choix d'un algorithme de détection d'anomalies
MATLAB propose un large éventail d’algorithmes de détection d’anomalies dans les séries temporelles, répartis en deux grandes catégories : les méthodes statistiques et basées sur la distance, et les modèles d’IA à classe unique. Tous ces outils peuvent être utilisés pour concevoir des algorithmes de détection d’anomalies, mais le choix de l’outil dépend de vos données et de vos objectifs.
Méthodes statistiques et basées sur la distance
Les méthodes statistiques reposent sur des hypothèses concernant la distribution sous-jacente des données. Elles utilisent des seuils, des tendances ou des modèles de probabilité pour identifier les points s’écartant du comportement statistique attendu. Une approche simple de détection d’anomalies statistique consiste à calculer la moyenne mobile d’un signal et à considérer comme anomalie tout dépassement d’un certain seuil.
Les méthodes basées sur la distance ne supposent pas de distribution particulière des données. Elles identifient les anomalies en calculant les distances entre observations individuelles ou sous-séquences et repèrent celles qui s’écartent fortement des motifs. Par exemple, matrixProfile compare chaque sous-séquence d’une série temporelle et identifie comme anomalies celles qui présentent la plus grande distance par rapport aux autres.
Utilisation de distanceProfile pour identifier des anomalies dans des données de séries temporelles.
Quand utiliser les méthodes statistiques et basées sur la distance :
- Vous disposez d’un volume restreint de données d'apprentissage.
- Vous comprenez bien les statistiques de base et les tendances de vos données.
- Vos ressources de calcul sont limitées.
Caractéristiques :
+ Simples et interprétables
+ Faible coût de calcul
+ Adaptés aux anomalies ponctuelles et collectives
- Peuvent rencontrer des difficultés avec des motifs complexes ou des dynamiques non linéaires
- Sensibles au bruit et à la forte dimensionnalité des données
Exemples de techniques disponibles dans MATLAB :
isoutlier: identifie les valeurs aberrantes dans les donnéesfindchangepts: détecte les changements brusques dans un signalrobustcov: calcule une estimation robuste de la covariance et de la moyenne multivariéesmahal: calcule la distance de Mahalanobis par rapport à des échantillons de référencedistanceProfile: calcule le profil de distance entre une sous-séquence d’interrogation et toutes les autres sous-séquences d’une série temporellematrixProfile: calcule le profil matriciel entre toutes les paires de sous-séquences dans une série temporelle multivariable
Explorer un exemple
Détecter des anomalies dans les données d’un moteur à l’aide du profil matriciel
Le profil matriciel est utile pour détecter efficacement les anomalies collectives dans les longues séries temporelles. Cet exemple montre comment appliquer le profil matriciel pour détecter des anomalies dans les mesures du courant d’induit d’un moteur DC dont les performances se dégradent progressivement.
Profil matriciel des données du moteur, avec mise en évidence de la paire de motifs principaux et des segments discordants
Modèles d'IA à classe unique
Les méthodes de détection d’anomalies de cette catégorie consistent à entraîner un modèle de Machine Learning ou de Deep Learning sur un jeu de données de référence majoritairement normales. Le modèle apprend ainsi le comportement normal et identifie les écarts comme des anomalies. Les modèles d’IA à classe unique sont particulièrement efficaces lorsque les anomalies sont rares ou ne présentent pas de motif bien défini. Ils peuvent être appliqués à plusieurs canaux de données et conviennent à tous types d’anomalies.
Quand utiliser des modèles d’IA à classe unique :
- Vous souhaitez entraîner un modèle capable d’identifier les anomalies dans de nouvelles données, au fur et à mesure de leur arrivée.
- Vous disposez de beaucoup de données normales pour l’apprentissage.
- Les anomalies sont rares, mal connues ou ne présentent pas de motif clairement défini.
Caractéristiques :
+ Conviennent à tous les types d’anomalies, y compris les motifs complexes et non linéaires
+ Résistants au bruit et à la forte dimensionnalité des données
+ Les méthodes de Deep Learning ne nécessitent pas d’ingénierie des caractéristiques
- Temps d’apprentissage plus long et exigences de calcul plus élevées
- Souvent moins interprétables que les méthodes statistiques ou basées sur la distance
Exemples de techniques disponibles dans MATLAB :
iforest: forêt d'isolement (isolation forest)ocsvm: machine à vecteurs de support (SVM) à classe uniquerccforest: forêt robuste de coupes aléatoires (Robust Random Cut Forest)deepSignalAnomalyDetector: modèles de Deep Learning basés sur un autoencodeur convolutif 1D ou un réseau LSTM (long short-term memory)tcnAD: réseau convolutif temporel (TCN)deepantAD: réseau de neurones convolutifs (CNN)usAD: réseau à double encodeurvaelstmAD: autoencodeur variationnel (VAE) et LSTM
Explorer un exemple
Entraîner des modèles de Deep Learning pour détecter des anomalies
Cet exemple utilise un modèle de Deep Learning pour détecter des séquences de rythme cardiaque anormal dans des données d’électrocardiogramme (ECG).
Données ECG avec anomalie détectée affichée en rouge.
Préparation des données pour la détection d'anomalies
Des données de qualité sont essentielles pour construire des algorithmes de détection d’anomalies précis. Mais la collecte, l’exploration et le prétraitement des données pour la détection d’anomalies sont des tâches complexes, et il n’existe pas d’approche unique adaptée à tous les cas. Les techniques à appliquer dépendent des caractéristiques des données, des contraintes hardware et du problème que vous cherchez à résoudre. Même lorsque de grandes quantités de données sont disponibles, la détection d’anomalies peut s’avérer complexe, notamment lorsque les données proviennent de centaines de capteurs bruités. Dans ces situations, l’extraction de caractéristiques et la réduction du nombre de dimensions des données sont essentielles.
Jeux de données pour la détection d’anomalies
La détection d’anomalies présente des exigences plus souples, en matière de données d’apprentissage, que de nombreuses tâches classiques de Machine Learning : il n’est pas nécessaire de disposer de données labellisées. Les algorithmes de détection d’anomalies sont entraînés uniquement sur des données normales ou sur des données majoritairement normales contenant quelques anomalies. Avec ce type de données, il vous faut entraîner le modèle de détection d’anomalies à reconnaître ce qui est normal, tout ce qui s’en écarte étant alors classé comme une anomalie.
Si vous disposez d’un jeu de données équilibré et labellisé, comportant deux classes ou plus, vous pouvez appliquer une approche dite d’« apprentissage supervisé » pour la détection de défaillances multiclasse.
Données adaptées à la détection d’anomalies.
Pour en savoir plus sur ces approches :
Exploration et prétraitement des données
Avant de concevoir un algorithme, il est essentiel de comprendre ce que vos données vous révèlent. L’exploration et la visualisation de vos données vous permettent d’identifier les sources de données utiles, de déceler des motifs dans vos données, d’évaluer leur qualité et de déterminer les étapes de prétraitement nécessaires. Vous pouvez utiliser l’application Signal Analyzer pour explorer et prétraiter de manière interactive des données de séries temporelles.
Les données collectées à partir de capteurs sont généralement bruitées, désordonnées et peu structurées. MATLAB propose de nombreuses techniques et applications interactives pour les étapes de prétraitement, telles que le rééchantillonnage, le lissage, l’organisation, le remplissage des données manquantes, et bien plus encore.
Pour en savoir plus sur le prétraitement des données dans MATLAB :
Extraction de caractéristiques à partir de données brutes
Bien que certains modèles d’IA puissent fonctionner directement sur des données de séries temporelles, l’extraction de caractéristiques à partir des données peut améliorer les performances du modèle en mettant en évidence les grandeurs les plus importantes qui permettent de différencier les données normales des anomalies. L’extraction de caractéristiques consiste à transformer les données brutes en caractéristiques numériques significatives que l’on peut utiliser pour entraîner un modèle.
Par exemple, vous pouvez calculer des caractéristiques telles que la moyenne, l’écart type, l’amplitude maximale ou encore la fréquence dominante. Ces caractéristiques résument les comportements importants dans les données de séries temporelles, ce qui aide le modèle à reconnaître ce qui est normal.
Les ingénieurs qui connaissent bien leurs données savent souvent déjà quelles sont les caractéristiques les plus utiles à utiliser. Cependant, il est possible de recourir à un processus d’extraction automatisé qui extrait les caractéristiques courantes (statistiques descriptives, mesures spectrales, etc.), puis les classe par ordre d’importance. L’application Diagnostic Feature Designer disponible dans Predictive Maintenance Toolbox vous permet d’extraire, de comparer et de classer les caractéristiques de manière interactive, puis d’utiliser ces caractéristiques pour entraîner un modèle d’IA.
Réduction de la dimensionnalité des données
Après la collecte des données et l’extraction des caractéristiques, il est courant de se retrouver avec un très grand nombre de caractéristiques, parfois des centaines par signal. Cette dimensionnalité élevée peut ralentir l’entraînement des modèles, compliquer leur interprétation et accroître le risque de surajustement. Réduire la dimensionnalité, en sélectionnant ou en combinant uniquement les caractéristiques les plus informatives, permet de simplifier le modèle et de concentrer l’apprentissage sur les caractéristiques clés qui indiquent des anomalies. Des techniques de réduction de la dimensionnalité, telles que l’analyse en composantes principales (ACP) ou le classement des caractéristiques, peuvent aider à identifier les caractéristiques qui contribuent le plus à la détection d’anomalies.
Explorer un exemple
Détecter des anomalies dans des machines industrielles au moyen de données de vibration sur trois axes
Cet exemple concret entraîne trois modèles d’IA à classe unique. Le processus couvre l’exploration des données, l’extraction de caractéristiques, l’entraînement des modèles et l’évaluation de leurs performances.
Les données de vibration sur trois axes avant et après maintenance sur la machine industrielle. Les données après maintenance représentent un fonctionnement normal, tandis que les données juste avant maintenance constituent une anomalie.
Implémentation dans des conditions réelles
Les ingénieurs souhaitent concevoir des algorithmes de détection d’anomalies afin de repérer les anomalies dans des systèmes réels. Le développement de ces algorithmes est un processus itératif.
Ce guide présente les étapes essentielles pour concevoir un algorithme de détection d’anomalies : exploration et prétraitement des données, extraction de caractéristiques et sélection des algorithmes. Une fois l’algorithme développé, vous pouvez l’évaluer sur de nouvelles données pour vérifier sa capacité de généralisation. Enfin, vous pouvez le déployer pour une utilisation en temps réel et le mettre à jour au besoin grâce à l’apprentissage incrémental.
Workflow pour le développement et le déploiement d’un modèle de détection d’anomalies basé sur l’IA pour des applications concrètes.
Déploiement sur du hardware embarqué
Avec MATLAB pour l'IA embarquée, vous pouvez créer des blocs Simulink ou générer du code C/C++ pour déployer des algorithmes de détection d’anomalies sur des équipements embarqués (microcontrôleur ou ECU, par exemple) afin de détecter les anomalies en temps réel. Il est important de tester ces algorithmes en simulation pour s’assurer de leur efficacité avant qu'ils soient déployés sur le hardware embarqué. Simulink propose une plateforme permettant d’intégrer les algorithmes de détection d’anomalies avec d’autres composants du système, afin de réaliser des simulations temps réel à l’échelle du système.
Déploiement d’un bloc Simulink Deep Signal Anomaly Detector sur un Raspberry Pi® pour la détection de bruit en temps réel.
Détection d’anomalies incrémentale
Les méthodes de détection incrémentale d’anomalies traitent en continu les données entrantes et calculent en temps réel des scores d’anomalie à partir d’un flux de données. Un modèle incrémental s’adapte progressivement aux données. MATLAB propose les objets de modèle incrementalRobustRandomCutForest et incrementalOneClassSVM pour la détection d’anomalies incrémentale. Dans un premier temps, un modèle est entraîné afin de calculer un score d’anomalie. Ensuite, un seuil est déterminé et ajusté en fonction des scores obtenus avec les données d’apprentissage. Le modèle peut ensuite détecter de nouvelles anomalies, se réentraîner et ajuster le seuil à mesure qu'il est alimenté avec de nouveaux lots de données.
En savoir plus sur la détection d’anomalies incrémentale.
Étapes d’ajustement du modèle, d’apprentissage du seuil et d’estimation en ligne, lors de l’application de techniques d’apprentissage incrémental à des données de séries temporelles.
Principaux points à retenir
La détection d’anomalies dans les séries temporelles consiste à identifier les écarts par rapport aux motifs attendus, lesquels peuvent révéler des problèmes critiques tels que des défaillances de machines, des risques pour la santé ou des inefficacités dans les processus. MATLAB propose un workflow complet pour la détection d’anomalies dans les données temporelles, comprenant l’exploration et le prétraitement des données, la réduction de dimensionnalité et l’extraction de caractéristiques, ainsi que la sélection des algorithmes les plus adaptés. Avec Simulink, vous pouvez intégrer des algorithmes de détection d’anomalies dans des modèles système plus vastes afin de vérifier le comportement global du système par simulation. Le workflow supporte aussi le déploiement embarqué, permettant ainsi de générer du code C/C++ pour exécuter des algorithmes de détection d’anomalies sur des dispositifs périphériques ou dans des applications temps réel.
En savoir plus about la détection d'anomalies et la maintenance prédictive.
Pour continuer à explorer ce sujet
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)