Ponieważ GAN zawiera 2 oddzielnie trenowane sieci, jego algorytm treningowy musi uwzględnić 2 kwestie:
- GAN musi wykonywać 2 rodzaje treningu (generatora i dyskryminatora).
- Konwergencja GAN jest trudna do zidentyfikowania.
Trening naprzemienny
Generator i dyskryminator mają różne procesy trenowania. Jak trenować GAN jako całość?
Trenowanie sieci GAN odbywa się w naprzemiennych okresach:
- Discriminator trenuje przez co najmniej 1 epokę.
- Generator trenuje przez co najmniej 1 epokę.
- Powtórz kroki 1 i 2, aby dalej trenować generator i sieci dyskryminacyjne.
Na etapie treningu dyskryminatora generator pozostaje niezmienny. Podczas treningu dyskryminatora próbuje ona dowiedzieć się, jak odróżnić prawdziwe dane od fałszywych, dlatego musi się nauczyć rozpoznawać błędy generatora. Jest to inny problem w przypadku dokładnie wytrenowanego generatora niż w przypadku niewytrenowanego generatora, który generuje losowe dane wyjściowe.
Podobnie w trakcie fazy trenowania generatora dyskryminator pozostaje niezmienny. W przeciwnym razie generator próbowałby trafić w ruchomy cel i nigdy nie osiągnąłby konwergencji.
To właśnie pozwala GANom rozwiązywać problemy z generowaniem, które w innym przypadku byłyby nierozwiązywalne. Aby rozpocząć pracę nad trudnym problemem generatywnym, zaczęliśmy od znacznie prostszego problemu klasyfikacji. Jeśli nie możesz wytrenować klasyfikatora, aby odróżniał on prawdziwe dane od wygenerowanych, nawet w przypadku początkowego wyjścia generatora losowego, nie możesz rozpocząć treningu GAN.
Konwergencja
W miarę jak generator staje się coraz lepszy dzięki treningowi, skuteczność dyskryminatora maleje, ponieważ nie może on łatwo odróżnić prawdziwych obrazów od fałszywych. Jeśli generator działa bezbłędnie, dyskryminator ma dokładność 50%. W efekcie wyróżnik rzuca monetą, aby dokonać prognozy.
Ta ewolucja powoduje problemy z konwergencją GAN jako całości: z czasem sygnał dyskryminatora staje się mniej istotny. Jeśli GAN nadal będzie się uczyć po tym, jak dyskryminator zacznie podawać całkowicie losowe informacje zwrotne, generator zacznie się uczyć na podstawie bezużytecznych informacji zwrotnych, a jego jakość może się pogorszyć.
W przypadku GAN konwergencja jest często stanem przelotnym, a nie stabilnym.