Jakie są rodzaje autoenkoderów? W poprzednim wpisie przedstawiliśmy ogólne informacje na ich temat, a teraz skupimy się na szczegółowym opisie różnych typów tych sieci neuronowych. Ich zadaniem jest nauka kodowania danych wejściowych do reprezentacji o niższej wymiarowości, a następnie rekonstrukcja tych danych na wyjściu.
Zapraszamy do lektury!
Różne rodzaje autoenkoderów
Autoenkodery stanowią istotną klasę sieci neuronowych, które znajdują szerokie zastosowanie w analizie i przetwarzaniu danych. Ich podstawową funkcją jest kodowanie danych wejściowych do reprezentacji o niższej wymiarowości, a następnie ich rekonstrukcja.
Różnice w architekturze poszczególnych modeli wynikają z ich specyficznych zastosowań, takich jak detekcja obrazów, rozpoznawanie obiektów, przetwarzanie dźwięku czy identyfikacja anomalii w systemach finansowych. Przed przystąpieniem do tworzenia schematu należy określić cel, który ma zostać osiągnięty poprzez implementację modelu uczenia maszynowego (ang. machine learning model).
Różnice pomiędzy architekturami poszczególnych modeli dotyczą najczęściej:
- Liczba i głębokość warstw sieci neuronowej – głębsze sieci neuronowe, z większą liczbą warstw, mają zdolność do uchwycenia bardziej złożonych wzorców w danych, co jest szczególnie przydatne w zadaniach wymagających analizy skomplikowanych danych, takich jak obrazy czy dźwięki.
- Rodzaj funkcji strat – wybór funkcji kosztu, jak np. błąd średniokwadratowy (MSE) czy rozbieżność Kullbacka-Leiblera, decyduje o tym, w jaki sposób model uczy się na danych i jak dokładnie rekonstruuje dane wejściowe.
- Optymalizatory – Stosowane algorytmy optymalizacji, takie jak RMSprop czy SGD, wpływają na szybkość i stabilność procesu trenowania modelu. Optymalizator ma instotne znaczenie dla efektywności modelu i czasu jego uczenia.
- Funkcje aktywacji – wpływają na nieliniowe przekształcenia danych, pozwalają na modelowanie skomplikowanych zależności w danych, umożliwiając lepsze odwzorowanie rzeczywistych zależności między zmiennymi.
- Technologia implementacji – dobór odpowiednich frameworków, takich jak TensorFlow, Keras, czy PyTorch, a także języka programowania (najczęściej Python), determinuje efektywność wdrożenia modelu..
Naucz się budować głębokie sieci neuronowe z TensorFlow!
Autoenkodery wariacyjne (ang. Variational Autoencoders, VAE)
Autoenkodery wariacyjne stanowią szczególny rodzaj autoenkoderów, który wyróżnia się probabilistycznym charakterem i potencjałem generatywnym. Są to modele, które umieją tworzyć nowe dane przypominające te w zbiorze uczącym.
Pod względem architektury są one zbliżone do standardowych sieci, jednak ich działanie opiera się na innym sposobie kodowania i dekodowania informacji. Dzięki temu VAE mogą nie tylko kompresować dane, ale również generować nowe próbki na podstawie charakterystycznych cech istniejących zbiorów danych.
Najważniejsze cechy autoenkoderów wariacyjnych
Podstawowa różnica między VAE a klasycznymi autoenkoderami wynika z faktu, że autoenkodery wariacyjne stosują probabilistyczne podejście do kodowania danych. Zamiast przypisywać pojedynczy punkt w przestrzeni latentnej do danego wejścia, VAE modelują całe rozkłady prawdopodobieństwa. Najważniejsze elementy tego podejścia obejmują:
- Probabilistyczne kodowanie – każda wejściowa próbka jest reprezentowana przez średnią i wariancję w przestrzeni latentnej, co pozwala na generowanie nowych wariantów danych.
- Losowe próbkowanie – dzięki zastosowaniu losowości VAE są w stanie tworzyć nowe obiekty na podstawie rozkładów danych uczących.
- Funkcja strat oparta na rozkładzie prawdopodobieństwa – w procesie uczenia stosuje się specjalne funkcje strat, takie jak rozbieżność Kullbacka-Leiblera, która kontroluje strukturę przestrzeni latentnej.
Jak działa VAE?
Architektura wariacyjnych autoenkoderów opiera się na parze sieci koder-dekoder, jednak jej unikalną cechą jest sposób próbkowania oraz przetwarzania danych. Model operuje na wartościach logarytmowanych, co pozwala lepiej odwzorować relacje między wejściem a wyjściem sieci neuronowej. Wprowadzony obraz jest przekształcany na dwa odrębne wektory: pierwszy, reprezentujący średnią wartość rozkładu, oraz drugi, przechowujący zlogarytmowane wariancje dla każdego punktu. Dzięki temu VAE może generować bardziej realistyczne i ciągłe reprezentacje danych.
Każda próbka danych wejściowych zostaje zakodowana w dwóch wektorach:
- Wektor średnich (μ) – określający centralną wartość rozkładu normalnego dla danej próbki.
- Wektor wariancji (σ) – definiujący zakres możliwych wartości, jakie może przyjąć zakodowana reprezentacja.
Zakodowana reprezentacja jest następnie próbkowana według wzoru:
z = µ + σε
gdzie:
z – punkt z rozkładu normalnego,
ε – punkt próbkowany z rozkładu normalnego,
σ – odchylenie standardowe,
µ – srednia.
Dzięki temu procesowi VAE generują nowe dane zamiast jedynie rekonstruować oryginalne wejścia.
Zastosowania autoenkoderów wariacyjnych
Autoenkodery wariacyjne są szeroko wykorzystywane w różnych dziedzinach, w tym:
- Generowanie nowych obrazów – modele VAE są zdolne do tworzenia realistycznych obrazów bazujących na wcześniej nauczonych cechach.
- Transfer stylu – VAE mogą być używane do przekształcania jednych obrazów w inne poprzez ekstrakcję kluczowych cech i ich zastosowanie na nowym zbiorze danych.
- Detekcja anomalii – probabilistyczna natura VAE pozwala na wykrywanie nieoczekiwanych wzorców w danych, co znajduje zastosowanie np. w wykrywaniu oszustw finansowych.
- Generowanie treści audio i wideo – technologia ta pozwala na modyfikację i tworzenie nowych próbek dźwiękowych oraz klipów wideo, np. w syntezie głosu czy deepfake’ach.
Autoenkodey odszumiające (ang. denoising autoencoders, DAE)
Autoenkodery odszumiające to rodzaj sieci neuronowej, której możemy użyć do nauki reprezentacji (kodowania) danych w sposób nienadzorowany. Są one trenowane w celu rekonstrukcji czystej wersji sygnału wejściowego uszkodzonego przez szum.
Schemat działania autoenkodera odszumiającego ilustruje rysunek poniżej.

