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