Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Autoencoder

Un autoencoder aprende a comprimir datos en un código compacto y reconstruirlos, sin etiquetas. Incluye su estructura, variantes, detección de anomalías y código.

Un autoencoder es una red neuronal entrenada para reproducir su propia entrada. Un codificador transforma la entrada en un código compacto, a menudo llamado representación latente; un decodificador convierte el código de nuevo en una reconstrucción, y el entrenamiento minimiza la diferencia entre la entrada y la reconstrucción. Como el objetivo es la propia entrada, los autoencoders aprenden de datos sin etiquetar, una forma de aprendizaje no supervisado que hoy suele clasificarse como aprendizaje autosupervisado. La red resulta útil gracias a una restricción que impide que copie la entrada sin más, como un cuello de botella estrecho, ruido añadido, entradas enmascaradas o una penalización de dispersión, lo que la obliga a aprender la estructura que permite comprimir los datos. Los autoencoders se utilizan para la reducción de dimensionalidad, la detección de anomalías, la eliminación de ruido, el preentrenamiento y como etapa de compresión de los generadores de imágenes modernos.

Cómo funcionan los autocodificadores#

El codificador f transforma una entrada x en un código z = f(x), el decodificador g genera una reconstrucción x̂ = g(z) y el entrenamiento minimiza una pérdida de reconstrucción, como el error cuadrático medio entre x y x̂, mediante retropropagación. En un autoencoder subcompleto, z tiene muchas menos dimensiones que x, así que el código es un resumen del espacio latente que conserva solo lo que necesita el decodificador. Un autoencoder lineal entrenado con error cuadrático aprende el mismo subespacio que el análisis de componentes principales (PCA), un resultado demostrado por Pierre Baldi y Kurt Hornik en 1989, y las funciones de activación no lineales permiten que los autoencoders profundos capten estructuras curvas que PCA no puede representar. Geoffrey Hinton y Ruslan Salakhutdinov demostraron en un artículo publicado en Science en 2006 que los autoencoders profundos generaban códigos de baja dimensión para imágenes y documentos mucho mejores que PCA.

Las variantes que no dependen de un cuello de botella estrecho alteran la entrada y calculan igualmente la pérdida de reconstrucción comparándola con el original limpio:

Tipos de autoencoders#

  • Eliminación de ruido: Añade ruido a la entrada y entrena la red para recuperar el original limpio, tal como describieron Pascal Vincent y sus colegas en 2008. Las características aprendidas son robustas frente a la corrupción, y el modelo entrenado puede limpiar imágenes o señales ruidosas.
  • Disperso: Usa más unidades de código que entradas, pero penaliza cuántas están activas a la vez. Los autoencoders dispersos entrenados con las activaciones internas de los modelos de lenguaje grandes (LLMs) los dividen en muchas características, cada una de las cuales tiende a corresponderse con un concepto interpretable.
  • Variacional (VAE): El codificador genera una distribución de probabilidad sobre los códigos, y una penalización por divergencia KL hace que se aproxime a una distribución normal estándar, de modo que al decodificar un código muestreado aleatoriamente se generan datos nuevos. Diederik Kingma y Max Welling presentaron el VAE en 2013.
  • Cuantizado vectorial (VQ-VAE): Ajusta cada vector de código a la entrada más cercana de un libro de códigos aprendido mediante cuantización vectorial, convirtiendo imágenes o audio en tokens discretos que puede generar un modelo autorregresivo.
  • Enmascarado: Oculta la mayor parte de la entrada y reconstruye las partes que faltan. Los autoencoders enmascarados (MAE) ocultan el 75 % de los parches de una imagen, y el codificador entrenado de este modo se convierte en una potente red troncal para otras tareas de visión. El Segment Anything Model (SAM) de Meta, que se ejecuta en el paquete de Ultralytics, basa su codificador de imágenes en un Vision Transformer preentrenado con MAE, y SAM 2, en un codificador Hiera preentrenado con MAE, por lo que las características que sustentan cada máscara guiada por indicaciones se aprendieron primero al completar parches ocultos.

Detección de anomalías mediante el error de reconstrucción#

Un autoencoder entrenado solo con datos normales reconstruye bien las entradas normales y mal las desconocidas, por lo que el error de reconstrucción sirve como puntuación de anomalía para detectar defectos de fabricación, transacciones fraudulentas o máquinas averiadas, sin necesidad de anomalías etiquetadas. El fragmento de PyTorch siguiente entrena un autoencoder pequeño con los dígitos manuscritos incluidos en scikit-learn, excluyendo todos los 7, y compara su error en los dígitos reservados con el error en los 7:

import torch
from sklearn.datasets import load_digits
from torch import nn

# 8x8 handwritten digits scaled to [0, 1]; every 7 is held out as the unseen anomaly
digits = load_digits()
x = torch.tensor(digits.data / 16, dtype=torch.float32)
normal, sevens = x[digits.target != 7], x[digits.target == 7]
train, test = normal[:1200], normal[1200:]

# Encoder: 64 pixels to an 8-number code; decoder: code back to 64 pixels
torch.manual_seed(0)
encoder = nn.Sequential(nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, 8))
decoder = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 64), nn.Sigmoid())
model = nn.Sequential(encoder, decoder)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(1000):
    optimizer.zero_grad()
    nn.functional.mse_loss(model(train), train).backward()  # reconstruction error
    optimizer.step()

with torch.no_grad():
    for name, data in [("Held-out digits", test), ("Unseen 7s", sevens)]:
        print(f"{name}: reconstruction error {nn.functional.mse_loss(model(data), data):.4f}")

Imprime un error de reconstrucción de 0.0163 para los dígitos reservados y de 0.0547 para los 7, 3,4 veces mayor de media; un umbral aplicado al error de cada imagen convierte esa diferencia en una marca de anomalía. Un autoencoder también puede generalizar demasiado bien y reconstruir con precisión algunas anomalías, así que los sistemas prácticos ajustan el tamaño del cuello de botella y el umbral con datos de validación que incluyen anomalías conocidas.

  • Redes generativas antagónicas (GAN): El generador de una GAN transforma ruido aleatorio en datos y aprende a partir de un discriminador, sin codificador ni objetivo de reconstrucción. Los VAE también generan datos, y su función objetivo basada en la verosimilitud se entrena de forma más estable, pero tiende a producir imágenes más borrosas.
  • U-Net: Tiene una estructura de codificador-decodificador, pero transforma la entrada en un objetivo distinto, como una máscara de segmentación, y crea conexiones de salto que evitan el cuello de botella; en un autoencoder, estas permitirían que la red copiara la entrada.
  • Aprendizaje contrastivo: Aprende representaciones comparando muestras entre sí, de modo que sus características capturan lo que distingue a las imágenes e ignoran los detalles a nivel de píxel que debe conservar una pérdida de reconstrucción.
  • Embeddings: El código que genera un codificador es un tipo de embedding, y los autoencoders son una de las varias formas de aprenderlos.

Autoencoders en la generación de imágenes#

Los modelos de difusión latente, como Stable Diffusion, ejecutan su proceso de difusión en el espacio latente de un autoencoder y, al final, decodifican el resultado de nuevo a píxeles. Stable Diffusion 1.x usa un autoencoder regularizado por KL que comprime una imagen RGB de 512×512 en un latente de 64×64×4, es decir, 48 veces menos valores que el modelo de difusión debe procesar en cada paso de eliminación de ruido.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático