Podręcznik
3. Sieci neuronowe głębokie
3.9. Autoenkoder wariacyjny
6.9.1 Podstawy działania
Autoencoder wariacyjny (ang. variational autoencoder - VAR) jest innym rozwiązaniem sieci głębokiej umożliwiającym generację obrazów podobnych do oryginału [33,76,77]. Będzie dalej oznaczany skrótem VAR. Sieć taka działa na innych zasadach niż przedstawiona wcześniej sieć klasycznego autoenkodera (AE). Nazwa sieci wywodzi się z bliskiej relacji mechanizmu działania z zasadą regularyzacji sieci i wnioskowania wariacyjnego w statystyce.
Sieć VAR wykorzystuje w swoim działaniu zasadę redukcji wymiarowości danych, tak przeprowadzoną, że możliwe jest odtworzenie danych oryginalnych z określoną dokładnością przy zachowaniu w miarę wiernego odwzorowania rozkładu statystycznego (wartości średniej i wariancji) w poszczególnych rejonach obrazu. Redukcja wymiarowości danych oznacza reprezentację danych poprzez zmniejszoną liczbę cech (deskryptorów) charakteryzujących dostatecznie dokładnie analizowany proces. Redukcja taka może polegać na wyborze ograniczonej liczby zmiennych oryginalnych (bez zmiany ich wartości), bądź na generacji nowego zbioru deskryptorów jako funkcji liniowej (np. PCA) bądź nieliniowej wszystkich zmiennych oryginalnych (AE).
Klasycznym rozwiązaniem tego typu jest autoencoder, poznany wcześniej. Idea uczenia autoenkodera polegała na takim doborze parametrów (wag sieci głębokiej), aby obraz wyjściowy po rekonstrukcji sygnałów skompresowanych przypominał jak najbardziej obraz oryginalny. W procesie uczenia klasycznego autoencodera porównywane były wartości sygnałów bądź piksele obrazów oryginalnego i zrekonstruowanego. Redukcja wymiarowości w takim rozwiązaniu autoencodera może być zinterpretowana jako kompresja danych, w której encoder kompresuje dane z przestrzeni oryginalnej do przestrzeni zredukowanej traktowanej zwykle jako przestrzeń ukryta (ang. latent space), natomiast decoder dokonuje dekompresji czyli rekonstrukcji danych oryginalnych.
Oczywiście, odtworzenie danych oryginalnych poprzez dekompresję charakteryzuje się pewną utratą informacji oryginalnej. Wielkość tej straty uzależniona jest od wymiaru przestrzeni skompresowanej jak również od mechanizmu uczenia sieci. Ilustracja tego typu procesu przetwarzania danych przedstawiona jest na rys. 6.29. Wektor oryginalny kodowany jest w wektor
o zmniejszonym wymiarze, po czym dekodowany w postaci
. Istotą klasycznego algorytmu uczenia sieci autoencodera jest taki dobór parametrów sieci, aby utrata informacji oryginalnej, czyli różnica między
a
była jak najmniejsza. Minimalizacji podlega funkcja błędu
![]() |
(6.29) |
Zwykle w definicji dodaje się jeszcze czynniki regularyzacyjne, jak to było przedstawione w rozdziale dotyczącym klasycznego autoencodera. Klasyczny autoenkoder ma pewną wadę, wynikającą z nieciągłości danych (na przykład puste przestrzenie między klastrami). Na etapie testowania przy użyciu danych nie uczestniczących w uczeniu dekoder układu wygeneruje nierealistyczny wynik (nieprzystający do danych oryginalnych), gdyż na etapie uczenia nie „widział” danych encodera z obszaru pustego [33].

