Guía

Guía de detección de anomalías en series temporales para equipos de ingeniería

Explore cómo identificar eventos o patrones en datos que difieren del comportamiento esperado utilizando MATLAB.

Guía de referencia para profesionales de ingeniería que diseñan y despliegan algoritmos para detectar anomalías en datos de series temporales.

Descripción de la detección de anomalías

Introducción a la detección de anomalías

La detección de anomalías es el proceso de identificar eventos o patrones en datos que difieren del comportamiento esperado. Estas desviaciones, conocidas como anomalías, pueden indicar información importante como fallos en máquinas, brechas de seguridad, señales de advertencia temprana o ineficiencias en procesos.

Las anomalías en maquinaria industrial se detectan a partir de señales de vibración. Se procesan los datos de vibración de tres ejes correspondientes a un periodo de tiempo y un modelo de Machine Learning detecta las anomalías. El límite de decisión del modelo se muestra en un plano de componentes principales, donde los puntos rojos indican anomalías.

Casos prácticos de detección de anomalías

Los algoritmos de detección de anomalías son útiles en varios sectores y aplicaciones:

Mantenimiento predictivo: Los algoritmos de detección de anomalías desplegados en maquinaria industrial pueden identificar signos tempranos de fallos en máquinas, lo que mejora la seguridad y evita costosos tiempos de inactividad.

Salud digital: La detección de anomalías en señales de electrocardiogramas (ECG) puede revelar diversas afecciones cardíacas, como arritmias, fibrilación auricular y taquicardia ventricular.

Análisis de datos de pruebas de vuelo: Los equipos de ingeniería utilizan pruebas de vuelo para comprender el comportamiento del sistema y guiar las decisiones de diseño. La detección de anomalías puede señalar valores erráticos en sensores e identificar condiciones de prueba fuera del rango de rendimiento esperado.

Controles tolerantes a fallos: Los algoritmos de detección de anomalías embebidos en un motor eléctrico pueden detectar cambios en tiempo real. Esto permite al controlador ajustar la respuesta para evitar daños y mejorar el rendimiento.

Tipos de anomalías en datos de series temporales

Aunque pueden aparecer anomalías en distintos tipos de datos, como imágenes, vídeos y texto, esta guía se centra en datos de series temporales, que son frecuentes en aplicaciones de ingeniería. Los datos de series temporales registran mediciones secuenciales, como temperatura, presión y vibración, a lo largo del tiempo. Existen tres tipos principales de anomalías en los datos de series temporales.

Figura de MATLAB que muestra una curva sinusoidal con ruido y tres valores atípicos marcados con puntos rojos.

Anomalías puntuales: Estos valores atípicos son puntos de datos individuales que se desvían del valor esperado.

Figura de MATLAB que muestra un segmento resaltado marcado como anomalía.

Anomalías colectivas: Se producen cuando un grupo de puntos de datos se desvía de los patrones esperados.

Figura de MATLAB que muestra segmentos resaltados marcados como anomalías en tres curvas.

Anomalías multivariantes: Se producen cuando se analizan múltiples fuentes de datos de forma conjunta, y pueden o no ser anomalías en una sola fuente de datos.

Elección de un algoritmo de detección de anomalías

MATLAB ofrece una amplia gama de algoritmos de detección de anomalías en series temporales que se dividen en dos categorías principales: métodos estadísticos y basados en la distancia, y modelos de IA de una sola clase. Puede utilizar todas estas herramientas para diseñar algoritmos de detección de anomalías, pero la elección dependerá de los datos y objetivos concretos.

Métodos estadísticos y basados en la distancia

Los métodos estadísticos se basan en suposiciones sobre la distribución de los datos. Aplican umbrales, tendencias o modelos de probabilidad para identificar puntos que se desvían del comportamiento estadístico esperado. Un enfoque estadístico simple consiste en calcular la media móvil de una señal y señalar una anomalía cuando la media supera cierto umbral.

