Wyróżnik

Discriminator w GAN jest po prostu klasyfikatorem. Próbuje odróżnić prawdziwe dane od danych utworzonych przez generator. Może ona korzystać z dowolnej architektury sieci odpowiedniej do typu danych, które klasyfikuje.

Schemat sieci generatywnej antagonistycznej Pośrodku diagramu znajduje się pole o nazwie „discriminator”. Z lewej strony do tego pola wpływają 2 gałęzie.  Gałąź górna zaczyna się w lewym górnym rogu diagramu od pola „Zdjęcia ze świata rzeczywistego”. Strzałka z cylindra prowadzi do pudełka z etykietą „Sample”. Strzałka z pola „Sample” (Próbka) prowadzi do pola „Discriminator” (Dyskryminator). Gałąź dolna prowadzi do pola „Dyskretna”, które zaczyna się od pola „Losowe wejście”. Strzałka prowadzi z pola „Losowe dane wejściowe” do pola „Generator”. Strzałka prowadzi z pola „Generator” do drugiego pola „Przykład”. Strzałka prowadzi z pola „Próbka” do pola „Dyskryptory”. Po prawej stronie pola Dyskryminator znajdują się 2 strzałki prowadzące do 2 pól po prawej stronie diagramu. Jedna strzałka prowadzi do pola o nazwie „Utrata dyskryminacyjna”. Druga strzałka prowadzi do pola o nazwie „Utrata generatora”. Wokół pola dyskryminatora i pola utraty dyskryminatora znajduje się żółte pole z oznaczoną strzałką skierowaną w lewo i napisem „Backpropagation” (propagacja wsteczna). Wskazuje to, że propagacja wsteczna działa na części systemu, która jest otoczona żółtym polem.

Rysunek 1. Propagacja wsteczna w przypadku trenowania dyskryminatora.

Dane treningowe do wyodrębniania

Dane treningowe dyskryminatora pochodzą z 2 źródeł:

  • Rzeczywiste dane, np. prawdziwe zdjęcia ludzi. Podczas trenowania dyskryminator używa tych wystąpień jako przykładów pozytywnych.
  • Fałszywe dane utworzone przez generator. Podczas trenowania dyskryminator używa tych instancji jako przykładów negatywnych.

Na rysunku 1 2 pole „Sample” (Próbka) reprezentuje 2 źródła danych, które są podawane do dyskryminatora. Podczas trenowania wyróżnika generator nie trenuje. Jego wagi pozostają stałe, gdy generuje przykłady, na których dyskryminator może się uczyć.

Trenowanie wyróżnika

Dyskryminator łączy się z 2 funkcjami straty. Podczas trenowania dyskryminatora dyskryminator ignoruje stratę generatora i używa tylko straty dyskryminatora. Podczas trenowania generatora używamy funkcji generator loss, jak opisano w następnej sekcji.

Podczas treningu wyróżnika:

  1. Dyskryminator klasyfikuje zarówno prawdziwe, jak i fałszywe dane z generatora.
  2. Strata dyskryminatora penalizuje dyskryminatora za błędne zaklasyfikowanie prawdziwego przykładu jako fałszywego lub fałszywego przykładu jako prawdziwego.
  3. Wyróżnik aktualizuje swoje wagi za pomocą propagacji wstecznej z utraty wyróżnika przez sieć wyróżnika.

W następnej sekcji zobaczymy, dlaczego utrata generatora wiąże się z dyskryminatorem.