Autoencoder

[autoencòder]

Rete che impara a comprimere dati e ricostruirli. Utile per riduzione dimensionalità, denoising, e come base per modelli generativi.

Un autoencoder è una rete neurale fatta di due pezzi: un encoder che comprime l'input in una rappresentazione piccola (lo spazio latente) e un decoder che ricostruisce l'input da quella rappresentazione.

Si addestra in modo non supervisionato: niente etichette, l'obiettivo è ricostruire l'input dato. La rete è forzata a comprimere informazioni rilevanti nel latente perché altrimenti non riesce a ricostruire.

Usi tipici:

  • Riduzione dimensionalità: come PCA ma non-lineare. 1000 feature compresse in 50 utili.
  • Denoising: addestri con input rumoroso, target pulito. Impara a togliere il rumore.
  • Anomaly detection: se la ricostruzione è pessima su un dato, è un'anomalia.
  • Pre-training: rappresentazioni utili da riusare in altri compiti.

Tipi:

  • Vanilla autoencoder: encoder + decoder, niente di esotico.
  • Sparse autoencoder: il latente deve essere sparso (pochi neuroni attivi). Buono per interpretabilità.
  • Denoising autoencoder: input rumoroso, target pulito.
  • VAE: variazionale, latente probabilistico, generativo.
  • Masked autoencoder: nasconde parti dell'input, le ricostruisce. BERT è praticamente un masked autoencoder per testo.

Notare: il decoder degli autoencoder è la base del decoder dei diffusion model e di tanta IA generativa. Concetto vecchio (anni '80), ancora utilissimo.