Los métodos basados en la distancia no asumen una distribución de datos particular, sino que detectan anomalías calculando distancias entre observaciones individuales o subsecuencias para identificar las que se alejan de los patrones típicos. Por ejemplo, matrixProfile compara cada subsecuencia de una serie temporal e identifica como anomalías las que están a mayor distancia del resto.

Uso de distanceProfile para identificar anomalías en datos de series temporales.

Los métodos estadísticos y basados en la distancia se utilizan cuando:

  • Se dispone de datos de entrenamiento limitados
  • Se comprenden bien las estadísticas de referencia y las tendencias de los datos
  • Se cuenta con recursos de cálculo limitados

Características:

+   Simples e interpretables
+   Baja carga computacional
+   Adecuados para anomalías puntuales y colectivas
-   Pueden tener dificultades con patrones complejos o dinámicas no lineales
-   Sensibles al ruido y la dimensionalidad de los datos

Ejemplos de técnicas de MATLAB:

  • isoutlier: Identifica valores atípicos en los datos
  • findchangepts: Detecta cambios abruptos en una señal
  • robustcov: Calcula estimaciones de covarianza y media multivariantes robustas
  • mahal: Calcula la distancia de Mahalanobis respecto a muestras de referencia
  • distanceProfile: Calcula el perfil de distancia entre una subsecuencia de consulta y todas las demás subsecuencias de una serie temporal
  • matrixProfile: Calcula el perfil de matriz entre todos los pares de subsecuencias en una serie temporal multivariable

Explore un ejemplo

Detección de anomalías en datos de motor utilizando el perfil de matriz

El perfil de matriz es útil para detectar eficientemente anomalías colectivas en series temporales extensas. Este ejemplo muestra cómo aplicar el perfil de matriz para detectar anomalías en mediciones de corriente de armadura recopiladas de un motor de CC en proceso de degradación.

Perfil de matriz de datos de motor con par de motivos principales y segmentos discordantes resaltados

Modelos de IA de una sola clase

Los métodos de detección de anomalías de esta categoría entrenan un modelo de Machine Learning o Deep Learning con un conjunto de datos de referencia en su mayoría normales. El modelo aprende el comportamiento normal e identifica las desviaciones como anomalías. Los modelos de IA de una sola clase funcionan mejor cuando las anomalías son raras o carecen de un patrón bien definido. Se pueden aplicar a través de múltiples canales de datos para todo tipo de anomalías.

Los modelos de IA de una sola clase se utilizan cuando:

  • Se desea entrenar un modelo para identificar anomalías en datos nuevos a medida que llegan
  • Se dispone de muchos datos de entrenamiento normales
  • Las anomalías son raras, desconocidas o carecen de un patrón bien definido

Características:

+   Adecuados para todo tipo de anomalías, incluidos patrones complejos y no lineales
+   Robustos en presencia de ruido y dimensionalidad de datos
+   Los métodos de Deep Learning no requieren ingeniería de características
-    Requieren más tiempo de entrenamiento y requisitos computacionales
-    Suelen ser menos interpretables que los métodos estadísticos y basados en la distancia

Ejemplos de técnicas de MATLAB:

  • iforest: Bosque de aislamiento
  • ocsvm: Máquina de vectores de soporte de una sola clase
  • rccforest: Bosque robusto de cortes aleatorios
  • deepSignalAnomalyDetector: Modelos de Deep Learning basados en autocodificadores convolucionales en 1D o redes de memoria a corto-largo plazo (LSTM)
  • tcnAD: Red convolucional temporal (TCN)
  • deepantAD: Red neuronal convolucional (CNN)
  • usAD: Red de doble codificador
  • vaelstmAD: Autocodificador variacional y LSTM

Explore un ejemplo

Entrenamiento de modelos de Deep Learning para detectar anomalías

Este ejemplo utiliza un modelo de Deep Learning para detectar secuencias de latidos cardíacos anormales en datos de electrocardiograma (ECG).

Los datos de ECG con anomalía detectada se muestran en rojo.

Los datos de ECG con anomalía detectada se muestran en rojo.

Preparación de datos para la detección de anomalías

