Zrozumienie funkcji utraty GAN


17

Usiłuję zrozumieć funkcję utraty GAN przedstawioną w Understanding Generative Adversarial Networks (post na blogu napisany przez Daniela Seity).

W standardowej stracie entropijnej mamy wyjście, które zostało przepuszczone przez funkcję sigmoidalną i wynikową klasyfikację binarną.

Stwierdza Sieta

Zatem dla [każdego] punktu danych x1 i jego etykiety otrzymujemy następującą funkcję utraty ...

H.((x1,y1),re)=-y1logre(x1)-(1-y1)log(1-re(x1))

To tylko log oczekiwań, co ma sens, ale jak w funkcji utraty GAN przetwarzamy dane z prawdziwego rozkładu i dane z modelu generatywnego w tej samej iteracji?

Odpowiedzi:


6

W centrum tego pytania

„Jak… możemy przetwarzać dane z prawdziwej dystrybucji i dane z modelu generatywnego w tej samej iteracji?

Analiza publikacji fundamentalnej

Na stronie, o której mowa, Understanding Generative Adversarial Networks (2017) , doktorant Daniel Sieta poprawnie odwołuje się do Generative Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville i Bengio, czerwiec 2014 . To abstrakcyjne stwierdzenie: „Proponujemy nowe ramy do szacowania modeli generatywnych za pomocą procesu kontradyktoryjnego, w którym jednocześnie trenujemy dwa modele ...” W tym oryginalnym artykule zdefiniowano dwa modele zdefiniowane jako MLP (wielowarstwowe perceptrony).

  • Model generatywny, G
  • Model dyskryminacyjny, D

Te dwa modele są kontrolowane w taki sposób, że jeden zapewnia formę negatywnego sprzężenia zwrotnego w stosunku do drugiego, a zatem termin przeciwny.

  • G jest przeszkolony do przechwytywania rozkładu danych zestawu przykładów wystarczająco dobrze, aby oszukać D.
  • D jest szkolony, aby odkryć, czy jego dane wejściowe są próbkami G lub zestawem przykładów dla systemu GAN.

(Zbiór przykładów dla systemu GAN jest czasami określany jako rzeczywiste próbki, ale mogą one nie być bardziej rzeczywiste niż wygenerowane. Obie są tablicami numerycznymi w komputerze, jeden zestaw z wewnętrznym źródłem, a drugi z zewnętrznym pochodzenie. To, czy zewnętrzne pochodzą z kamery skierowanej na jakąś scenę fizyczną, nie ma znaczenia dla działania GAN.)

Prawdopodobnie oszukiwanie D jest równoznaczne z maksymalizacją prawdopodobieństwa, że ​​D wygeneruje tyle fałszywych trafień i fałszywych negatywów, ile koryguje kategoryzacje, po 50%. W informatyce oznacza to, że granica informacji D dla G zbliża się do 0, gdy t zbliża się do nieskończoności. Jest to proces maksymalizacji entropii G z perspektywy D, a więc terminu entropia krzyżowa.

Jak dokonuje się konwergencja

Ponieważ funkcja straty odtworzona z zapisu Siety w pytaniu z 2017 roku jest funkcją D, zaprojektowaną w celu zminimalizowania entropii krzyżowej (lub korelacji) między dwoma rozkładami, gdy zastosuje się je do pełnego zestawu punktów dla danego stanu szkolenia.

H.((x1,y1),re)=1re(x1)

Istnieje oddzielna funkcja strat dla G, zaprojektowana w celu maksymalizacji entropii krzyżowej. Zauważ, że istnieją dwa poziomy szczegółowości treningu w systemie.

  • Gra porusza się w grze dwuosobowej
  • To z próbek treningowych

Tworzą one zagnieżdżoną iterację z zewnętrzną iteracją w następujący sposób.

  • Trening G przebiega przy użyciu funkcji straty G.
  • Próbne wzorce wprowadzania są generowane z G w jego bieżącym stanie treningu.
  • Trening D przebiega przy użyciu funkcji straty D.
  • Powtórz, jeśli entropia krzyżowa nie jest jeszcze wystarczająco zmaksymalizowana, D nadal może dyskryminować.

Kiedy D w końcu przegrywa grę, osiągnęliśmy nasz cel.

  • G odzyskał dystrybucję danych treningowych
  • D został zredukowany do nieskuteczności („wszędzie prawdopodobieństwo 1/2”)

Dlaczego szkolenie równoległe jest konieczne?

Gdyby te dwa modele nie były trenowane w obie strony do symulacji współbieżności, konwergencja w płaszczyźnie przeciwnej (iteracja zewnętrzna) nie pojawiłaby się w przypadku unikalnego rozwiązania, o którym mowa w artykule z 2014 r.

Więcej informacji

