Generator

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.

Schemat sieci generatywnej sieci podrzędnej. Na środku diagramu znajduje się pole „'dyskryminacja&#39”. Plik danych z 2 gałęziami do tego pola po lewej stronie.  Górna gałąź rozpoczyna się w lewym górnym rogu diagramu i jest oznaczona etykietą „#realistyczne obrazy”. Strzałka w tym cylindry prowadzi do pudełka z etykietą 'Próbka&#39. Strzałka w polu 'Przykład' pliki danych w polu „Dyskryptor&'”. Dolna gałąź dostarcza dane do pola „Ryzyfikator” i „#39; rozpoczynając od pola oznaczonego 'Losowe wprowadzanie danych”. Strzałka prowadzi z pola „Losowe dane wejściowe” do pola oznaczonego etykietą „Generator” i „#39”. Strzałka prowadzi z pola „Generator” do drugiego „Próbka”; Strzałka prowadzi z pola 'próbka' do pola „Dystrybutor”. Z prawej strony znaku „Dyskryptor' 2 strzałki prowadzą do 2 pól po prawej stronie diagramu. Jedna strzałka prowadzi do pola „Rzucanie dyskryminacji” i „#39;”. Druga strzałka prowadzi do pola o nazwie 'Utrata generatora'. Żółte pole z strzałką skierowaną w lewo i słowo „#39;Wstecz propagacja”

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:

  1. Próbka szumów.
  2. Wygeneruj generator na podstawie próbkowanych szumów.
  3. Poznaj dyskryminację &prawdziwego &prawdziwego lub &fałszu>klasyfikację danych wyjściowych generatora.
  4. Oblicz stratę z klasyfikacji dyskryminacji.
  5. Propagacja przez dyskryminator i generator w celu uzyskania gradientów.
  6. 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.