Funkcje utraty

GAN próbują odtworzyć rozkład prawdopodobieństwa. Dlatego należy używać funkcji utraty, które odzwierciedlają odległość między rozkładem danych wygenerowanych przez GAN a rozkładem rzeczywistych danych.

Jak można uchwycić różnicę między 2 rozkładami w funkcjach utraty GAN? To pytanie jest przedmiotem intensywnych badań, w których trakcie testowano wiele podejść. W tym artykule omówimy 2 popularne funkcje utraty GAN, które są implementowane w TF-GAN:

TF-GAN implementuje też wiele innych funkcji utraty.

Jedna czy 2 funkcje utraty?

GAN może mieć 2 funkcje straty: jedną do trenowania generatora i jedną do trenowania dyskryminatora. Jak 2 funkcje strat mogą współpracować, aby odzwierciedlać miarę odległości między rozkładami prawdopodobieństwa?

W omawianych tu schematach straty generatora i dyskryminatora pochodzą z jednego miary odległości między rozkładami prawdopodobieństwa. W obu tych schematach generator może jednak wpływać tylko na jeden termin w miarce odległości: termin, który odzwierciedla rozkład fałszywych danych. Dlatego podczas trenowania generatora pomijamy drugi termin, który odzwierciedla rozkład rzeczywistych danych.

Straty generatora i dyskryminatora wyglądają na końcu inaczej, mimo że pochodzą z jednej formuły.

Strata minimalna

W artykule, w którym przedstawiono GAN-y, generator stara się zminimalizować tę funkcję, podczas gdy dyskryminator próbuje ją zmaksymalizować:

Ex[log(D(x))]+Ez[log(1D(G(z)))]

W tej funkcji:

  • D(x) to szacowana przez dyskryminatora wartość prawdopodobieństwa, że prawdziwy przykład danych x jest prawdziwy.
  • Ex to wartość oczekiwana dla wszystkich przykładów rzeczywistych danych.
  • G(z) to wynik działania generatora dla podanego szumu z.
  • D(G(z)) to szacowana przez dyskryminatora wartość prawdopodobieństwa, że fałszywa instancja jest prawdziwa.
  • Ez to oczekiwana wartość wszystkich losowych danych wejściowych generatora (w efekcie oczekiwana wartość wszystkich wygenerowanych fałszywych instancji G(z)).
  • Formuła pochodzi z entropii krzyżowej między rzeczywistą a wygenerowaną dystrybucją.

Generator nie może bezpośrednio wpływać na termin log(D(x)) w funkcji, więc dla generatora minimalizacja strat jest równoważna minimalizacji log(1 - D(G(z))).

W TF-GAN implementację tej funkcji straty znajdziesz w funkcjach minimax_discriminator_loss i minimax_generator_loss.

Zmodyfikowana strata minimalna

W pierwotnym artykule na temat GAN podano, że wspomniana wyżej funkcja straty minimax może spowodować, że GAN utknie na wczesnych etapach trenowania, gdy zadanie dyskryminatora jest bardzo łatwe. Dlatego autorzy sugerują zmodyfikowanie strat generatora, aby starał się zmaksymalizować wartość log D(G(z)).

W TF-GAN implementację tej modyfikacji znajdziesz w funkcji modified_generator_loss.

Wasserstein Loss

Domyślnie TF-GAN używa straty Wassersteina.

Ta funkcja utraty zależy od modyfikacji schematu GAN (zwanego „Wasserstein GAN” lub „WGAN”), w którym dyskryminator nie klasyfikuje w rzeczywistości instancji. W przypadku każdej instancji zwraca liczbę. Ta liczba nie musi być mniejsza od 1 ani większa od 0, więc nie możemy użyć wartości 0,5 jako progu, aby określić, czy instancja jest prawdziwa, czy fałszywa. Trening dyskryminatora próbuje zwiększyć wyjście w przypadku prawdziwych instancji, a nie fałszywych.

Ponieważ nie jest w stanie odróżnić prawdziwych obrazów od fałszywych, generator WGAN nazywa się „krytykiem”, a nie „dyskryminatorem”. To rozróżnienie ma znaczenie teoretyczne, ale na potrzeby praktyczne możemy je traktować jako potwierdzenie, że dane wejściowe funkcji strat nie muszą być prawdopodobieństwami.

Same funkcje straty są pozornie proste:

Crit Loss: D(x) - D(G(z))

Discriminator stara się zmaksymalizować tę funkcję. Inaczej mówiąc, stara się maksymalizować różnicę między wynikami uzyskanymi na podstawie rzeczywistych i fałszywych instancji.

Generator Loss: D(G(z))

Generator stara się zmaksymalizować tę funkcję. Inaczej mówiąc, stara się zmaksymalizować wynik dyskryminatora w przypadku fałszywych instancji.

W tych funkcjach:

  • D(x) to wynik krytyka w przypadku konkretnej instancji.
  • G(z) to wynik działania generatora dla podanego szumu z.
  • D(G(z)) to dane wyjściowe krytyka dotyczące fałszywego wystąpienia.
  • Wyjście kryterium D nie musi mieścić się w przedziale od 1 do 0.
  • Formuły pochodzą z odległości przemieszczenia Ziemi między rzeczywistymi a wygenerowanymi rozkładami.

W przypadku TF-GAN implementacje znajdziesz w funkcjach wasserstein_generator_loss i wasserstein_discriminator_loss.

Wymagania

Teoretyczne uzasadnienie dla modelu Wasserstein GAN (czyli WGAN) wymaga, aby wagi w modelu GAN były przycinane, tak aby pozostawały w ograniczonym zakresie.

Zalety

Sieci GAN Wassersteina są mniej podatne na zablokowanie niż sieci GAN oparte na minimaksie i nie mają problemów z znikaniem gradientów. Dystans w metodyce earth mover ma też tę zaletę, że jest prawdziwą miarą: miarą odległości w przestrzeni rozkładu prawdopodobieństwa. Entropia krzyżowa nie jest w tym sensie wskaźnikiem.