Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Autoencoder mascherati (MAE)

Scopri come gli autoencoder mascherati (MAE) stanno rivoluzionando l'apprendimento auto-supervisionato. Scopri come la ricostruzione MAE migliora le prestazioni e l'efficienza Ultralytics .

Gli autoencoder mascherati (MAE) rappresentano un approccio altamente efficiente e scalabile all' apprendimento auto-supervisionato nell'ambito più ampio della visione artificiale. Introdotti come metodo per addestrare reti neurali altamente parametrizzate senza richiedere set di dati ampiamente etichettati, gli MAE funzionano oscurando intenzionalmente una porzione ampia e casuale di un'immagine in ingresso e addestrando il modello a ricostruire i pixel mancanti. Predicendo con successo le informazioni visive nascoste, la rete apprende intrinsecamente una profonda comprensione semantica di forme, texture e relazioni spaziali.

Questa tecnica trae forte ispirazione dal successo della modellazione linguistica mascherata nei sistemi basati sul testo, ma è stata adattata alla natura ad alta dimensionalità dei dati immagine. L'architettura si basa sul famosissimo framework Transformer, utilizzando una struttura asimmetrica di codificatore-decodificatore.

Come funzionano gli autoencoder mascherati

L'innovazione principale del MAE risiede nella sua efficienza di elaborazione. Durante l'addestramento, l'immagine in ingresso viene suddivisa in una griglia di patch. Un'alta percentuale di questi patch (spesso fino al 75%) viene mascherata in modo casuale e scartata. L' encoder, tipicamente un Vision Transformer (ViT), elabora solo i patch visibili e non mascherati. Poiché l'encoder salta completamente le porzioni mascherate, richiede una quantità significativamente inferiore di risorse di calcolo e memoria, rendendo il processo di addestramento notevolmente veloce.

Dopo che l'encoder ha generato le rappresentazioni latenti dei patch visibili, subentra un decoder leggero. Il decoder riceve i patch visibili codificati insieme ai "token di maschera" (segnaposto per i dati mancanti) e cerca di ricostruire l'immagine originale. Poiché il decoder viene utilizzato solo durante questa fase di pre-addestramento, può essere mantenuto di dimensioni molto ridotte, riducendo ulteriormente il carico computazionale. Una volta completato il pre-addestramento, il decodificatore viene scartato e il potente codificatore viene mantenuto per le applicazioni a valle.

Distinguere i termini correlati

Per comprendere appieno i MAE, è utile capire in che modo si differenziano dai concetti di deep learning più datati o più generici:

  • Autoencoder: un autoencoder tradizionale comprime l'intero input in uno spazio latente più piccolo e poi lo ricostruisce per apprendere codifiche efficienti dei dati. Un MAE, invece, costringe la rete a prevedere i dati mancanti anziché limitarsi a comprimere e decomprimere l'intero input.
  • Apprendimento auto-supervisionato: Si tratta del paradigma di addestramento generale in cui un modello apprende dai dati stessi senza etichette annotate dall'uomo. MAE è un'implementazione architettonica specifica di questo concetto.
  • Modello di base: i modelli MAE vengono spesso utilizzati per il pre-addestramento di modelli di base visivi, che vengono poi ottimizzati per compiti specifici.

Applicazioni nel mondo reale

Poiché i modelli MAE apprendono rappresentazioni incredibilmente robuste dei dati visivi, costituiscono il punto di partenza ideale per sistemi di IA complessi applicati al mondo reale.

  • Pre-addestramento per il rilevamento avanzato di oggetti: le avanzate capacità di estrazione delle caratteristiche apprese tramite il pre-addestramento MAE possono migliorare notevolmente le prestazioni dei sistemi di rilevamento di oggetti a valle. Ad esempio, le caratteristiche apposte tramite MAE possono essere utilizzate durante l'addestramento di modelli come Ultralytics su set di dati personalizzati e di nicchia in cui i dati etichettati sono scarsi.
  • Analisi delle immagini mediche: In settori come la radiologia, la raccolta di enormi set di dati di scansioni MRI o TC annotate è costosa e soggetta a restrizioni imposte dalle leggi sulla privacy. I ricercatori utilizzano i modelli MAE per pre-addestrare i modelli su ampi insiemi di immagini mediche non etichettate, pubblicate nella recente letteratura accademica su arXiv, prima di perfezionarli per detect o anomalie con pochissimi esempi etichettati.

Gestione dei dati e implementazione

Una volta che un modello di base è stato pre-addestrato utilizzando un approccio MAE, il passo successivo consiste nel mettere a punto e implementare il modello per compiti specifici come la classificazione delle immagini o la segmentazione delle immagini. I moderni ecosistemi cloud rendono questa transizione senza soluzione di continuità. Ad esempio, i team possono sfruttare Ultralytics per annotare facilmente set di dati specifici per l'attività, orchestrare l'addestramento nel cloud e distribuire i modelli risultanti, pronti per la produzione, su dispositivi edge o server. Ciò elimina gran parte del lavoro di infrastruttura standard tipicamente associato alle operazioni di machine learning (MLOps).

Esempio di codice: simulazione del mascheramento delle patch

Sebbene l'addestramento di un MAE completo richieda un'architettura di trasformazioni completa, il concetto fondamentale del "patch masking" può essere facilmente visualizzato utilizzando tensor PyTorch . Questo semplice frammento di codice mostra come sia possibile selezionare in modo casuale dei patch visibili da un tensor di input.

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

Per gli sviluppatori che desiderano integrare potenti funzionalità visive pre-addestrate nei propri flussi di lavoro senza dover progettare architetture da zero, la consultazione dell'ampia Ultralytics offre ottimi spunti per applicare modelli di visione all'avanguardia alle vostre sfide specifiche. Inoltre, i principali framework come TensorFlow forniscono anche ecosistemi robusti per implementare la ricerca all'avanguardia nel campo del machine learning in ambienti di produzione scalabili .

Potenziamento con Ultralytics YOLO

Ottieni una visione AI avanzata per i tuoi progetti. Trova oggi stesso la licenza giusta per i tuoi obiettivi.

Esplora le opzioni di licenza