-
x
e(x)
d(e(x))
Dobrze wytrenowany autoecoder pozwala zwykle odtworzyć dane weryfikacyjne (testujące) pochodzące ze zbioru różnego od zbioru uczącego tylko z określoną dokładnością. Dochodzi przy tym drugi problem: przy niewłaściwym doborze wymiaru przestrzeni zredukowanej (zbyt duży wymiar warstwy ukrytej) może wystąpić efekt utraty zdolności generalizacyjnych (przeuczenie sieci) i odtwarzanie danych oryginalnych ze zbyt dużym błędem.
Remedium na to jest właściwa automatyczna regularyzacja sieci w procesie uczenia. Stąd powstała idea autoencodera wariacyjnego jako rozwiązania w którym proces uczenia podlega automatycznej regularyzacji w specjalny sposób zabezpieczający przed przeuczeniem i zapewniający najlepszą reprezentację danych w przestrzeni ukrytej, umożliwiającą właściwe odtworzenie (generację) procesu oryginalnego. Encoder wariacyjny stosuje kodowanie w warstwie ukrytej nie oryginalnych danych wejściowych, ale dwu wektorów: wektora wartości średnich oraz wektora odchyleń standardowych
W efekcie proces uczenia składa się z następujących etapów [33]:
-
Dane wejściowe są kodowane w przestrzeni ukrytej (zredukowanej) na podstawie rozkładu statystycznego danych (ich dystrybucji). Przyjmując rozkład normalny wystarczy scharakteryzować proces poprzez wartość średnią (oczekiwaną) i macierz kowariancji (zwykle wariancji
).
-
Punkty z przestrzeni ukrytej (wejście dla dekodera) są próbkowane na podstawie tej dystrybucji.
-
Na podstawie tych próbek dekoder dokonuje rekonstrukcji danych w postaci wektora
i oblicza błąd rekonstrukcji.
-
Błąd rekonstrukcji jest kierowany z powrotem do wejścia sieci (propagacja wsteczna) i na tej podstawie metodą gradientową dokonywana jest adaptacja parametrów sieci.
Przykładową generację danych poprzez próbkowanie przy znanym rozkładzie określonym poprzez wektor wartości średnich oraz wektor standardowych odchyleń \boldsymbol{\mathbf{\sigma} } dla dekodera przedstawiono poniżej.
[0.13 1.35 0.27 0.78 ...] |
|
[0.21 0.53 0.88 1.38 ...] |
|
Rozkład statystyczny próbek |
X1~N(0.13, 0.21), X2~N(1.35, 0.53), X3~N(0.27, 0.88), X4~N(0.78, 1.38),... |
Wektor po próbkowaniu |
[0.29 1.82 0.87 2.03 ...] |
Zauważmy, że generacja stochastyczna próbek według określonego rozkładu generuje różne wartości nawet przy tych samych wartościach średnich i wariancji. Wektor wartości średnich wskazuje centrum wokół którego z odchyleniem standardowym generowane są próbki. W efekcie decoder uczy się nie pojedynczych (ściśle zdefiniowanych) próbek, ale otoczenia, z którego są one próbkowane. Różnice między klasycznym i wariacyjnym rozwiązaniem autoencodera pokazane są na rys. 28.
Autoencoder |
||||
Autoencoder wariacyjny |
dystrybucja |
Próbkowanie |
Rys. 6.28 Ilustracja różnicy między klasycznym i wariacyjnym autoencoderem
Takie rozwiązanie (przy założeniu rozkładu danych jako normalnego) sprowadza się w uczeniu VAR również do reprezentacji danych poprzez wartości średnie i macierz kowariancji, zamiast jedynie reprezentacji poszczególnych danych (pikseli obrazu). Takie rozwiązanie umożliwia regularyzację sieci w prosty sposób: zmusza encoder do zapewnienia normalności rozkładu danych w przestrzeni ukrytej. Proces realizowany przez VAR ten można więc przedstawić jak na rys. 30.



