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.

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).

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

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).

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).

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).

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