- 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 entradax.
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.
| Dominio | Dimensión original | Cuello de botella típico | Relación compresión |
|---|---|---|---|
| Imagen satelital (64×64) | 4096 | 64 | 64:1 |
| Radiografía (256×256) | 65536 | 256 | 256:1 |
| Serie financiera (1000 ticks) | 1000 | 50 | 20: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 · autoencodersNo hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.