Detección de anomalías en flujos de producción mediante datos

La mayoría de empresas, en mayor o menor medida, ya conocen las ventajas de la digitalización. La implantación de sistemas de información ha agilizado los procesos, ha facilitado el registro y la compartición de información, y ha resultado decisiva en la mejora general de la operativa diaria.
No obstante, no todas saben (aún) que esos datos digitalizados que los sistemas de información han ido generando, no son residuos históricos a almacenar por si acaso. Esos datos son oro puro. En este artículo, explicamos algunas formas de aprovecharlos. Aquí, te contaremos un caso concreto sobre detección de anomalías.
Si bien el caso expuesto trata sobre un escenario funcional específico, la ciencia en la que se apoya es aplicable a cualquier otro escenario que se precie.
La digitalización de procesos de negocio, más allá de automatizar la operativa y arrojar información de valor, genera datos que pueden ser reutilizados por mecanismos de inteligencia artificial que aportan un salto cualitativo en la optimización de flujos. Entre ellos, la detección de anomalías.


Dentro del proyecto de digitalización llevado a cabo en uno de nuestros principales clientes, uno de los bloques abordados fue el control de presencia por proximidad e IoT y el registro en tiempo real de entradas y salidas de útiles, piezas y herramientas sobre distintas regiones virtuales de la planta de producción.
Dichos datos, una vez procesados, nos permiten localizar de forma aproximada cada elemento en tiempo real y, más allá, trazar de manera precisa qué caminos siguen dentro del flujo de producción.
En definitiva, la información aportada por los datos recogidos facilitan una foto en tiempo real del estado de la producción desde el punto de vista físico. No obstante, se planteó un reto mayor: ¿podemos utilizar esos datos para saber si algo va mal? La respuesta es sí.
¿Objetivo? Implementar un modelo IA que, alimentado por los datos recogidos de manera continua relativos a posicionamiento y entradas y salidas, alerte en tiempo real de que algo puede estar yendo mal. La mayoría de sistemas de análisis se limitan a comparar desviaciones respecto a un plan preestablecido. Sin embargo, queremos una solución capaz de descubrir patrones ocultos.
Qué datos quiero: patrones a partir de series temporales
Lo primero que nos preguntamos, obviamente, es qué datos específicos debíamos utilizar. Esta elección condiciona la calidad del modelo, pues éste se construye en torno a ellos.
Cada vez que se produce la entrada o la salida de una entidad sobre una región concreta, el sistema almacena un registro a tal efecto en tiempo real, obteniendo de este modo series temporales de eventos que pueden ser explotadas para la extracción de modelos o patrones de comportamiento. La solución pasa, por tanto, por implementar un modelo capaz de detectar anomalías en dichos patrones.
No obstante, el primer problema surge por no disponer al inicio de registros previamente etiquetados o categorizados, es decir, no existe información o conocimiento previo sobre qué es una anomalía y qué no dentro del análisis de las series definidas.
Saltamos el obstáculo con el uso de un sistema no supervisado
Hasta que el sistema reciba dicha información etiquetada, solo se puede usar un método no supervisado, consistente esencialmente en un proceso de clasificación de registros en varios grupos, cada uno de ellos con sus propias características y centroides calculados.
Para la construcción del modelo, se utilizó el algoritmo K-means, implementado a su vez a través de la librería scikit-learn integrada en el proyecto. El modelo resultante es un clúster entrenado con tres centroides, de modo que todos los puntos (eventos de entrada o salida en el escenario práctico) que sean clasificados por el modelo dentro de un clúster que contenga menos del 20% de los puntos (eventos) totales, podrían considerarse como una anomalía.
En referencia al entrenamiento del modelo, se utilizan eventos de entrada y salida de entidades sobre regiones virtuales calculados y almacenados por el core del sistema de forma continua. En concreto, en las primeras pruebas se utilizaron 77.000 registros para ello. En el gráfico puede diferenciarse, por colores, el grupo o clúster en el que entra o es clasificado cada evento de entrada o salida. Es evidente concluir, a la vista de los resultados, cómo el modelo considera anomalías aquellos casos que arrojan valores altos.
Un par de mejoras: integración y chequeo
Muy bien pero ¿cómo se usa el modelo? ¿cómo se integra en el sistema de control de la producción? El uso del modelo de detección de anomalías por parte de terceros se materializa a través de la implementación de sus servicios sobre el API REST del sistema, sirviendo sus resultados en tiempo real a cada petición que se desee realizar.
Cabe destacar por último que la acción manual del usuario final puede resultar decisiva para el entrenamiento y la mejora constante del modelo en relación con la clasificación de anomalías. Más allá de la automatización no supervisada que propone, se considera de interés aportar interfaces que permitan a un usuario declarar de forma manual algún evento o suceso como anómalo, ayudando de este modo a la categorización llevada a cabo y, por tanto, a la mejora continua del sistema.
Un paso más en la mejora de procesos a través del uso de datos
La solución aportada, más allá de suponer un elemento funcional que suma en la mejora de procesos, propone mecanismos novedosos y diferenciadores que abren una nueva vía de progreso: el uso de datos.
IA aplicada al proceso de producción de forma sencilla, accesible y eficiente.
Reutilización de datos generados por sistemas terceros que redundan en mejoras.
Descubrimiento de cuellos de botella ocultos, no visibles o difícilmente detectables.