La calidad de los datos es fundamental para crear algoritmos de detección de anomalías precisos. Sin embargo, recopilar, explorar y preprocesar datos para detectar anomalías es complicado, y no existe un enfoque universal. Las técnicas aplicadas dependen de las características de los datos, los requisitos de hardware y el problema que se desea resolver. Detectar anomalías puede ser complejo incluso con muchos datos, ya que estos proceden de cientos de sensores con ruido. En estos casos, resulta esencial extraer las características y reducir la dimensionalidad de los datos.

Conjuntos de datos para detección de anomalías

La detección de anomalías tiene requisitos de datos de entrenamiento flexibles en comparación con muchas tareas tradicionales de Machine Learning, ya que no se necesitan datos etiquetados. Los algoritmos de detección de anomalías se entrenan solo con datos normales o en su mayoría normales que incluyen algunas anomalías. Con este tipo de datos, un modelo de detección de anomalías se entrena para reconocer qué es normal, y todo lo no es normal se clasifica como anomalía.

Si dispone de un conjunto de datos equilibrado y etiquetado con dos o más clases, puede aplicar un enfoque de aprendizaje supervisado para la detección de fallos multiclase.

Diagrama de datos normales y en su mayoría normales adecuados para la detección de anomalías. Se pueden utilizar datos equilibrados y etiquetados para el aprendizaje supervisado.

Datos adecuados para la detección de anomalías.

Obtenga más información sobre estos enfoques:

Exploración y preprocesamiento de datos

Antes de diseñar un algoritmo, se deben comprender los datos. Explorar y visualizar los datos ayuda a identificar fuentes de datos útiles, discernir patrones, evaluar su calidad y determinar los pasos de preprocesamiento necesarios. Puede utilizar la app Signal Analyzer para explorar y preprocesar datos de series temporales de manera interactiva.

Los datos recopilados de sensores suelen ser desordenados, desorganizados y con ruido. Existen numerosas técnicas y apps interactivas en MATLAB para tareas de preprocesamiento, como remuestrear, suavizar, organizar y rellenar datos ausentes, entre otras.

Obtenga más información sobre preprocesamiento de datos en MATLAB:

Extracción de características de datos no procesados

Aunque algunos modelos de IA pueden operar directamente con datos de series temporales, la extracción de características de los datos puede mejorar el rendimiento del modelo, ya que resalta las cantidades más importantes que distinguen los datos normales de los anómalos. La extracción de características implica transformar los datos no procesados en características numéricas significativas para entrenar un modelo.

Por ejemplo, puede calcular características como media, desviación estándar, amplitud máxima o frecuencia dominante. Estas características resumen comportamientos importantes en datos de series temporales y ayuda a que el modelo aprenda qué es normal.

Los equipos de ingeniería familiarizados con sus datos suelen conocer las características más útiles. Aun así, pueden utilizar el proceso automatizado de extracción de características, que extrae características comunes (estadísticas descriptivas, mediciones espectrales, entre otras) y luego las clasifica. La app Diagnostic Feature Designer de Predictive Maintenance Toolbox permite extraer, comparar y clasificar características de manera interactiva, para entrenar un modelo de IA.

Reducción de la dimensionalidad de los datos

Después de recopilar datos y extraer características, es común terminar con una gran cantidad, a veces cientos de datos por señal. Esta alta dimensionalidad puede hacer que los modelos sean más lentos de entrenar, más difíciles de interpretar y más propensos al sobreajuste. Reducir la dimensionalidad seleccionando o combinando solo las características más informativas ayuda a simplificar el modelo y enfocar el entrenamiento en las características principales que indican anomalías. Las técnicas de reducción de dimensionalidad, como análisis de componentes principales (PCA) o clasificación de características, pueden ayudar a identificar las que contribuyen más a la detección de anomalías.

Explore un ejemplo

Detección de anomalías en maquinaria industrial con datos de vibración en tres ejes

Este ejemplo del mundo real entrena tres modelos diferentes de IA de una sola clase. El proceso incluye exploración de datos, extracción de características, entrenamiento de los modelos y evaluación de su rendimiento.

