🔧 Detector de Anomalías en Sensores — Autoencoder en Vivo
Observa un autoencoder neuronal real entrenarse en vivo mediante retropropagación para reconstruir lecturas de sensores simuladas normales, detectando anomalías por picos genuinos de error de reconstrucción que nunca fue entrenado para comprimir bien.
Acerca de esta simulación
Esta simulación ejecuta una red neuronal encoder-decoder genuina (un autoencoder de cinco entradas con un cuello de botella de tres unidades) enteramente en tu navegador, entrenándola en vivo con retropropagación escrita a mano y descenso de gradiente estocástico — sin TensorFlow.js, sin biblioteca de ML enlatada, solo pasadas hacia adelante y hacia atrás codificadas a partir de la regla de la cadena. Se alimenta de un flujo continuo de lecturas sintéticas y correlacionadas de "funcionamiento normal" de cinco sensores de máquina simulados (temperatura, vibración, presión, corriente y RPM), y aprende, época tras época, a comprimir y reconstruir ese patrón saludable. Una vez entrenada, alimentarla con una lectura que nunca ha visto — un pico, una deriva, un sensor atascado, una ruptura de correlación o un estallido de ruido — produce un error de reconstrucción medible más alto, que es exactamente cómo los sistemas reales de mantenimiento predictivo detectan fallos en los equipos antes de que provoquen tiempo de inactividad.
🔬 Qué muestra
Una curva de pérdida en vivo que cae genuinamente a medida que la retropropagación actualiza los pesos de la red en cada fotograma, un gráfico de tira de error de reconstrucción en vivo con un umbral de detección ajustable, y una estructura de máquina 3D cuyos cinco nodos de sensores brillan de verde a rojo según el error de reconstrucción cuadrático en tiempo real de cada canal.
🎮 Cómo usarlo
Deja que la red se entrene durante unos segundos hasta que la curva de pérdida se aplane, luego elige un tipo de anomalía en el menú desplegable y haz clic en Inyectar para alimentar a la red entrenada con un patrón de fallo que nunca ha visto. Observa cómo el error de reconstrucción se dispara por encima de la línea de umbral, ajusta el control deslizante de umbral para cambiar la sensibilidad de detección, y usa Reiniciar para reinicializar la red y volver a entrenarla desde cero.
💡 ¿Sabías que...?
La detección de anomalías basada en autoencoders no necesita ningún ejemplo de fallo etiquetado: solo se entrena con datos abundantes de "todo va bien". Por eso es tan popular en el mantenimiento predictivo industrial, donde los fallos reales son raros, caros de provocar a propósito y a menudo diferentes cada vez.
Preguntas frecuentes
¿Qué es un autoencoder y cómo detecta anomalías?
Un autoencoder es una red neuronal entrenada para reconstruir su propia entrada a través de una capa de cuello de botella estrecho que la obliga a aprender una representación comprimida de los datos. Cuando se entrena solo con lecturas normales de sensores, la red se vuelve muy buena comprimiendo y reconstruyendo los patrones que ha visto, pero mala reconstruyendo patrones que nunca ha encontrado. La detección de anomalías aprovecha esto: se le da a la red entrenada cualquier lectura nueva y se mide el error de reconstrucción, la diferencia cuadrática media entre la entrada y la salida de la red. Las lecturas normales se reconstruyen con bajo error; las lecturas que caen fuera de la variedad aprendida se reconstruyen con alto error, porque el cuello de botella comprimido simplemente no tiene un código eficiente para ellas.
¿Por qué importa la capa de cuello de botella?
Si la capa oculta fuera tan ancha como la entrada, la red podría aprender una función identidad trivial que copia cada valor directamente, y toda entrada, normal o anómala, se reconstruiría con un error cercano a cero, haciendo que la detección de anomalías carezca de sentido. El codificador de esta simulación comprime cinco canales de sensores hasta un cuello de botella de 3 unidades antes de que un decodificador simétrico los expanda de nuevo a cinco salidas. Ese cuello de botella estrecho obliga a la red a descubrir la estructura de baja dimensión que realmente rige una máquina sana, su ciclo de carga compartido, y a descartar todo lo que quede fuera de esa estructura.
¿Cómo se entrena realmente esta red en el navegador?
En cada fotograma de la animación, la simulación genera nuevas lecturas normales sintéticas, nunca archivos de datos reales, las pasa por la red actual en una pasada hacia adelante, calcula el error de reconstrucción cuadrático medio contra esa misma entrada como objetivo de entrenamiento, y luego ejecuta una pasada hacia atrás completa: la regla de la cadena se aplica capa por capa para calcular los gradientes de cada peso y sesgo, usando derivadas de tanh para las capas ocultas y una derivada lineal simple para la capa de salida, y luego cada parámetro se ajusta restando la tasa de aprendizaje multiplicada por su gradiente. Esto es retropropagación y descenso de gradiente genuinos, implementados desde cero en JavaScript puro sin ninguna biblioteca de aprendizaje automático, y puedes ver cómo la curva de pérdida cae a medida que avanza el entrenamiento.
¿Qué tipos de anomalías puedo inyectar y en qué se diferencian?
Hay cinco modos de fallo disponibles: un Pico de Sensor donde un canal salta abruptamente varias desviaciones estándar normales, una Deriva de Sensor donde un canal se desvía lentamente de su rango saludable, un Sensor Atascado donde un canal se congela en un valor fijo mientras la carga real sigue cambiando, una Ruptura de Correlación donde todos los sensores siguen moviéndose pero dejan de moverse juntos aunque las máquinas reales tienen sus sensores acoplados por una carga física compartida, y un Estallido de Ruido donde todos los canales se vuelven mucho más ruidosos que cualquier cosa vista en el entrenamiento. Dado que la red nunca fue entrenada con ninguno de estos cinco patrones, cada uno de ellos suele producir un error de reconstrucción decenas o cientos de veces mayor que el funcionamiento normal.
¿Cómo debo fijar el umbral de detección?
El control deslizante de umbral fija el valor de error de reconstrucción por encima del cual la simulación marca ANOMALÍA DETECTADA. Si se fija demasiado bajo, las lecturas normales pero ruidosas provocarán falsas alarmas; si se fija demasiado alto, los fallos reales pasarán desapercibidos. Un enfoque práctico habitual, reflejado aquí, es fijar el umbral unas cuantas desviaciones estándar por encima del error de reconstrucción medio observado en datos normales validados, y luego ajustarlo mientras se observa el gráfico de error en vivo para equilibrar la sensibilidad frente a la tasa de falsas alarmas para la máquina concreta que se está monitorizando.
¿Por qué la red solo se entrena con datos de funcionamiento normal?
Este es el truco definitorio de la detección de anomalías basada en autoencoders: como las anomalías reales son raras, variadas y a menudo imprevistas, suele ser poco práctico recopilar un conjunto de datos etiquetado con todos los posibles modos de fallo. En cambio, la red solo necesita ejemplos de cómo es lo normal, que son abundantes, y aprende la detección de anomalías como un subproducto no supervisado de comprimir bien esos datos normales generados constantemente. Esta simulación separa estrictamente su generador de entrenamiento, que solo produce el patrón de sensores correlacionado saludable, de su ruta de código de inyección de anomalías en vivo, de modo que cualquier error de reconstrucción alto que veas es un fallo de generalización genuino y no ensayado, no un ejemplo memorizado.
¿La visualización 3D muestra valores reales?
Sí. Los cinco nodos de sensores brillantes corresponden a los cinco canales de entrada de la red, temperatura, vibración, presión, corriente y RPM, y el color e intensidad del brillo de cada nodo está impulsado directamente por el error de reconstrucción cuadrático en tiempo real de ese canal, la lectura real menos la reconstrucción de la red, al cuadrado. El color de la carcasa central refleja la puntuación combinada frente al umbral actual. Nada está guionizado ni precalculado: cada valor proviene de la pasada hacia adelante en vivo de la misma red que se muestra entrenándose en el gráfico de pérdida.
Un autoencoder denso 5→8→3→8→5 se entrena en vivo mediante retropropagación escrita a mano y SGD con datos de sensores sintéticos correlacionados, y luego detecta anomalías por picos genuinos de error de reconstrucción frente a un umbral ajustable.
3D · Renderizador Three.js / WebGL · Objetivo de 60 FPS · funciona totalmente en el cliente, sin instalación