Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Autoencoder

Un autoencoder impara a comprimere i dati in un codice compatto e a ricostruirli, senza etichette. Tratta la struttura, le varianti, il rilevamento delle anomalie e il codice.

Un autoencoder è una rete neurale addestrata a riprodurre il proprio input. Un encoder mappa l'input in un codice compatto, spesso chiamato rappresentazione latente; un decoder riconverte il codice in una ricostruzione e l'addestramento minimizza la differenza tra input e ricostruzione. Poiché il target è l'input stesso, gli autoencoder apprendono da dati senza etichette, una forma di apprendimento non supervisionato oggi generalmente classificata come apprendimento auto-supervisionato. La rete diventa utile grazie a un vincolo che le impedisce di copiare direttamente l'input, come un collo di bottiglia stretto, l'aggiunta di rumore, input mascherati o una penalità di sparsità; ciò la costringe ad apprendere la struttura che rende i dati comprimibili. Gli autoencoder vengono usati per la riduzione della dimensionalità, il rilevamento delle anomalie, la rimozione del rumore, il preaddestramento e come fase di compressione dei moderni generatori di immagini.

Come funzionano gli autoencoder#

L'encoder f mappa un input x in un codice z = f(x), il decoder g produce una ricostruzione x̂ = g(z) e l'addestramento minimizza una loss di ricostruzione, per esempio l'errore quadratico medio tra x e x̂, tramite backpropagation. In un autoencoder sottocompleto, z ha molte meno dimensioni di x, quindi il codice è una sintesi dello spazio latente che conserva solo ciò di cui il decoder ha bisogno. Un autoencoder lineare addestrato con errore quadratico apprende lo stesso sottospazio dell'analisi delle componenti principali (PCA), come dimostrarono Pierre Baldi e Kurt Hornik nel 1989; le funzioni di attivazione non lineari consentono agli autoencoder più profondi di cogliere strutture curve che la PCA non riesce a rappresentare. In un articolo pubblicato su Science nel 2006, Geoffrey Hinton e Ruslan Salakhutdinov mostrarono che, per immagini e documenti, gli autoencoder profondi producevano codici a bassa dimensionalità molto migliori della PCA.

Le varianti che non dipendono da un collo di bottiglia stretto alterano invece l'input e confrontano comunque la ricostruzione con l'originale integro:

Tipi di autoencoder#

  • Denoising: Aggiunge rumore all'input e addestra la rete a recuperare l'originale pulito, come descritto da Pascal Vincent e colleghi nel 2008. Le caratteristiche apprese sono robuste alla corruzione e il modello addestrato può ripulire immagini o segnali rumorosi.
  • Sparse: Usa più unità di codice che input, ma penalizza il numero di unità attive contemporaneamente. Gli autoencoder sparsi addestrati sulle attivazioni interne dei modelli linguistici di grandi dimensioni (LLMs) li scompongono in molte caratteristiche, ciascuna delle quali tende a corrispondere a un concetto interpretabile.
  • Variazionale (VAE): L'encoder produce una distribuzione di probabilità sui codici e una penalità basata sulla divergenza KL la mantiene vicina a una distribuzione normale standard, così la decodifica di un codice campionato casualmente genera nuovi dati. Diederik Kingma e Max Welling hanno introdotto il VAE nel 2013.
  • Quantizzato a vettori (VQ-VAE): Porta ogni vettore di codice alla voce più vicina di un codebook appreso tramite quantizzazione vettoriale, convertendo immagini o audio in token discreti che un modello autoregressivo può generare.
  • Mascherato: Nasconde la maggior parte dell'input e ricostruisce le parti mancanti. Gli autoencoder mascherati (MAE) nascondono il 75% delle patch di un'immagine e l'encoder addestrato in questo modo diventa un potente backbone per altre attività di visione. Il Segment Anything Model (SAM) di Meta, incluso nel pacchetto Ultralytics, basa il proprio encoder di immagini su un Vision Transformer preaddestrato con MAE; SAM 2 usa invece un encoder Hiera preaddestrato con MAE. Le caratteristiche alla base di ogni maschera generabile tramite prompt vengono quindi apprese inizialmente completando patch nascoste.

Rilevamento delle anomalie tramite errore di ricostruzione#

Un autoencoder addestrato solo su dati normali ricostruisce bene gli input normali e male quelli non familiari, perciò l'errore di ricostruzione funziona come punteggio di anomalia per i difetti di fabbricazione, le transazioni fraudolente o i macchinari guasti, senza bisogno di anomalie etichettate. Il frammento di codice PyTorch qui sotto addestra un piccolo autoencoder sulle cifre scritte a mano incluse in scikit-learn, escludendo tutti i 7, e confronta l'errore sulle cifre tenute da parte con quello sui 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}")

Stampa un errore di ricostruzione pari a 0.0163 per le cifre tenute da parte e a 0.0547 per i 7, in media 3,4 volte superiore; una soglia applicata all'errore di ogni immagine trasforma questa differenza in un indicatore di anomalia. Un autoencoder può anche generalizzare troppo bene e ricostruire con precisione alcune anomalie, quindi i sistemi pratici regolano la dimensione del collo di bottiglia e la soglia sui dati di validazione che includono anomalie note.

  • Reti generative avversarie (GANs): Un generatore GAN converte rumore casuale in dati e apprende da un discriminatore, senza encoder né obiettivo di ricostruzione. Anche i VAE generano dati e il loro obiettivo basato sulla verosimiglianza rende l'addestramento più stabile, ma tende a produrre immagini più sfocate.
  • U-Net: Condivide la struttura encoder-decoder, ma mappa l'input su un target diverso, come una maschera di segmentazione, e porta le connessioni skip oltre il collo di bottiglia, che in un autoencoder permetterebbero alla rete di copiare l'input.
  • Apprendimento contrastivo: Apprende rappresentazioni confrontando tra loro i campioni, così le sue caratteristiche colgono ciò che distingue le immagini e ignorano i dettagli a livello di pixel che una funzione di perdita di ricostruzione deve conservare.
  • Embedding: Il codice prodotto da un encoder è un tipo di embedding e gli autoencoder sono uno dei diversi metodi per apprenderli.

Autoencoder nella generazione di immagini#

I modelli di diffusione latente, come Stable Diffusion, eseguono il processo di diffusione all'interno dello spazio latente di un autoencoder e alla fine decodificano il risultato riconvertendolo in pixel. Stable Diffusion 1.x utilizza un autoencoder regolarizzato con KL che comprime un'immagine RGB di 512×512 in una rappresentazione latente di 64×64×4, con 48 volte meno valori da elaborare per il modello di diffusione a ogni passaggio di denoising.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning