Generator GAN uczy się tworzyć fałszywe dane przez wykorzystanie opinii dyskryminatora. Uczy się, aby dyskryminator otrzymał prawdziwy wynik.
Trenowanie generatora wymaga ściślejszej integracji między generatorem a dyskryminatorem. Część GAN trenująca generator obejmuje:
- losowe dane wejściowe
- Sieć generatora, która przekształca losowe dane wejściowe w instancję danych
- sieć dyskryminacyjna, która klasyfikuje wygenerowane dane.
- dane dyskryminujące
- straty generatora, który powoduje nałożenie kary za brak oszukania dyskryminatora.
Rysunek 1: Propagacja w trenowaniu generatora.
Losowe dane wejściowe
Sieci neuronowe wymagają jakiegoś rodzaju danych wejściowych. Normalnie wprowadzamy dane, w których chcemy coś zrobić, np. instancję, której klasyfikację chcemy sklasyfikować lub przewidzieć. Jak jednak używamy danych wejściowych w przypadku sieci, która generuje zupełnie nowe instancje danych?
W najbardziej podstawowej postaci GAN stosuje losowy szum. Generator przekształca ten hałas w istotne dane wyjściowe. Dzięki wprowadzeniu szumów GAN może generować różnorodne dane, próbkując z różnych miejsc w docelowej dystrybucji.
Eksperymenty sugerują, że rozkład hałasu nie ma znaczenia, możemy więc wybrać ten, z którego można łatwo korzystać, na przykład jednolitą dystrybucję. Dla wygody przestrzeń, w której próbkowany jest szum, jest zwykle mniejsza niż wymiary obszaru wyjściowego.
Korzystanie z dyskryminatora do trenowania generatora
Aby wytrenować sieć neuronową, zmieniamy jej wagę, aby zmniejszyć liczbę błędów lub utratę danych wyjściowych. Jednak w naszym GAN generator nie jest bezpośrednio połączony z tą stratą, którą chcemy zmienić. Generator generuje dane z sieci dyskryminacji, a dyskryminator generuje dane wyjściowe, które mają wpływ na użytkownika. Strata generatora powoduje nałożenie kary na produkcję próbki, którą sieć dyskryminacyjna uznaje za fałszywą.
Ten dodatkowy kawałek sieci musi być częścią propagacji. Propagacja dostosowuje każdą wagę we właściwym kierunku, obliczając wpływ wagi na wyniki – jak zmieni się wynik, jeśli zmienisz wagę. Skutek wagi generatora zależy jednak od tego, jaki wpływ ma waga dyskryminatora. Propagacja zaczyna się od danych wyjściowych i przepływa z dyskryminacji do generatora.
Jednocześnie nie chcemy, aby dyskryminacja zmieniła się podczas trenowania generatora. Osiągnięcie ruchomego celu utrudnia wykorzystanie generatora.
Trzeba więc wytrenować generator w następujący sposób:
- Próbka szumów.
- Wygeneruj generator na podstawie próbkowanych szumów.
- Poznaj dyskryminację &prawdziwego &prawdziwego lub &fałszu>klasyfikację danych wyjściowych generatora.
- Oblicz stratę z klasyfikacji dyskryminacji.
- Propagacja przez dyskryminator i generator w celu uzyskania gradientów.
- Użyj opcji gradientów, aby zmienić tylko wagi generatora.
To jeden ze powtórzeń trenowania generatora. W następnej sekcji dowiesz się, jak nauczyć się generatora i dyskryminacji.