Żródło: https://lilianweng.github.io/posts/2018-08-12-vae/
Zastosowanie autoenkoderów odszumiających
Autoenkodery odszumiające (DAE) są szczególnie popularne w obróbce obrazów, wideo i dźwięku. Są przydatne w przypadku zadań takich jak odszumianie obrazu lub wykrywanie oszustw, gdzie celem jest odzyskanie oryginalnego sygnału z zaszumionej wersji.
Ważne! Model odwzorowujący dane wejściowe na wyjściowe w proporcji 1:1 (czyli X_wejściowe = X_wyjściowe) nie jest efektywny, ponieważ nie potrafi odrzucić wartości uznanych za szum. Aby rozwiązać ten problem, do danych wprowadza się szum generowany stochastycznie. Szum można dodać na dwa sposoby: przez wprowadzenie nowych danych w postaci szumu lub przez losowe zastąpienie niektórych danych szumem. Celem jest, aby model nauczył się rekonstruować pierwotne dane, eliminując szum.
Autoenkodery rzadkie (ang. sparse autoencoders, SAE)
Autoenkodery rzadkie (Sparse Autoencoder, SAE) to model sieci neuronowej, który ogranicza liczbę aktywnych neuronów. Nazywane także rozproszonymi, dbają o to, aby podczas procesu uczenia modelu nie przekroczyć zadanego procentu jednorazowo aktywnych neuronów w sieci. Jeden ukryty neuron powinien być nieaktywny przez większość czasu. Innymi słowy nakładają one ograniczenie w funkcji aktywacji warstw ukrytych, aby uniknąć nadmiernego dopasowania i poprawić odporność modelu.
Dlaczego to jest robione? Wymuszając, aby w warstwie ukrytej występowało np. tylko 5% aktywnych neuronów, powodujemy, że warstwy kodujące uczą się wykrywać tylko najprzydatniejsze cechy. Można to porównać do sytuacji, w której przez miesiąc moglibyśmy wypowiedzieć tylko 7 słów – te słowa musiałyby być bardzo ważne i przemyślane. Dzięki temu model skupia się na najbardziej istotnych informacjach.
Strata rzadkości (sparsity loss) i funkcja kosztu
Wartość procentu aktywnych neuronów nie może być ani zbyt mała (w przeciwnym razie model nie będzie w stanie prawidłowo odtworzyć danych), ani zbyt duża (wówczas model będzie generował zbyt wiele cech redundantnych). Odpowiednia wartość tego procentu jest monitorowana przez parametr straty rzadkości (ang. sparsity loss), nazywany karą, który kontroluje aktywność neuronów w sieci.
To, czy dodać tę stratę, mierzy się za pomocą dywergencji Kullbacka-Leiblera (KL). Za pomocą hiperparametru β kontroluje się siłę kary, którą chcemy nałożyć na utratę rzadkości. Jeśli kara będzie zbyt duża, model może zbliżyć się do wartości skrajnie rzadkich, ale równocześnie nie będzie w stanie prawidłowo rekonstruować danych wejściowych, przez co stanie się bezużyteczny.
Rzadkie autoenkodery, kontrolując aktywność neuronów w taki sposób, zmuszają model do bardziej zwięzłego przedstawiania danych, co poprawia zarówno efektywność, jak i odporność na szum.
Podsumowanie
Autoenkodery to wszechstronne narzędzie w uczeniu maszynowym, które umożliwia kompresję i rekonstrukcję danych. Każdy typ autoenkodera ma swoje unikalne właściwości, które sprawiają, że są one użyteczne w rozwiązywaniu różnorodnych problemów – od generowania nowych obrazów, przez oczyszczanie danych, po wykrywanie anomalii.
W kręgu moich zainteresowań są finanse oraz psychologia zachowań konsumenckich. Jestem fanką ekologicznych rozwiązań, które są w stanie zmienić świat na lepsze. W wolnym czasie czytam i ćwiczę jogę.