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 relevante 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. La frontera de decisión del modelo se muestra en un plano de componentes principales, donde los puntos rojos representan 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 indicios 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 intervalo 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 que el controlador ajuste 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.
Anomalías puntuales: Los valores atípicos son puntos de datos individuales que se desvían del valor esperado.
Anomalías colectivas: Se producen cuando un grupo de puntos de datos se desvía de los patrones esperados.
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.
Selección de un algoritmo de detección de anomalías
MATLAB ofrece una amplia variedad de algoritmos de detección de anomalías en series temporales que se agrupan en dos categorías principales: métodos estadísticos y basados en distancias, 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.
Puede utilizar la app Time Series Anomaly Detector de MATLAB para visualizar datos de forma interactiva, entrenar detectores de anomalías y comparar enfoques estadísticos, de Machine Learning y de Deep Learning.
Uso de la app Time Series Anomaly Detector para entrenar y probar algoritmos de detección de anomalías. (Disponible en Time Series Anomaly Detection for MATLAB Support Package).
Uso de la app Time Series Anomaly Detector para entrenar y probar algoritmos de detección de anomalías. (Disponible en Time Series Anomaly Detection for MATLAB Support Package).
Métodos estadísticos y basados en distancias
Los métodos estadísticos se basan en supuestos sobre la distribución subyacente 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 marcar una anomalía cuando la media supera cierto umbral.
Los métodos basados en distancias no asumen una distribución de datos particular, sino que detectan anomalías calculando distancias entre observaciones individuales o subsecuencias para identificar aquellas que están más alejadas de los patrones típicos. Por ejemplo, matrixProfile compara cada subsecuencia de una serie temporal e identifica como anomalías a 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 distancias se utilizan cuando:
- Se dispone de pocos datos de entrenamiento
- Se conocen 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 detectar anomalías puntuales y colectivas
- Pueden tener dificultades para modelar patrones complejos o dinámicas no lineales
- sensibles al ruido y a la dimensionalidad de los datos
Ejemplos de técnicas de MATLAB:
isoutlier: Identifica valores atípicos en los datosfindchangepts: Detecta cambios bruscos en una señalrobustcov: Calcula una estimación robusta de la covarianza multivariante y la media multivariantemahal: Calcula la distancia de Mahalanobis respecto a muestras de referenciadistanceProfile: Calcula el perfil de distancias entre una subsecuencia de consulta y el resto de las subsecuencias de una serie temporalmatrixProfile: Calcula el perfil de matriz entre todos los pares de subsecuencias en una serie temporal multivariabletimeSeriesSpcAD: Crea un detector de anomalías que aplica técnicas de control estadístico de procesos a datos de series temporales
Explore un ejemplo
Detección de anomalías en datos de motor con el perfil de matriz
El perfil de matriz es eficaz 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 del inducido 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 recursos computacionales
- Suelen ser menos interpretables que los métodos estadísticos y basados en distancias
Ejemplos de técnicas de MATLAB:
timeSeriesIforestAD: Bosque de aislamientotimeSeriesOcsvmAD: Máquina de vectores de soporte de una sola clasetimeSeriesRrcforestAD: Bosque robusto de cortes aleatoriostimeSeriesLofAD: Factor de valores atípicos localesdeepSignalAnomalyDetector: 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 codificadorvaelstmAD: 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 anómalas en datos de electrocardiograma (ECG).
Datos de ECG con la anomalía detectada resaltada 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 cuando se dispone de abundantes 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 únicamente 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.
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 trabajar directamente con datos de series temporales, la extracción de características puede mejorar el rendimiento del modelo, ya que resalta las características más importantes que distinguen los datos normales de los anómalos. La extracción de características consiste en transformar los datos no procesados en características numéricas significativas para entrenar un modelo.
Por ejemplo, se pueden 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, como estadísticas descriptivas, mediciones espectrales, para luego clasificarlas. 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 ralentizar el entrenamiento, dificultar la interpretación y aumentar el riesgo de 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.
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 diseñan algoritmos de detección de anomalías para utilizarlos en sistemas reales. El desarrollo de estos algoritmos es un proceso iterativo.
Esta guía describe 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 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.
Despliegue del bloque Deep Signal Anomaly Detector de Simulink en Raspberry Pi® para detectar ruido en tiempo real.
Detección incremental de anomalías
Los métodos de detección incremental de anomalías procesan continuamente datos entrantes y calculan puntuaciones de anomalías a partir de una secuencia de datos en tiempo real. Modelo incremental que 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 de 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 incremental de anomalías.
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
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 de maquinaria, 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 del algoritmo más adecuado. 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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)