GANs: dwa sieci zablokowane w przeciwnym grze
Sieć Generatywna Adversarialna składa się z dwóch sieci neuronowych o przeciwległych celach, trenowanych jednocześnie. Generatory przyjmują wektor szumu losowego jako wejście i przekształcają go, poprzez stos nauczonego warstw podnoszenia rozmiaru, w pełny obraz w jednym przejściu w przód. Dyskryminator jest osobną siecią klasifikatora, która analizuje obraz — czasami rzeczywisty z zestawu treningowego, czasami taki, który wygenerowała generator — i próbuje przewidzieć, czy to jest prawdziwy czy fikcyjny. Trenowanie alternuje: dyskryminator jest aktualizowany, aby lepiej rozpoznawać rzeczywiste od fałszywych, a generatory są aktualizowane, aby tworzyć obrazy, które oszukują aktuellne oceny dyskryminatora. Ponieważ obie sieci ulepszają się razem, generator śledzi cel, który się porusza całe czasu, co sprawia, że trening GANów jest znane jako szczególnie niestabilny — jeśli dyskryminator stanie się zbyt dobry za szybko, sygnał gradientowy do generatory może zredukować się prawie do niczego użytecznego (może już osiągnąć doskonałe rozróżnienie między wszystkimi fałszywymi, więc nie ma żadnej wskazanej kierunku, w jakim można by napędzać generator), a jeśli zaszkodzi za szybko, generatory mogą wykorzystać określone słabe punkty i oszukują obrazy ograniczonego zestawu, który oszuka ten konkretny słaby punkt. To stanowisko nazywane jest kolapsem trybu, w którym zanika różnorodność, nawet gdy pojedyncze próby wydają się prawdziwe.
Strukturalne odnaglenie, aby przeżyć tę niestabilność, polega na szybkości: po treningu generowanie próbki z GANa to jedno przejście przez sieć generatora, trwające milisekundy, co sprawiło, że GANy stały się praktycznym wyborem w latach 2010–2018 dla wszystkiego wymagającego szybkiej i dużopłytnej generacji, w tym zastosowań w czasie rzeczywistym.
VAEs: skompresowanie do gładkiego przestrzeni ukrytej i odtworzenie
Autoenkoder wariacyjny składa się z sieci kodującej, która kompresuje obraz wejściowy do niskowymiarowej reprezentacji ukrytej, oraz sieci odtwarzacza, która powtarza obraz na podstawie tej reprezentacji. Sieci te są trenowane razem tak, aby odtworzenie było jak najbardziej zbliżone do oryginalnego wejścia. Kluczowa strukturalna różnica między wariacyjnym a zwykłym autoenkoderym polega na tym, że zamiast kodować obraz do pojedynczego punktu w przestrzeni ukrytej, sieć kodująca wydaje parametry (średnia i wariancja) rozkładu prawdopodobieństwa. Punkt jest następnie losowany z tego rozkładu przed przekazaniem do odtwarzacza — a stratyka treningowa jasno kary to, gdy te rozkłady odchylają się za bardzo od standardowego rozkładu normalnego, używając terminu zwrotności KL.
Tym regularizującym wyrazem jest to, co sprawia, że VAE są really użyteczne do generowania, a nie tylko kompresji: zmusza przestrzeń ukrytą do być gładką i ciągłą, bez dziur czy izolowanych klastrow, tak aby dowolny punkt losowany z prostego standardowego rozkładu normalnego podczas generacji — nie tylko punkty odpowiadające prawdziwym obrazom treningowym — odtwarza się w coś, co wygląda na prawdopodobny obraz, ponieważ punkty bliskie w tej przestrzeni były trenowane do odtwarzania podobnych wizualnie wyników. Przeciwnie, regularizacja KL, równoważona z wyrazem jakości odtworzenia, tenduje do tworzenia wyników, które są znacznie mniej ostre i mniej jasne niż próbki GAN lub rozpraszania, ponieważ model jest jasno motywowany do zagwarantowania szerokiego spektrum możliwych odtworzeń zamiast narażać się na jedno wyraźne rozwiązanie o wysokich szczegółach, co uciążliwie przesuwa tekstury i krawędzie w średnim przypadku.
Modely rozpraszające: zdezynwazywanie od statyczności do struktury
Model rozpraszający jest szkoleniowany na całkiem inny pomysł: wejście to prawdziwe obraz, który stopniowo zniszcza się dodając małą ilość szumu Gaussa w wielu krokach — zwykle setki lub tysiące — aż do momentu, gdy na końcu procesu obraz jest statystycznie nieodróżnialny od pustego szumu losowego. Ten proces rozpraszania szumu nie wymaga żadnego uczenia; to zawsze taka sama, znana procedura matematyczna. To, co nauczy się sieć, to przeciwna operacja: dany obraz z szumem w pewnym momencie t, prognozować albo dodany szum, albo lekko mniej szumowaty obraz dla momentu t-1. Po szkoleniu na milionach przykładów tego zadania prognozy szumu na każdym kroku procesu, generacja działa od pustego szumu losowego i powtarzanej wielokrotnie aplikacji treningowej sieci zdezynwazywującej, stopniowo usuwając coraz mniej szumu i odkrywając coraz bardziej koherentną strukturę, aż po wszystkich krokach cała jasna i wyraźna figura wyrasta z statyczności — widocznie, wygląda to jak obraz powoli rozwiązywany z telewizyjnego szumu, pod wpływem uczonej przez model prognozy o tym, co szum należy usunąć na każdym kroku.
Nieraz kosztem tego podejścia jest jasny z opisów: tworzenie jednego przykładu wymaga wielokrotnej kolejnej uruchamiania sieci (choć nowoczesne metody, takie jak DDIM, zmniejszyły potrzebne kroki do kilkudziesięciu, a techniki distillation jeszcze mniej), co sprawia, że modely rozpraszające są znacznie wolniejsze w generowaniu przykładów niż jednokrotna sieć GAN. Zaszczyt, który sprawił, że ta oferta była wartościowa, to stabilność szkoleniowa i jakość przykładów: nie ma tu gry antagonistycznej, która mogłaby zawirować proces, tylko dobrze zachowaną regresję nadzorowaną na każdym kroku (prognozowanie szumu), która konverguje znacznie bardziej wiernie niż trening antagonista i empirycznie tworzy wyraźniejsze, bardziej diversyjne, o wiele lepszej jakości obrazy niż GANs lub VAEs na porównywalnej skalę modelu, szczególnie w detaliach finansowych struktury i koherentnej globalnej strukturze, które sprawiły, że kryzys trybu GAN-a i mroczność VAE były tak widoczne w porównaniu.
Dlaczego modely difuzji zastąpiły inne dla obrazów, i co drugie i trzecie nadal robią lepiej
Modely difuzji stały się dominującym podejściem do generowania dużoskalowych obrazów na podstawie tekstu (od DALL-E 2, przez stabilne modely difuzji i podstawową metodologię Midjourney) głównie ze względu na istotność stabilności treningu na skalę: GAN, który się zacofuje po dwóch trzecich drogi w wielomilionowej operacji treningowej, stanowi katastroficzne i trudne do diagnostyki powodzenie, podczas gdy proste celowanie odnawiające modelu difuzji degraduje się grzecznie i przewidywalnie, co czyni go znacznie bezpieczniejszym wyborem w przypadku masywnych, drogich operacji treningowych, które produkują jak najbardziej najnowszy poziom jakości obrazów. Mechanizm warunkowania, który pozwala modelom difuzji przestrzegać polecenia tekstowego — wprowadzanie wstępnego oznaczenia tekstu do sieci odnawiającej na każdym kroku, tak aby każda decyzja odnawiająca była prowadzona przez opisane w poleceniu warunki — komponuje się naturalnie z iteratywnym procesem generacji wielokropek, co sprawia, że jest łatwiejsze kontrolować ją precyzyjnie niż kierować jednokropek generacją GANa.
To nie oznacza, że GAN i VAE stały się nieważne dla swoich własnych przypadków użycia. GAN nadal pozostają atrakcyjnym rozwiązaniem gdzie prędkość generacji w czasie rzeczywistym i jednokropek jest kluczowa, a niestabilność adversarialna może być zarządzana w mniejszym i zrozumiałym obszarze problemu (np. niektóre aplikacje transferu stylu i superrozpoznawania). VAE nadal pozostają wartościowymi rozwiązaniem z powodu gładkiego, interpretowalnego przestrzeni ukrytej — zdolność do interpolacji znaczącego między dwoma punktami w przestrzeni ukrytej, lub wykonywania arytmetyki na wektorach ukrytych, aby łączyć cechy, jest właściwą własnością, którą VAE dostarczają bezpośrednio bardziej niż modele difuzji. W rzeczywistości encodery typu VAE są używane jako część kompresji w modelach difuzji ukrytych modernych (Stable Diffusion wykonuje wolny proces difuzji na małej reprezentacji ukrytej zatwardzonych za pomocą VAE, a następnie dekoduje ją do pikseli na końcu), co jest dobrym przykładem, jak te trzy rodziny coraz częściej łączą się, a nie są traktowane jako wykluczające siebie opcje.
Często zadawane pytania
Dlaczego trening GANów jest niewykonalny, podczas gdy trening modeli rozsiania nie jest?
GANy trenują jednocześnie dwa sieci z przeciwstawnymi celami, więc postępy jednej mogą destabilizować lub zatrzymać drugą, co prowadzi do problemów takich jak wiadro modele. Modely rozsiania z kolei rozwiązują proste zadanie regresji nadzorowanej (prognozowanie szumu) bez kompetytywnych elementów, co prowadzi do bardziej przewidywalnego konvergencji.
Dlaczego obrazy wygenerowane przez VAE wyglądają mniej ostro niż obrazy GANa lub modelu rozsiania?
Cel treningowy VAE zawiera termin regularizacji, który utrzymuje przestrzeń ukrytą gładką i zmusza model do zagwarantowania się między możliwymi konstrukcjami niż do przyjęcia jednego ostrego, wysokiej częstotliwości rozwiązania. To otrzeźwia teksturę i krawędzie w końcowych obrazach.
Dlaczego modele rozsiania generują próbki wolniej niż GAN?
GAN wygeneruje obraz w pojedynczym przejściu przez sieć generatorową, podczas gdy modele rozsiania muszą powtarzająco uruchamiać swoją sieć dezerującą przez wiele kolejnych kroków, aby stopniowo zamieniać szum losowy na jednoznaczny obraz, mimo że nowoczesne zasoby do generowania (samplery) znacząco zmniejszyły wymagane kroki.
Czy Stable Diffusion działa naprawdę tylko na pikselach?
Nie. Korzysta z encodera typu VAE, który kompresuje obraz do małej reprezentacji ukrytej, wykonuje wolny proces dezerowania na tej skompaktowanej przestrzeni ukrytej zamiast pikselach pełnej rozdzielczości, a następnie używa dekodera VAE do odtworzenia końcowego obrazu piksela. W ten sposób połączone techniki zapewniają szybkość i jakość.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz GANs, VAEs and Diffusion Models: How Each One Generates a Sample i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację GANs, VAEs and Diffusion Models: How Each One Generates a Sample