Novedades de Conxemar 2019
noviembre 25, 2019El lado oscuro del “hágaselo usted mismo”
febrero 1, 2020Muutech añade a su plataforma la detección de anomalías con el apoyo de ICEX InvestInSpain
Gracias al “Programa de Inversiones de Empresas Extranjeras en Actividades de I+D 2019”, del que Muutech ha sido beneficiario, hemos podido ampliar las capacidades de nuestro producto basado en Zabbix y Grafana, Minerva, para incluir la detección automatizada de anomalías utilizando algoritmos de inteligencia artificial, concretamente técnicas de Deep Learning. En este post os vamos a contar un poco como lo hemos hecho y los resultados obtenidos.
Para aumentar las capacidades de mantenimiento predictivo de la plataforma de Muutech, es necesario que esta sea capaz de detectar, de forma automática, desviaciones o comportamientos fuera de lo normal en cualquiera de las métricas o indicadores que es capaz de recoger, ya sean temperaturas, vibraciones o número de usuarios conectados a nuestros sistemas y servidores. El sistema debe ser capaz de aprender cual es el comportamiento normal de una determinada métrica por lo que se le debe “entrenar” con histórico que se considere “aceptable”. Posteriormente irá procesando en lotes los nuevos datos que vayan llegando al sistema y avisará en caso de que estos nuevos datos se salgan de lo “normal” y “aceptable” con una probabilidad X superior a un umbral configurable por el usuario. El sistema podrá también recibir retroalimentación por parte del usuario que le dirá si ha “acertado” o no. Es decir, el usuario irá indicando al sistema si algunos patrones que ha detectado como fuera de lo normal, en realidad son aceptables, pero simplemente no se capturaron en la fase de entrenamiento. Con esto el sistema aprende y mejora, aumentando la calidad de las alarmas. Esto es lo que se conoce como detección de anomalías.
Si vemos en la gráfica inferior y solo ciñéndonos a la misma, usando la inteligencia humana podemos ver que las anomalías marcadas son a priori correctas. Pues esto que para el ser humano es más o menos directo en casos genéricos, la manera de que lo haga una máquina es a través de inteligencia artificial, Deep Learning en este caso.
Para aumentar las capacidades de mantenimiento predictivo de la plataforma de Muutech, es necesario que esta sea capaz de detectar, de forma automática, desviaciones o comportamientos fuera de lo normal en cualquiera de las métricas o indicadores que es capaz de recoger, ya sean temperaturas, vibraciones o número de usuarios conectados a nuestros sistemas y servidores. El sistema debe ser capaz de aprender cual es el comportamiento normal de una determinada métrica por lo que se le debe “entrenar” con histórico que se considere “aceptable”. Posteriormente irá procesando en lotes los nuevos datos que vayan llegando al sistema y avisará en caso de que estos nuevos datos se salgan de lo “normal” y “aceptable” con una probabilidad X superior a un umbral configurable por el usuario. El sistema podrá también recibir retroalimentación por parte del usuario que le dirá si ha “acertado” o no. Es decir, el usuario irá indicando al sistema si algunos patrones que ha detectado como fuera de lo normal, en realidad son aceptables, pero simplemente no se capturaron en la fase de entrenamiento. Con esto el sistema aprende y mejora, aumentando la calidad de las alarmas. Esto es lo que se conoce como detección de anomalías.
Si vemos en la gráfica inferior y solo ciñéndonos a la misma, usando la inteligencia humana podemos ver que las anomalías marcadas son a priori correctas. Pues esto que para el ser humano es más o menos directo en casos genéricos, la manera de que lo haga una máquina es a través de inteligencia artificial, Deep Learning en este caso.
Por ello a la hora de dotar de un módulo adicional de detección genérica de anomalías a nuestra plataforma, nos pusimos a trabajar e investigar, con la ayuda de un centro tecnológico, sobre técnicas de inteligencia artificial y procesado de datos para abordar el problema.
Hemos probado un par de modelos, en este caso K-Means, basado en técnicas de clústering y Autoencoder, basado en redes neuronales, ambos de aprendizaje automático no supervisado al tratarse de información sin etiquetar, con buenos resultados. Esencialmente lo que hace el sistema es entrenar estos modelos con ventanas de métricas normales y luego a medida que se van cogiendo nuevos datos analizar la predicción realizada por el modelo respecto a lo que se ha medido. Simplificándolo un poco para que se entienda, si la diferencia entre la predicción y la realidad es muy alta, lo que se conoce como error de reconstrucción, se detecta una anomalía.
Hemos probado un par de modelos, en este caso K-Means, basado en técnicas de clústering y Autoencoder, basado en redes neuronales, ambos de aprendizaje automático no supervisado al tratarse de información sin etiquetar, con buenos resultados. Esencialmente lo que hace el sistema es entrenar estos modelos con ventanas de métricas normales y luego a medida que se van cogiendo nuevos datos analizar la predicción realizada por el modelo respecto a lo que se ha medido. Simplificándolo un poco para que se entienda, si la diferencia entre la predicción y la realidad es muy alta, lo que se conoce como error de reconstrucción, se detecta una anomalía.
Evidentemente, los modelos usados funcionan mejor o peor en función de la tipología de señal utilizada (si es estacionaria, periódica, etc.) y de las ventanas temporales escogidas. Uno de los puntos con los que seguir el proyecto es precisamente ese, el saber cómo escoger el modelo más adecuado a cada situación, ya que lo que queremos es conseguir un sistema más o menos genérico. Otro de los puntos clave para continuar la investigación es la posibilidad de alimentar los modelos con varias métricas diferentes y podamos por ejemplo detectar anomalías en equipos industriales a partir de una combinación de datos como la temperatura, la vibración o la calidad de las piezas producidas.
Tras las primeras pruebas, decidimos testear el sistema con algo real, dónde supiéramos que existía una anomalía y dónde tuviéramos bastantes datos para el entrenamiento. Para ello, utilizamos los datos abiertos descargables que pone a nuestra disposición en este caso el Ayuntamiento de Madrid, dónde podemos obtener el histórico de datos de mediciones de Dióxido de Azufre (SO2) medido en este caso en la Plaza del Carmen, como punto más céntrico. Alimentamos el Zabbix de nuestra plataforma en la nube con este histórico:
Tras las primeras pruebas, decidimos testear el sistema con algo real, dónde supiéramos que existía una anomalía y dónde tuviéramos bastantes datos para el entrenamiento. Para ello, utilizamos los datos abiertos descargables que pone a nuestra disposición en este caso el Ayuntamiento de Madrid, dónde podemos obtener el histórico de datos de mediciones de Dióxido de Azufre (SO2) medido en este caso en la Plaza del Carmen, como punto más céntrico. Alimentamos el Zabbix de nuestra plataforma en la nube con este histórico:
Visualizando el gráfico, de forma intuitiva, vemos que hay una anomalía alrededor del 27 de marzo de 2019 dónde los niveles bajan de forma significativa. Para ver si nuestro sistema lo detecta también, lo entrenamos con los tres meses anteriores y lo pusimos a realizar el análisis. La gran ventaja es que para el usuario de nuestra plataforma la configuración de los modelos, el entrenamiento, etc se realiza desde la propia plataforma como un ítem de monitorización más, por lo que no necesita conocimiento avanzados o interactuar con diferentes plataformas o exportando e importando en CSV constantemente. Este ítem adicional indicará a la plataforma de análisis de inteligencia artificial que señal debe ser analizada, que período de tiempo es el de entrenamiento, así como parámetros adicionales del modelo, y en el mismo volcará el análisis realizado, en forma de probabilidad de anomalía, sobre la que luego se podrá establecer una alarma como con cualquier otro tipo de métrica.
Este es el resultado del análisis, en este caso aplicando Deep Learning con Autoencoder:
Este es el resultado del análisis, en este caso aplicando Deep Learning con Autoencoder:
En rojo, los valores de dióxido de azufre medidos en marzo de 2019 y en verde la probabilidad de anomalía detectada por la plataforma. Vemos que es necesario refinar todavía el sistema ya que detecta algunas anomalías en los primeros días del mes dónde en principio no las hay, aunque estas son picos puntuales, pero vemos claramente que el sistema detecta de forma recurrente anomalías a partir del día 15 siendo estas prácticamente constantes a partir del día 26 de marzo, tal y como habíamos descubierto visualmente. Al comprobar los datos, descubrimos que las multas por acceder a Madrid Central se comenzaron a poner a partir del día 16 de marzo, pero parece que el efecto no sé notó hasta unos días después, y esto no sabemos si es debido a los sensores, al comportamiento del propio gas o a que realmente los primeros días no fueron efectivos. Este caso, al igual que en términos generales, refleja el comportamiento de la plataforma, que avisará de una anomalía, pero su interpretación la dará el usuario, conocedor de su proceso y equipamiento, apoyándose en el resto de datos a través de su visualización a través de la potente plataforma basada en Grafana.
La inteligencia artificial nos ayuda a trabajar de forma predictiva y sobre todo realizando el análisis de los datos por nosotros como vemos en los ejemplos de este blog, lo que nos permite estar tranquilos sabiendo que el sistema vigila y supervisa constantemente y sin cansarse y nos avisa ante cualquier problema, para que entonces nosotros actuemos y tomemos las decisiones con el apoyo de las máquinas. Con esto podemos descubrir los problemas antes de que estos sucedan (averías, bajadas en calidad y producción) o de que estos impacten realmente, ayudados por la tecnología y apoyados en los datos.
La inteligencia artificial nos ayuda a trabajar de forma predictiva y sobre todo realizando el análisis de los datos por nosotros como vemos en los ejemplos de este blog, lo que nos permite estar tranquilos sabiendo que el sistema vigila y supervisa constantemente y sin cansarse y nos avisa ante cualquier problema, para que entonces nosotros actuemos y tomemos las decisiones con el apoyo de las máquinas. Con esto podemos descubrir los problemas antes de que estos sucedan (averías, bajadas en calidad y producción) o de que estos impacten realmente, ayudados por la tecnología y apoyados en los datos.
MANAGER DE DESARROLLO Y DIGITALIZACIÓN
Experto en monitorización industrial y monitorización IT.
Ayudamos a empresas a luchar contra paradas y degradaciones de sistemas IT y procesos industriales.
Transforma tus datos de monitorización en valiosa información, en cualquier momento y desde cualquier lugar
¡Mejora la toma de decisiones y la eficiencia de tu empresa!
Suscríbete a nuestra Newsletter