Poza pytaniem kolejnym przedmiotem zainteresowania w pracy Siety jest to, że „Zła konstrukcja funkcji straty generatora” może prowadzić do niewystarczających wartości gradientu, aby pokierować opadaniem i wytworzyć coś, co czasami nazywa się nasyceniem. Nasycenie to po prostu redukcja sygnału sprzężenia zwrotnego, który kieruje opadanie w propagacji wstecznej do chaotycznego hałasu wynikającego z zaokrąglania zmiennoprzecinkowego. Termin pochodzi od teorii sygnałów.

Sugeruję przestudiowanie artykułu z 2014 r. Autorstwa Goodfellow i in. (Doświadczeni badacze), aby dowiedzieć się więcej o technologii GAN niż na stronie z 2017 r.


3

Zacznijmy od początku. Sieci GAN to modele, które mogą nauczyć się tworzyć dane podobne do danych, które im przekazujemy.

Podczas szkolenia modelu generatywnego innego niż GAN najłatwiejszą do wymyślenia funkcją utraty jest prawdopodobnie średni błąd kwadratu (MSE).

Uprzejmie pozwólcie, że dam wam przykład ( Trickot L 2017 ):

Załóżmy teraz, że chcesz generować koty; możesz podać przykładowe modele konkretnych kotów na zdjęciach. Twój wybór funkcji utraty oznacza, że ​​Twój model musi dokładnie odtworzyć każdego kota, aby uniknąć kary.

Ale niekoniecznie tego chcemy! Po prostu chcesz, aby Twój model generował koty, każdy kot zrobi tak długo, jak to możliwe. Musisz zmienić funkcję utraty.

Która funkcja może jednak pomijać konkretne piksele i skupiać się na wykrywaniu kotów na zdjęciu?

To jest sieć neuronowa. To jest rola dyskryminatora w GAN. Zadaniem dyskryminatora jest ocena wiarygodności obrazu.

W artykule, który cytujesz, Understanding Generative Adversarial Networks (Daniel S 2017) wymieniono dwa główne spostrzeżenia.

Ważny wgląd 1: funkcją straty dyskryminatora jest funkcja utraty entropii krzyżowej.

Ważny wgląd 2: zrozumienie, w jaki sposób nasycenie gradientem może wpłynąć lub nie wpłynąć negatywnie na trening. Nasycenie gradientem jest ogólnym problemem, gdy gradienty są zbyt małe (tj. Zero), aby wykonać jakiekolwiek uczenie się.

Aby odpowiedzieć na twoje pytanie, musimy dokładniej rozwinąć drugi ważny wgląd.

W kontekście sieci GAN nasycenie gradientem może się zdarzyć z powodu złego zaprojektowania funkcji strat generatora, więc ten „główny wgląd” ... opiera się na zrozumieniu kompromisów między różnymi funkcjami strat generatora.

Projekt zaimplementowany w artykule rozwiązuje problem funkcji strat poprzez posiadanie bardzo specyficznej funkcji (w celu rozróżnienia dwóch klas). Najlepszym sposobem na to jest użycie entropii krzyżowej (Insight 1). Jak mówi post na blogu:

Entropia krzyżowa jest wielką funkcją utraty, ponieważ została częściowo zaprojektowana w celu przyspieszenia uczenia się i unikania nasycenia gradientu tylko do momentu, gdy klasyfikator jest poprawny.

Jak wyjaśniono w komentarzach na blogu:

Oczekiwanie [w funkcji entropii krzyżowej] pochodzi z sum. Jeśli spojrzysz na definicję oczekiwania na dyskretną zmienną losową, zobaczysz, że musisz zsumować różne możliwe wartości zmiennej losowej, ważąc każdą z nich według prawdopodobieństwa. Tutaj prawdopodobieństwa wynoszą tylko 1/2 dla każdego i możemy traktować je jako pochodzące z generatora lub dyskryminatora.


Pytanie nie zadawało, co było najłatwiejsze do wykorzystania jako funkcja straty dla ANN. Specyfika matematyki była niejasna dla @tryingtolearn, a cytowanie absolwentów bez podania jakichkolwiek wyjaśnień nie wyjaśnia.
FauChristian

1

Możesz traktować kombinację danych zwejściowych i xwejściowych jako pojedynczą próbkę i oceniasz, jak dobrze dyskryminator przeprowadził klasyfikację każdego z nich.

To dlatego post później dzieli jeden yna E(p~data)i E(z)- zasadniczo, masz różne oczekiwania względem ykażdego z danych wejściowych dyskryminatora i musisz zmierzyć oba w tym samym czasie, aby ocenić, jak dobrze radzi sobie dyskryminator.

Właśnie dlatego funkcja straty jest pomyślana jako kombinacja zarówno dodatniej klasyfikacji rzeczywistego wkładu, jak i ujemnej klasyfikacji ujemnego wkładu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.