Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Autoencodificadores enmascarados (MAE)

Descubre cómo los autoencodificadores enmascarados (MAE) están revolucionando el aprendizaje autosupervisado. Descubre cómo la reconstrucción MAE mejora el rendimiento y la eficiencia de Ultralytics .

Los autoencodificadores enmascarados (MAE) constituyen un enfoque altamente eficiente y escalable para el aprendizaje autosupervisado dentro del ámbito más amplio de la visión artificial. Introducidos como un método para entrenar redes neuronales altamente parametrizadas sin necesidad de conjuntos de datos ampliamente etiquetados, un MAE funciona ocultando intencionadamente una gran parte aleatoria de una imagen de entrada y entrenando al modelo para reconstruir los píxeles que faltan. Al predecir con éxito la información visual oculta, la red aprende de forma inherente una comprensión profunda y semántica de las formas, las texturas y las relaciones espaciales.

Esta técnica se inspira en gran medida en el éxito del modelado de lenguaje enmascarado en los sistemas basados en texto, pero se ha adaptado a la naturaleza multidimensional de los datos de imagen. La arquitectura se basa en el popular marco Transformer, utilizando una estructura asimétrica de codificador-decodificador.

Cómo funcionan los autoencodificadores enmascarados

La innovación fundamental del MAE reside en su eficiencia de procesamiento. Durante el entrenamiento, la imagen de entrada se divide en una cuadrícula de fragmentos. Un alto porcentaje de estos parches (a menudo hasta el 75 %) se enmascaran aleatoriamente y se descartan. El codificador, normalmente un Vision Transformer (ViT), solo procesa los parches visibles y sin enmascarar. Dado que el codificador omite por completo las partes enmascaradas, requiere una cantidad significativamente menor de recursos computacionales y de memoria, lo que hace que el proceso de entrenamiento sea notablemente rápido.

Una vez que el codificador genera representaciones latentes de los fragmentos visibles, toma el relevo un decodificador ligero. El decodificador recibe los fragmentos visibles codificados junto con «tokens de máscara» (marcadores de posición para los datos que faltan) e intenta reconstruir la imagen original. Dado que el decodificador solo se utiliza durante esta fase de preentrenamiento, puede mantenerse muy pequeño, lo que reduce aún más la carga computacional. Una vez completado el preentrenamiento, el decodificador se descarta y el potente codificador se conserva para aplicaciones posteriores.

Distinción de términos relacionados

Para comprender plenamente los MAE, resulta útil entender en qué se diferencian de conceptos de aprendizaje profundo más antiguos o más amplios:

  • Autoencoder: Un autoencoder tradicional comprime toda la entrada en un espacio latente más pequeño y, a continuación, la reconstruye para aprender codificaciones de datos eficientes. Sin embargo, un MAE obliga a la red a predecir los datos que faltan, en lugar de limitarse a comprimir y descomprimir toda la entrada.
  • Aprendizaje autosupervisado: Se trata del paradigma de entrenamiento general en el que un modelo aprende a partir de los propios datos, sin etiquetas anotadas por humanos. MAE es una implementación arquitectónica específica de este concepto.
  • Modelos base: los MAE se utilizan a menudo para el preentrenamiento de modelos base visuales, que posteriormente se ajustan para tareas especializadas.

Aplicaciones en el mundo real

Dado que los modelos de autoaprendizaje (MAE) aprenden representaciones increíblemente robustas de los datos visuales, constituyen un punto de partida ideal para sistemas de IA complejos del mundo real.

  • Preentrenamiento para la detección avanzada de objetos: Las amplias capacidades de extracción de características aprendidas mediante el preentrenamiento con MAE pueden mejorar considerablemente el rendimiento de los sistemas de detección de objetos posteriores. Por ejemplo, las características aprendidas a través de MAE pueden utilizarse al entrenar modelos como Ultralytics en conjuntos de datos personalizados y especializados en los que los datos etiquetados son escasos.
  • Análisis de imágenes médicas: En campos como la radiología, la recopilación de conjuntos de datos masivos de resonancias magnéticas o tomografías computarizadas etiquetadas resulta costosa y está sujeta a restricciones legales en materia de privacidad. Los investigadores utilizan modelos de aprendizaje automático (MAE) para preentrenar modelos con grandes conjuntos de imágenes médicas sin etiquetar, publicadas en la literatura académica reciente en arXiv, antes de ajustarlos para detect o anomalías con muy pocos ejemplos etiquetados.

Gestión de datos e implementación

Una vez que se ha preentrenado una red base mediante un enfoque MAE, el siguiente paso consiste en ajustar y desplegar el modelo para tareas específicas como la clasificación de imágenes o la segmentación de imágenes. Los ecosistemas modernos en la nube hacen que esta transición sea fluida. Por ejemplo, los equipos pueden aprovechar Ultralytics para anotar fácilmente conjuntos de datos específicos para cada tarea, coordinar el entrenamiento en la nube e implementar los modelos resultantes, listos para producción, en dispositivos periféricos o servidores. Esto elimina gran parte del trabajo de infraestructura repetitivo que suele asociarse con las operaciones de aprendizaje automático (MLOps).

Ejemplo de código: Simulación del enmascaramiento de parches

Aunque el entrenamiento de una red MAE completa requiere una arquitectura de transformadores completa, el concepto básico del enmascaramiento de parches se puede visualizar fácilmente mediante tensor PyTorch . Este sencillo fragmento de código muestra cómo se pueden seleccionar aleatoriamente parches visibles de un tensor de entrada.

import torch


def create_random_mask(batch_size, num_patches, mask_ratio=0.75):
    """Generates a random mask to simulate MAE patch dropping."""
    # Calculate how many patches to keep visible
    num_keep = int(num_patches * (1 - mask_ratio))

    # Generate random noise to determine patch shuffling
    noise = torch.rand(batch_size, num_patches)

    # Sort noise to get random indices
    ids_shuffle = torch.argsort(noise, dim=1)

    # Select the indices of the patches that remain visible
    ids_keep = ids_shuffle[:, :num_keep]

    return ids_keep


# Simulate a batch of 4 images, each divided into 196 patches
visible_patches = create_random_mask(batch_size=4, num_patches=196)
print(f"Visible patch indices shape: {visible_patches.shape}")

Para los desarrolladores que deseen integrar potentes capacidades visuales preentrenadas en sus flujos de trabajo sin tener que diseñar arquitecturas desde cero, consultar la amplia Ultralytics ofrece excelentes puntos de partida para aplicar modelos de visión de vanguardia a sus retos específicos. Además, los principales marcos de trabajo como TensorFlow también ofrecen ecosistemas sólidos para implementar la investigación de vanguardia en aprendizaje automático en entornos de producción escalables.

Potencia con Ultralytics YOLO

Obtenga visión artificial avanzada para sus proyectos. Encuentre la licencia adecuada para sus objetivos hoy mismo.

Explore las opciones de licencia