Wiele nienadzorowanych algorytmów głębokiego uczenia opiera się na idei autokodera. Autoenkoder Autoencoder to model zawierający dwie części: koder, który odwzorowuje od x do reprezentacji ˆz oraz dekoder, który odwzorowuje reprezentację ˆz na obserwowane dane x. Ogólnie koder jest tylko sparametryzowaną funkcją f, a dekoder jest tylko sparametryzowaną funkcją g. Model jest szkolony tak, że x g( f (x)), tak że proces kodowania jest z grubsza odwracany przez proces dekodowania. Funkcje f i g mogą być prostymi modelami liniowymi sparametryzowanymi pojedynczą macierzą lub mogą być reprezentowane przez głęboką sieć neuronową. Bardzo prostym autoenkoderem jest autoenkoder liniowy, w którym zarówno f, jak i g są liniowe ze wspólną macierzą wag W:
Jednym ze sposobów uczenia tego modelu jest zminimalizowanie kwadratu błędu Σj ||xj-g( f(xj))||2 tak, aby x ≈ g(f(x)). Pomysł polega na wytrenowaniu W tak, aby niskowymiarowy .
Jednym ze sposobów uczenia tego modelu jest zminimalizowanie kwadratu błędu Σj ||xj-g( f(xj))||2 tak, aby x ≈ g(f(x)). Pomysł polega na wytrenowaniu W tak, aby niskowymiarowy ˆz zachował jak najwięcej informacji, aby zrekonstruować wysokowymiarowe dane x. Ten liniowy autoenkoder okazuje się być ściśle powiązany z klasyczną analizą głównych składowych (PCA). Gdy z jest m-wymiarowe, macierz W powinna nauczyć się obejmować m głównych składowych danych — innymi słowy zbiór m ortogonalnych kierunków, w których dane mają największą wariancję, lub równoważnie meiwektory macierzy kowariancji danych które mają największe wartości własne — dokładnie tak, jak w PCA. Model PCA jest prostym modelem generatywnym, który odpowiada prostemu autoenkoderowi liniowemu. Korespondencja sugeruje, że może istnieć sposób na uchwycenie bardziej złożonych rodzajów modeli generatywnych przy użyciu bardziej złożonych rodzajów autokoderów. Autoenkoder wariacyjny (VAE) zapewnia jeden ze sposobów, aby to zrobić.
Metody wariacyjne zostały pokrótce przedstawione na stronie 476 jako sposób przybliżenia rozkładu a posteriori w złożonych modelach prawdopodobieństwa, w których sumowanie lub całkowanie dużej liczby ukrytych zmiennych jest niewykonalne. Pomysł polega na użyciu wariacyjnego a posteriori Variational a posteriori Q(z), zaczerpniętego z rodziny rozkładów, które można obliczyć, jako przybliżenia do prawdziwego a posteriori. Na przykład możemy wybrać Q z rodziny rozkładów Gaussa z ukośną macierzą kowariancji. W ramach wybranej rodziny rozkładów podlegających procedurze, Q jest zoptymalizowane tak, aby było jak najbardziej zbliżone do rzeczywistego rozkładu a posteriori P(z |x). Dla naszych celów pojęcie „jak najbliżej” definiuje dywergencja KL, o którym wspomnieliśmy na stronie . Jest to podane przez
co jest średnią (w odniesieniu do Q) stosunku logarytmicznego między Q i P. Łatwo zauważyć, że DKL(Q(z)||P(z | x)) ≥ 0, z równością, gdy Q i P pokrywają się. Następnie możemy zdefiniować wariacyjną dolną granicę L (czasami nazywaną dolną granicą dowodów lub ELBO) na logarytmicznym prawdopodobieństwie danych:
Widzimy, że L jest dolną granicą dla logP, ponieważ rozbieżność KL jest nieujemna. Uczenie wariacyjne maksymalizuje L w odniesieniu do parametrów w, a nie maksymalizuje logP(x), w nadziei, że znalezione rozwiązanie, w , jest również bliskie maksymalizacji logP(x). Jak napisano, L nie wydaje się jeszcze łatwiejsze do maksymalizacji niż logP. Na szczęście możemy przepisać równanie , aby ujawnić lepszą obsługę obliczeniową:
gdzie H(Q) jest entropią rozkładu Q. W przypadku niektórych rodzin wariacyjnych Q (takich jak rozkłady Gaussa), H(Q) można ocenić analitycznie. Co więcej, oczekiwanie, Ez ̴Q logP(z,x), dopuszcza wydajne bezstronne oszacowanie za pomocą próbek z z Q. Dla każdej próbki P(z,;x) można zwykle ocenić wydajnie -na przykład, jeśli P jest Sieć Bayesa, P(z,x) jest po prostu iloczynem prawdopodobieństw warunkowych, ponieważ z i x zawierają wszystkie zmienne. Autokodery wariacyjne zapewniają środki do wykonywania uczenia wariacyjnego w środowisku uczenia głębokiego. Uczenie wariacyjne obejmuje maksymalizację L w odniesieniu do parametrów zarówno P, jak i Q. W przypadku autokodera wariacyjnego, dekoder g(z) jest interpretowany jako definiujący logP(x|z). Na przykład dane wyjściowe dekodera mogą określać średnią warunkowego gaussowskiego. Podobnie, wyjście kodera f (x) jest interpretowane jako definiujące parametry Q – na przykład Q może być gaussowskim ze średnią f (x). Uczenie autokodera wariacyjnego polega następnie na maksymalizacji L w odniesieniu do parametrów zarówno kodera f, jak i dekodera g, które same mogą być dowolnie skomplikowanymi głębokimi sieciami.