Autoencoder

Wprowadzenie

Autoencoder (autoenkoder) to rodzaj sieci neuronowej uczonej w sposób nienadzorowany (unsupervised), której zadaniem jest nauczenie się efektywnej, skompresowanej reprezentacji danych wejściowych, a następnie odtworzenie ich z jak największą dokładnością.

Architektura Autoencodera

Składa się z dwóch głównych części:

  • Encoder (Kodownik) – kompresuje dane wejściowe do mniejszej, latentnej przestrzeni (bottleneck)
  • Decoder (Dekoder) – odtwarza dane z kompresowanej reprezentacji

Główne typy Autoencoderów

  • Vanilla Autoencoder – podstawowa wersja
  • Denoising Autoencoder – uczy się usuwać szum z danych
  • Sparse Autoencoder – wymusza rzadką aktywację neuronów
  • Variational Autoencoder (VAE) – generatywny model probabilistyczny (bardzo popularny)
  • Convolutional Autoencoder (CAE) – do obrazów
  • Transformer Autoencoder – używany w modelach językowych i multimodowych

Zastosowania

  • Redukcja wymiarowości danych (lepsza alternatywa dla PCA)
  • Usuwanie szumu (denoising)
  • Generowanie nowych danych (zwłaszcza VAE)
  • Wykrywanie anomalii (anomaly detection)
  • Kompresja obrazów i wideo
  • Pre-trening w modelach self-supervised learning
  • Feature extraction do dalszych zadań nadzorowanych

Zalety i wady

  • Zalety: uczenie nienadzorowane, dobra kompresja, przydatny w generatywnym AI
  • Wady: może nauczyć się trywialnej kopii (identity function), trudność w interpretacji latent space, VAE może cierpieć na posterior collapse

Powiązane pojęcia

Encoder • Decoder • Latent Space • Variational Autoencoder (VAE) • Dimensionality Reduction • Anomaly Detection • Self-Supervised Learning • Generative AI