Funkcja celu podlegająca minimalizacji zawiera 2 składniki: składnik rekonstrukcyjny (dopasowanie warstwy wyjściowej do wejściowej) oraz składnik regularyzacyjny, związany z warstwą ukrytą, który dąży do zapewnienia normalności rozkładu danych w warstwie ukrytej. Składnik regularyzacyjny wyrażany jest przy użyciu dywergencji Kulbacka-Leiblera KL() między aktualnie zwracanym rozkładem danych ukrytych a pożądanym rozkładem normalnym. Minimalizowaną funkcję celu można więc zapisać w postaci
![]() |
(6.30) |
Aby zapewnić prawidłowy przebieg procesu uczenia należy zapewnić regularyzację zarówno wartości średniej jak i macierzy kowariancji, sprowadzając proces do normalnego o zerowej wartości średniej i jednostkowej macierzy kowariancji. Minimalizacja wartości czynnika regularyzacyjnego odbywa się kosztem składnika rekonstrukcyjnego (składnik pierwszy we wzorze (6.30)). Właściwy balans między składnikami wzoru można uzyskać przez wprowadzenie odpowiedniej wagi w tym zbiorze.
6.9.2. Proces uczenia sieci VAR
Niech oznacza zbiór danych rekonstruowanych, generowany na podstawie ukrytych próbek z warstwy ukrytej
. W związku z tym wyróżnia się 2 kroki stanowiące metodę probabilistyczną uczenia
-
Próbkowanie zmiennych
na podstawie rozkładu warunkowego
: znajdź rozkład zmiennej dekodowanej
przy założeniu znajomości rozkładu zmiennej zakodowanej
.
Procesy kodowania (operator ) i dekodowania (operator
) powiązane są wzorem Bayesa
![]() |
(6.31) |
Przyjmuje się, że ma standardowy rozkład Gaussa
, o wartości średniej zerowej i jednostkowej macierzy kowariancji
. Z kolei
jest rozkładem gaussowskim, którego wartość średnia jest funkcją deterministyczną
zmiennej
a macierz kowariancji o postaci jednostkowej pomnożonej przez dodatnią stałą wartość
, co zapisuje się w postaci
. Zarówno
jak i postać funkcji nie są z góry zadane i podlegają estymacji w procesie uczenia. Mianownik w wyrażeniu Bayesa wymaga zastosowania wnioskowania wariacyjnego, techniki stosowanej w złożonych rozkładach statystycznych.
W tym podejściu stosuje się sparametryzowane rodziny rozkładów (zwykle gaussowskich o różnej wartości średniej i macierzy kowariancji). Spośród nich wybiera się tę rodzinę, która minimalizuje błąd aproksymacji na danych pomiarowych (zwykle dywergencję Kulbacka-Leiblera między aproksymacją i wartościami zadanymi). Funkcja jest w podejściu wariacyjnym aproksymowana poprzez rozkład gaussowski
![]() |
(6.32) |
w którym wartość średnia jest aproksymowana przez a kowariancja przez
. Obie funkcje podlegają procesowi minimalizacji z użyciem miary Kulbacka-Leiblera
![]() |
(6.33) |
Proces ten sprowadza się do rozwiązania problemu optymalizacyjnego o postaci [33]
![]() |
(6.34) |
Składnik pierwszy w tym wzorze odpowiada za dopasowanie sygnałów wyjściowych sieci do wartości zadanych , natomiast składnik drugi za rozkład statystyczny danych wejściowych i sygnałów w warstwie ukrytej, stanowiąc naturalny składnik regularyzacyjny procesu. Istotnym parametrem jest
. Wartość tej zmiennej pozwala regulować relację między składnikiem pierwszym i drugim. Duża wartość
oznacza większy wpływ czynnika KL, czyli dopasowania statystycznego obu rozkładów, natomiast mała wartość – większy wpływ dopasowania pikselowego zrekonstruowanego obrazu do oryginalnego.
Funkcje ,
i
użyte w modelu matematycznym podlegają w praktyce modelowaniu aproksymacyjnemu przy użyciu sieci neuronowych. Obie funkcje
i
wykorzystują wspólny fragment architektury sieci, co można zapisać w postaci
![]() |
(6.35) |
![]() |
(6.36) |
Przyjmuje się w praktyce założenie upraszczające, że jest wektorem złożonym z elementów diagonalnych macierzy kowariancji i jest jednakowych rozmiarów jak
. Przy rozkładzie gaussowskim zmiennej
o wartości średniej
i wariancji
przyjmuje się, że
![]() |
(6.37) |
gdzie jest zmienną losową o rozkładzie normalnym
. Rys. 6.31 przedstawia ogólną strukturę układową encodera implementującą funkcje
oraz
, przy czym wektor
reprezentuje wartości średnie a
kowariancje (wartości diagonalne macierzy kowariancji). Rekonstrukcja sygnałów wyjściowych (decoder) realizująca rozkład
generowany przez encoder zakłada stałą kowariancję i jest implementowana przez strukturę neuronową implementującą funkcję
o postaci na przykład z rys. 6.31 i 6.32.

W efekcie proces uczenia sieci z rys. 6.31 sprowadza się do minimalizacji funkcji celu o postaci
![]() |
(6.38) |
Czynnik pierwszy odpowiada za odtworzenie sygnałów wejściowych na wyjściu sieci, natomiast drugi za odwzorowanie rozkładu statystycznego sygnałów wejściowych w sygnałach wyjściowych. Obie struktury (encoder i decoder) są implementowane w postaci głębokiej sieci neuronowej, podlegającej uczeniu typowemu dla sieci głębokich. Przykład takiej sieci pokazany jest na rys. 6.32.
