Autocodificadores - MATLAB & Simulink

Autoencoders (Autocodificadores)

Introducción a los autoencoders

Autoencoders (autocodificadores) son un tipo de red de Deep Learning que se entrena para replicar sus datos de entrada. Los autocodificadores han superado a las técnicas de ingeniería tradicionales en cuanto a precisión y rendimiento en muchas aplicaciones, como detección de anomalías, generación de texto, generación de imágenes, eliminación de ruido en imágenes y comunicaciones digitales.

Puede utilizar MATLAB Deep Learning Toolbox™ para diversos ejemplos de aplicaciones de autocodificadores, que se mencionan más abajo.

¿Cómo funcionan los autocodificadores?

Los autocodificadores generan una reconstrucción de la entrada. El autocodificador consta de dos redes más pequeñas: un codificador y un decodificador. Durante el entrenamiento, el codificador aprende un conjunto de características, conocido como representación latente, a partir de los datos de entrada. Al mismo tiempo, el decodificador se entrena para reconstruir los datos de entrada en función de estas características. Luego, el autocodificador se puede aplicar para predecir entradas no vistas anteriormente. Los autocodificadores son muy fáciles de generalizar, y se pueden utilizar en diferentes tipos de datos, como imágenes, series temporales y texto.

Arquitectura de red de autoencoder. Un codificador crea una representación latente de la entrada. Luego, esta representación se introduce en un decodificador.

Figura 1. Un autocodificador consta de un codificador y un descodificador.

¿En qué aplicaciones se utilizan autocodificadores?

Los autocodificadores ignoran de manera natural cualquier ruido presente en las entradas mientras se entrena el codificador. Esta característica resulta ideal para eliminar ruido o detectar anomalías cuando se comparan las entradas y las salidas (consulte las Figuras 2 y 3).

Un autoencoder elimina ruido (r roja) de una imagen (fondo punteado con r roja).

Figura 2. Eliminación de ruido en imágenes.

Un autoencoder detecta una anomalía (r roja) en una imagen (fondo punteado con r roja).

Figura 3. Detección de anomalías basada en imágenes.

La representación latente también se puede utilizar para generar datos sintéticos. Por ejemplo, se pueden crear automáticamente frases de texto o escritura a mano con aspecto realista (Figura 4).

Se utiliza un soneto de Shakespeare como texto de entrada para un autoencoder. El texto de salida es un soneto generado.

Figura 4. Generación de frases de texto nuevo a partir de texto existente.

También se pueden utilizar autocodificadores basados en series temporales para detectar anomalías en datos de señales. Por ejemplo, en mantenimiento predictivo, se puede entrenar un autocodificador con datos de funcionamiento normal de una máquina industrial (Figura 5).

Un autoencoder detecta y elimina un error en datos de funcionamiento normal (señal de serie temporal) de una máquina industrial.

Figura 5. Entrenamiento con datos de funcionamiento normal para mantenimiento predictivo.

Luego, el autocodificador entrenado se prueba con nuevos datos de entrada. Una variación considerable en la salida del autocodificador indica un funcionamiento anómalo que podría requerir investigación (Figura 6).

Un autoencoder detecta un error considerable en datos de funcionamiento anormal (señal de serie temporal) de una máquina industrial.

Figura 6. Un error considerable que indica anomalías en los datos de entrada puede indicar que es necesario realizar mantenimiento.

Puntos clave

  • Los autocodificadores no requieren datos de entrada etiquetados para el entrenamiento, dado que no están supervisados
  • Existen diversos tipos de autocodificadores para diferentes tareas de ingeniería, como:
    • Autocodificadores convolucionales: la salida del decodificador intenta reflejar la entrada del codificador, lo que es útil para eliminar ruido
    • Autocodificadores variacionales: crean un modelo generativo, útil para la detección de anomalías
    • Autocodificadores LSTM: crean un modelo generativo para aplicaciones de series temporales

También puede consultar estos temas: Deep Learning, redes de memoria de corto-largo plazo, redes neuronales convolucionales, detección de anomalías