Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Auto-encodeurs masqués (MAE)

Découvrez comment les auto-encodeurs masqués (MAE) révolutionnent l'apprentissage auto-supervisé. Découvrez comment la reconstruction MAE améliore les performances et l'efficacité Ultralytics .

Les auto-encodeurs masqués (MAE) constituent une approche hautement efficace et évolutive de l' apprentissage auto-supervisé dans le domaine plus large de la vision par ordinateur. Introduit comme une méthode permettant d'entraîner des réseaux neuronaux fortement paramétrés sans nécessiter de vastes ensembles de données étiquetées, un MAE fonctionne en masquant intentionnellement une grande partie aléatoire d'une image d'entrée et en entraînant le modèle à reconstruire les pixels manquants. En prédisant avec succès les informations visuelles cachées, le réseau acquiert intrinsèquement une compréhension sémantique profonde des formes, des textures et des relations spatiales.

Cette technique s'inspire largement du succès de la modélisation linguistique masquée dans les systèmes textuels, mais elle est adaptée à la nature hautement dimensionnelle des données d'images. L'architecture s'appuie sur le très populaire cadre Transformer, en utilisant une structure asymétrique d'encodeur-décodeur.

Comment fonctionnent les auto-encodeurs masqués

L'innovation principale du MAE réside dans son efficacité de traitement. Pendant l'apprentissage, l'image d'entrée est divisée en une grille de fragments. Une grande partie de ces patches (souvent jusqu’à 75 %) sont masqués de manière aléatoire et écartés. L’ encodeur, généralement un Vision Transformer (ViT), ne traite que les patches visibles et non masqués. Comme l’encodeur ignore complètement les parties masquées, il nécessite nettement moins de ressources de calcul et de mémoire, ce qui rend le processus d’apprentissage remarquablement rapide.

Une fois que l'encodeur a généré les représentations latentes des zones visibles, un décodeur léger prend le relais. Le décodeur reçoit les zones visibles encodées ainsi que des « jetons de masque » (des espaces réservés pour les données manquantes) et tente de reconstituer l'image d'origine. Comme le décodeur n'est utilisé que pendant cette phase de pré-entraînement, il peut être conçu de manière très compacte, ce qui réduit encore davantage la charge de calcul. Une fois le pré-entraînement terminé, le décodeur est supprimé et le puissant encodeur est conservé pour les applications en aval.

Distinguer les termes apparentés

Pour bien saisir le concept des MAE, il est utile de comprendre en quoi ils diffèrent des concepts plus anciens ou plus généraux du deep learning:

  • Auto-encodeur: un auto-encodeur classique compresse l'intégralité d'une entrée dans un espace latent plus petit, puis la reconstitue afin d'apprendre des codages de données efficaces. Une MAE, en revanche, oblige le réseau à prédire les données manquantes plutôt que de se contenter de compresser et de décompresser l'intégralité de l'entrée.
  • Apprentissage auto-supervisé: Il s'agit d'un paradigme d'apprentissage global dans lequel un modèle apprend à partir des données elles-mêmes, sans étiquettes annotées par l'homme. MAE est une implémentation architecturale spécifique de ce concept.
  • Modèles de base: les MAE sont souvent utilisés pour le pré-entraînement de modèles de base visuels, qui sont ensuite affinés pour des tâches spécialisées.

Applications concrètes

Comme les MAE apprennent des représentations extrêmement robustes des données visuelles, ils constituent un point de départ idéal pour les systèmes d'IA complexes destinés au monde réel.

  • Pré-entraînement pour la détection avancée d'objets : les puissantes capacités d'extraction de caractéristiques acquises grâce au pré-entraînement MAE peuvent considérablement améliorer les performances des systèmes de détection d'objets en aval. Par exemple, les caractéristiques acquises via MAE peuvent être mises à profit lors de l'entraînement de modèles tels que Ultralytics sur des ensembles de données personnalisés et spécialisés où les données étiquetées sont rares.
  • Analyse d'images médicales: Dans des domaines tels que la radiologie, la collecte d'ensembles de données massifs d'IRM ou de tomodensitométries annotées est coûteuse et soumise à des restrictions liées à la législation sur la protection de la vie privée. Les chercheurs ont recours aux MAE pour pré-entraîner des modèles sur de vastes ensembles d'images médicales non annotées, publiées dans la littérature scientifique récente sur arXiv, avant de les affiner afin de detect ou des anomalies à partir d'un très petit nombre d'exemples annotés.

Gestion des données et du déploiement

Une fois qu'un modèle de base a été pré-entraîné à l'aide d'une approche MAE, l'étape suivante consiste à affiner et à déployer le modèle pour des tâches spécifiques telles que la classification d'images ou la segmentation d'images. Les écosystèmes cloud modernes rendent cette transition transparente. Par exemple, les équipes peuvent tirer parti de Ultralytics pour annoter facilement des ensembles de données spécifiques à une tâche, orchestrer l'entraînement dans le cloud et déployer les modèles finaux prêts pour la production sur des périphériques ou des serveurs. Cela élimine une grande partie du travail d'infrastructure standard généralement associé aux opérations d'apprentissage automatique (MLOps).

Exemple de code : simulation du masquage par patch

Bien que l'entraînement d'un MAE complet nécessite une architecture de transformateur complète, le principe fondamental du masquage de patches peut être facilement illustré à l'aide tensor PyTorch . Cet extrait de code simple montre comment sélectionner de manière aléatoire des patches visibles dans un tensor d'entrée.

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}")

Pour les développeurs qui souhaitent intégrer des capacités visuelles puissantes et pré-entraînées dans leurs flux de travail sans avoir à concevoir des architectures à partir de zéro, la consultation de Ultralytics très complète Ultralytics constitue un excellent point de départ pour appliquer des modèles de vision de pointe à vos défis spécifiques. De plus, les principaux frameworks tels que TensorFlow offrent également des écosystèmes robustes permettant de mettre en œuvre les dernières recherches en matière d'apprentissage automatique dans des environnements de production évolutifs.

Boostez votre énergie avec Ultralytics YOLO

Bénéficiez d'une vision IA avancée pour vos projets. Trouvez la licence adaptée à vos objectifs dès aujourd'hui.

Explorer les options de licence