Uwaga: Poniższy artykuł pomoże Ci w: Porównanie Deep Generative… – W kierunku AI
.
Modele dyfuzyjne vs. GAN vs. VAE: Porównanie głębokich modeli generatywnych
Głębokie modele generatywne są stosowane w różnych dziedzinach, takich jak synteza obrazu, dźwięku, wideo i przetwarzanie języka naturalnego. Wraz z szybkim rozwojem technik głębokiego uczenia się w ostatnich latach nastąpiła eksplozja różnych głębokich modeli generatywnych. Doprowadziło to do rosnącego zainteresowania porównywaniem i ocenianiem tych modeli pod kątem ich wydajności i możliwości zastosowania w różnych dziedzinach. W tym artykule naszym celem jest zapewnienie kompleksowego porównania głębokich modeli generatywnych, w tym modeli dyfuzyjnych, generatywnych sieci przeciwstawnych (GAN) i wariacyjnych autoenkoderów (VAE). Dokonam przeglądu ich podstawowych zasad, mocnych i słabych stron. Moim celem jest zapewnienie jasnego zrozumienia różnic i podobieństw między tymi modelami, aby pomóc badaczom i praktykom w wyborze najodpowiedniejszego głębokiego modelu generatywnego do ich konkretnych zastosowań.
Oto krótkie podsumowanie działania modeli GAN, VAE i modeli dyfuzji.
Sieci GAN [1, 2] nauczyć się generować nowe dane podobne do zestawu danych szkoleniowych. Składa się z dwóch sieci neuronowych, generatora i dyskryminatora, które grają w grę dla dwóch graczy. Generator pobiera losowe wartości próbkowane z rozkładu normalnego i tworzy próbkę syntetyczną, podczas gdy dyskryminator próbuje odróżnić próbkę rzeczywistą od wygenerowanej. Generator jest szkolony, aby generować realistyczne dane wyjściowe, które mogą oszukać dyskryminatora, podczas gdy dyskryminator jest szkolony, aby prawidłowo rozróżniać dane rzeczywiste od wygenerowanych. Górny rząd rysunku 1 pokazuje schemat jego pracy.
VAE [3, 4] składa się z kodera i dekodera. Koder odwzorowuje wielowymiarowe dane wejściowe na reprezentację niskowymiarową, podczas gdy dekoder próbuje zrekonstruować oryginalne wielowymiarowe dane wejściowe, mapując tę reprezentację z powrotem do jej pierwotnej postaci. Koder wyprowadza rozkład normalny ukrytego kodu jako reprezentację niskowymiarową, przewidując wektory średniej i odchylenia standardowego. Środkowy rząd rysunku 1 przedstawia jego działanie.
Modele dyfuzyjne [5, 6] składają się z procesów dyfuzji do przodu i dyfuzji do tyłu. Dyfuzja do przodu to łańcuch Markowa, który stopniowo dodaje szum do danych wejściowych, aż do uzyskania białego szumu. Nie jest to proces, którego można się nauczyć i zwykle obejmuje 1000 kroków. Proces odwrotnej dyfuzji ma na celu odwrócenie procesu do przodu krok po kroku, usuwając szum w celu odzyskania oryginalnych danych. Proces odwrotnej dyfuzji jest realizowany za pomocą możliwej do nauczenia sieci neuronowej. Pokazuje to dolny rząd rysunku 1.
Następnie opiszę kluczowe cechy różnych modeli, aby pomóc ci rozwinąć intuicję i podejmować świadome decyzje przy wyborze modeli do konkretnych przypadków użycia.
Sieci GAN
- Składa się z dwóch sieci neuronowych: generatora i dyskryminatora.
- Trening przez stratę przeciwnika. Generator ma na celu „oszukać” dyskryminatora poprzez generowanie próbek, które są nie do odróżnienia od prawdziwych. Celem jest uniemożliwienie dyskryminatorowi odróżnienia prawdziwych i wygenerowanych próbek.
- Próbki o wysokiej wierności. Sieć neuronowa jest zbieżna, wtedy dyskryminator nie może odróżnić próbek rzeczywistych od wygenerowanych. Prowadzi to do bardzo realistycznych próbek.
- Próbki o niskiej różnorodności. Strata przeciwnika nie ma motywacji do objęcia całej dystrybucji danych. Kiedy dyskryminator jest przetrenowany lub zdarza się katastrofalne zapomnienie, generator może być wystarczająco szczęśliwy, aby wytworzyć niewielką część różnorodności danych. Jest to częsty problem i nazywa się załamaniem trybu[2].
- Trudno trenować. Określenie, kiedy Twoja sieć osiągnęła konwergencję, może być trudne. Zamiast monitorować spadek jednej straty, powinieneś przyjrzeć się dwóm stratom, które nie mają prostej interpretacji i czasami nie jest jasne, co dzieje się z twoją siecią neuronową. Off musisz poradzić sobie z załamaniem trybu.
- Istnieje prosty kompromis między różnorodnością a wiernością za pomocą sztuczki obcinania.
VAE
- Składa się z dwóch sieci neuronowych: kodera i dekodera.
- Uczenie przez maksymalizację logarytmu wiarygodności, który po matematycznych uproszczeniach staje się stratą L2. Oszacowuje rozbieżność między próbkami wejściowymi i wygenerowanymi.
- Próbki o niskiej wierności. Jest kilka powodów:
1. Ponieważ koder przewiduje rozkład ukrytego kodu, mogą wystąpić przypadki, w których dwa rozkłady ukrytych kodów nakładają się na siebie. Dlatego też, jeśli dwa dane wejściowe mają ten sam kod utajony, optymalnym dekodowaniem byłaby średnia z dwóch danych wejściowych. Prowadzi to do rozmycia próbek. Modele Gan i dyfuzyjne nie mają tego problemu.
2. Ma stratę opartą na pikselach. Generowanie obrazu z włosami będzie składać się z naprzemiennych jasnych i ciemnych pikseli. Jeśli generacja zostanie przesunięta tylko o jeden piksel, utrata podobieństwa z prawdą podstawową znacznie by się zwiększyła lub zmniejszyła. Jednak VAE nie zachowują takich informacji na poziomie pikseli, ponieważ ukryta przestrzeń jest znacznie mniejsza niż obraz. Skłania to model do przewidywania średniej liczby jasnych i ciemnych pikseli w celu znalezienia optymalnego rozwiązania, co skutkuje rozmyciem obrazu. Sieci GAN nie mają takiego problemu, ponieważ dyskryminator może wykorzystać rozmycie próbek do odróżnienia rzeczywistych od wygenerowanych. Podobnie modele dyfuzyjne, pomimo tych samych strat opartych na pikselach, nie mają tego problemu. Opierają się na aktualnej hałaśliwej strukturze obrazu uzyskanej z podstawowej prawdy, aby przewidzieć kolejny etap odszumiania. - Próbki o dużej różnorodności. Maksymalizacja prawdopodobieństwa wymusza objęcie wszystkich trybów zbioru danych treningowych, zapewniając pojemność sieci neuronowych dla każdego punktu danych pociągu.
- Łatwy do trenowania. Ma jedną przewidywalną stratę prawdopodobieństwa.
- Encoder umożliwia uzyskanie ukrytego kodu dowolnego obrazu, co zapewnia dodatkowe możliwości wykraczające poza samo generowanie.
Modele dyfuzyjne
- Składa się z ustalonego procesu dyfuzji do przodu i procesu dyfuzji odwrotnej, którego można się nauczyć.
- Proces dyfuzji w przód jest procesem wieloetapowym, który stopniowo dodaje niewielką ilość szumu gaussowskiego do próbki, aż stanie się białym szumem. Powszechnie używaną wartością liczby kroków jest 1000.
- Proces dyfuzji odwrotnej jest również procesem wieloetapowym, który odwraca proces dyfuzji do przodu, przenosząc biały szum z powrotem na obraz. Każdy krok procesu odwrotnej dyfuzji jest realizowany przez sieć neuronową i ma taką samą liczbę kroków jak proces do przodu.
- Uczenie przez maksymalizację logarytmu wiarygodności, który po matematycznych uproszczeniach staje się stratą L2. Podczas treningu obliczamy zaszumione obrazy dla kroków T i T-1 za pomocą wzoru na losowo wybraną wartość T. Następnie model dyfuzji przewiduje obraz kroku T-1 na podstawie zaszumionego obrazu kroku T. Wygenerowany obraz i obraz krokowy T-1 są porównywane przy użyciu utraty L2.
- Próbki o wysokiej wierności. Wynika to z natury stopniowego usuwania szumu. W przeciwieństwie do VAE i GAN, które generują próbki od razu, modele dyfuzyjne tworzą próbki krok po kroku. Model najpierw tworzy zgrubną strukturę obrazu, a następnie koncentruje się na dodawaniu drobnych szczegółów na górze.
- Próbki o dużej różnorodności. Maksymalizacja prawdopodobieństwa obejmuje wszystkie tryby zbioru danych treningowych.
- Pośrednie zaszumione obrazy służą jako ukryte kody i mają taki sam rozmiar jak obrazy treningowe. Jest to jeden z powodów, dla których modele dyfuzyjne mogą generować próbki o wysokiej wierności.
- Łatwy do trenowania. Ma jedną przewidywalną stratę prawdopodobieństwa.
- Powolne generowanie próbek. W przeciwieństwie do GAN i VAE, stopniowe generowanie próbek wymaga wielu przebiegów sieci neuronowej. Chociaż istnieją metody próbkowania, które mogą przyspieszyć ten proces o rzędy wielkości, są one nadal znacznie wolniejsze niż GAN i VAE.
- Wieloetapowy proces zapewnia nowe funkcje, takie jak malowanie lub generowanie obrazu do obrazu, po prostu wykorzystując szum wejściowy.
Wniosek
Modele GAN, VAE i Diffusion są popularnymi modelami generatywnymi głębokiego uczenia się, które mają unikalne cechy i są dostosowane do różnych przypadków użycia. Każdy model ma swoje mocne i słabe strony i ważne jest, aby zrozumieć jego niuanse przed wybraniem jednego do konkretnego zastosowania.
Mam nadzieję, że te informacje były dla Ciebie pomocne. Dziękuję za przeczytanie!
Bibliografia
- Generatywne sieci przeciwników. Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio — https://arxiv.org/pdf/1406.2661.pdf
- Tryb GAN Zwiń Wyjaśnienie — https://medium.com/towards-artificial-intelligence/gan-mode-collapse-explanation-fa5f9124ee73
- Automatyczne kodowanie wariacyjne Bayesa. Diederik P. Kingma, Max Welling — https://arxiv.org/pdf/1312.6114.pdf
- Zrozumienie autoenkoderów wariacyjnych (VAE) — https://towardsdatascience.com/understanding-variational-autoencoders-vaes-f70510919f73
- Głębokie uczenie bez nadzoru z wykorzystaniem termodynamiki stanu nierównowagi. Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, Surya Ganguli — https://arxiv.org/pdf/1503.03585.pdf
- Czym są modele dyfuzyjne? Lilian Weng — https://lilianweng.github.io/posts/2021-07-11-diffusion-models