Contenido del curso

- Autoencoders: Compresión de Datos y Reducción de Dimensionalidad

Autoencoders: Compresión de Datos y Reducción de Dimensionalidad

Odisea Algorítmica · De la regresión al aprendizaje profundo

Los autoencoders son arquitecturas de redes neuronales que aprenden a comprimir y reconstruir datos. Están formados por un codificador que reduce la dimensionalidad hasta un cuello de botella latente, y un decodificador que reconstruye la entrada original. Este proceso permite compresión con pérdida controlada, ideal para dominios donde cada byte importa.

idea clave Cuello de botella latente: el vector central de menor dimensión obliga a la red a retener solo las características esenciales, descartando ruido o redundancias.

Arquitectura codificador-decodificador

La red se divide en dos módulos simétricos (no necesariamente idénticos en número de capas):

  • Codificador (encoder): reduce progresivamente la dimensión usando capas densas o convolucionales. Extrae características latentes z.
  • Decodificador (decoder): expande el vector latente hasta restaurar la forma original. La salida reconstruida x' debe parecerse a la entrada x.

El entrenamiento minimiza el error de reconstrucción (MSE, entropía cruzada) entre x y x'.

Compresión con pérdida mediante el cuello de botella

Al reducir la dimensionalidad forzamos una representación compacta. La pérdida es inevitable si la dimensión latente es menor que la intrínseca de los datos, pero se puede controlar ajustando el tamaño del cuello de botella. Aplicaciones emblemáticas:

  • Imágenes satelitales y médicas: reducción de almacenamiento sin perder información clínica o geoespacial.
  • Series temporales financieras de alta frecuencia: compresión para transmisión y almacenamiento eficiente.
  • Detección de anomalías: si el error de reconstrucción es alto, el dato es anómalo.

Aplicación principal: compresión de datos satelitales y médicos

Las instituciones generan terabytes de imágenes (radiografías, tomografías, cubesat). Un autoencoder entrenado en ese dominio puede comprimir cada imagen con relaciones 10:1 o 20:1 manteniendo bordes y texturas críticas. Ofrecemos un ejemplo conceptual con una imagen de satélite simulada (matriz de 64x64 píxeles).

Ejercicio conceptual: autoencoder para imagen satelital simulada

Implementaremos un autoencoder denso (fully connected) sobre una pequeña imagen en escala de grises que simula una captura de satélite (patrones de campos, agua y construcciones). El código siguiente entrena un modelo con Keras/TensorFlow; puedes adaptarlo a tus datos reales.

import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, Model

# --- imagen simulada (64x64) ---
np.random.seed(42)
sat_img = np.random.rand(64, 64).astype('float32')
# estructura: manchas y bordes suaves
sat_img[20:40, 10:30] = 0.9   # zona brillante
sat_img[5:15, 40:55] = 0.2    # zona oscura/agua

x_train = sat_img.reshape(1, -1)  # (1, 4096)

# --- autoencoder denso (cuello de botella 64) ---
input_dim = 4096
encoding_dim = 64   # compresión 64:1

input_layer = layers.Input(shape=(input_dim,))
encoded = layers.Dense(256, activation='relu')(input_layer)
encoded = layers.Dense(encoding_dim, activation='relu')(encoded)

decoded = layers.Dense(256, activation='relu')(encoded)
decoded = layers.Dense(input_dim, activation='sigmoid')(decoded)

autoencoder = Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='mse')

# entrenamiento (solo 10 épocas didácticas)
autoencoder.fit(x_train, x_train, epochs=10, verbose=0)

# --- reconstrucción ---
reconstructed = autoencoder.predict(x_train, verbose=0).reshape(64, 64)
print('Error de reconstrucción (MSE):', 
      np.mean((sat_img - reconstructed) ** 2))

En la práctica, con datos reales se usan convoluciones y más épocas, pero el principio es idéntico.

Compresión de series temporales de alta frecuencia (finanzas)

Los ticks de acciones (millones por día) pueden comprimirse con autoencoders recurrentes o convolucionales 1D. Se logran tasas de compresión de 5x a 15x preservando volatilidad y estructura de autocorrelación.

DominioDimensión originalCuello de botella típicoRelación compresión
Imagen satelital (64×64)40966464:1
Radiografía (256×256)65536256256:1
Serie financiera (1000 ticks)10005020:1

Detección de anomalías: error de reconstrucción como indicador

Un autoencoder entrenado con datos normales (no anómalos) reconstruye bien patrones habituales, pero falla en casos atípicos, generando un error elevado. En la práctica se establece un umbral: si la pérdida de reconstrucción supera cierto percentil (ej. 95%), se dispara una alerta.

  • Monitorización industrial: detectar piezas defectuosas en línea de producción.
  • Ciberseguridad: tráfico de red inusual (intrusión).
  • Médico: lesiones o tumores no vistos en entrenamiento.

ejercicio conceptual Implementa tu propio autoencoder con la imagen satelital simulada. Modifica encoding_dim a 128, 32 y observa cómo cambia la calidad de reconstrucción. ¿A partir de qué valor notas pérdida importante?

Los autoencoders son una herramienta fundamental en la caja de herramientas del deep learning: compresión, denoising, reducción de dimensionalidad y detección de anomalías. Su sencillez conceptual los convierte en la puerta de entrada a modelos generativos más avanzados como VAE o GANs.

Lección · Odisea Algorítmica · autoencoders
Arquitectura de autoencoders (codificador-decodificador) y su entrenamiento para reconstruir entradas. Explicación de la compresión con pérdida a través del cuello de botella latente. Aplicación principal en compresión de datos satelitales y médicos (reduciendo almacenamiento sin perder información crítica). También se abordarán aplicaciones en finanzas (compresión de series temporales de alta frecuencia) y detección de anomalías (reconstrucción con error elevado como indicador). Ejercicio conceptual: Implementación de un autoencoder simple para comprimir y reconstruir una imagen de satélite simulada.
Calificación
0 0

No hay comentarios por ahora.