Tres gráficas que muestran datos de vibración de tres canales antes y después del mantenimiento.

Datos de vibración en tres ejes antes y después del mantenimiento en maquinaria industrial. Los datos después del mantenimiento representan el funcionamiento normal, mientras que los datos justo antes del mantenimiento representan una anomalía.

Implementación en el mundo real

Los equipos de ingeniería buscan diseñar algoritmos de detección de anomalías para poder detectar anomalías en sistemas reales. El desarrollo de estos algoritmos es un proceso iterativo.

Esta guía abarca los pasos esenciales para desarrollar un algoritmo de detección de anomalías: explorar y preprocesar datos, extraer características y elegir algoritmos. Después del desarrollo, puede evaluar el algoritmo con datos nuevos para asegurarse de que generaliza correctamente. Finalmente, puede desplegarlo para su uso en tiempo real y actualizarlo según sea necesario con aprendizaje incremental.

Flujo de trabajo de 5 pasos en bucle: capturar y explorar datos, desarrollar un algoritmo de detección de anomalías, probar con datos nuevos, desplegar en hardware y actualizar el modelo.

Flujo de trabajo para desarrollar y desplegar un modelo de detección de anomalías basado en modelos de IA para aplicaciones del mundo real.

Despliegue en hardware embebido

MATLAB para IA embebida permite crear bloques de Simulink o generar código C/C++ para desplegar algoritmos de detección de anomalías en dispositivos embebidos (como un microcontrolador o una ECU) para la detección de anomalías en tiempo real. Es importante probar estos algoritmos en simulación para garantizar su eficacia antes de desplegarlos en hardware embebido. Simulink proporciona una plataforma para integrar algoritmos de detección de anomalías con otros componentes del sistema, lo que permite simulaciones en tiempo real en nivel de sistema.

Diagrama que representa el despliegue de un algoritmo de detección de anomalías en Raspberry Pi.

Despliegue del bloque Deep Signal Anomaly Detector de Simulink en Raspberry Pi® para detectar ruido en tiempo real.

Detección de anomalías incremental

Los métodos de detección de anomalías incremental procesan continuamente datos entrantes y calculan puntuaciones de anomalías a partir de una secuencia de datos en tiempo real. Un modelo incremental se ajusta a los datos. MATLAB proporciona los objetos modelo incrementalRobustRandomCutForest e incrementalOneClassSVM para la detección de anomalías incremental. En primer lugar, se entrena un modelo para calcular una puntuación de anomalía. Luego, se calcula y se ajusta el umbral en base a la puntuación de anomalía obtenida a partir de los datos utilizados para el entrenamiento. El modelo detectará más anomalías, se reentrenará y ajustará el umbral a medida que lleguen nuevos lotes de secuencia de datos.

Obtenga más información sobre la detección de anomalías incremental.

Figura de MATLAB que muestra puntuación de anomalía, umbral y anomalías detectadas a lo largo de las iteraciones en las etapas de ajuste del modelo, aprendizaje del umbral y estimación online.

Etapas de ajuste del modelo, aprendizaje del umbral y estimación online para aplicar técnicas de aprendizaje incremental con datos de series temporales.

Conclusiones principales

La detección de anomalías en series temporales implica identificar desviaciones de los patrones esperados, lo que puede indicar problemas críticos como fallos en máquinas, riesgos para la salud o ineficiencias en procesos. MATLAB proporciona un flujo de trabajo completo para detectar anomalías en datos de series temporales que incluye exploración y preprocesamiento de datos, reducción de dimensionalidad y extracción de características, además de selección de algoritmos apropiados. Simulink permite integrar algoritmos de detección de anomalías en modelos de sistemas más amplios para verificar el comportamiento general del sistema mediante simulación. El flujo de trabajo también admite el despliegue integrado, lo que permite generar código C/C++ para desplegar algoritmos de detección de anomalías en dispositivos edge o en aplicaciones en tiempo real.

Obtenga más información sobre detección de anomalías y mantenimiento predictivo.