Generatywne sieci współzawodniczące (GAN) składają się z 2 części:
- Generator uczy się generować wiarygodne dane. Wygenerowane instancje stają się negatywnymi przykładami treningowymi dla dyskryminatora.
- Dyskriminator uczy się odróżniać fałszywe dane generatora od prawdziwych. Dyskryminator penalizuje generator za generowanie nieprawdopodobnych wyników.
Gdy rozpoczyna się trenowanie, generator generuje wyraźnie fałszywe dane, a dyskryminator szybko uczy się, że są one fałszywe:
W miarę postępów w treningu generator coraz lepiej tworzy dane wyjściowe, które mogą oszukać dyskryminator:
Na koniec, jeśli szkolenie generatora przebiega dobrze, funkcja dyskryminacyjna coraz gorzej odróżnia prawdziwe obrazy od fałszywych. Zaczyna klasyfikować fałszywe dane jako prawdziwe, przez co jego dokładność spada.
Oto zdjęcie całego systemu:
Zarówno generator, jak i dyskryminator to sieci neuronowe. Wyjście generatora jest połączone bezpośrednio z wejściami dyskryminatora. Dzięki propagacji wstecznej klasyfikacja dyskryminatora dostarcza sygnału, którego generator używa do aktualizowania wag.
Przyjrzyjmy się teraz bliżej poszczególnym elementom tego systemu.