GAN ma wiele typowych trybów awarii. Wszystkie te typowe problemy to obszary aktywnego badania. Żaden z tych problemów nie został całkowicie rozwiązany, ale opisujemy tu kilka sprawdzonych metod.
Znikające gradienty
Badania wykazały, że jeśli dyskryminacja jest zbyt dobra, generator może nie zadziałać z powodu zniknięcia gradientów. Optymalna dyskryminacja nie wystarcza, aby generator mógł osiągnąć postępy.
Próby rozwiązania problemu
- Utrata Wassersteina: strata Wassersteina została zaprojektowana tak, aby zapobiegać znikaniu gradientów nawet wtedy, gdy wytrenujesz dyskryminację w celu optymalizacji.
- Zmodyfikowana ministrata: pierwotna dokument GAN proponuje modyfikację wartości minimax, aby rozwiązać problem znikającymi gradientami.
Zwiń tryb
Zazwyczaj chcesz, aby sieć GAN generowała różne dane wyjściowe. Załóżmy na przykład, że chcesz używać innej twarzy dla każdego losowego wprowadzania danych do generatora.
Jeśli jednak generator generuje szczególnie wiarygodne dane, generator może się nauczyć generować tylko dane wyjściowe. Generator zawsze stara się znaleźć rozwiązanie, które jest najbardziej prawdopodobne z powodu dyskryminatora.
Jeśli generator zaczyna powtarzać te same dane wyjściowe (lub niewielką ich liczbę), dyskryminatorem zawsze jest nauczenie się zawsze odrzucania tych danych wyjściowych. Jeśli jednak następne pokolenie dyskryminacji utknie w lokalnym minimum i nie znajdzie najlepszej strategii, to będzie zbyt trudne dla następnego iteracji, aby znaleźć najbardziej wiarygodne wyniki dla bieżącego dyskryminatora.
Każda iteracja generatora polega na nadmiernych optymalizacji pod kątem konkretnego dyskryminatora, a dyskryminator nigdy nie wydobywa się z pułapki. W rezultacie generatory rotują przez niewielki zestaw typów danych wyjściowych. Ta forma błędu GAN nazywa się zwinięciem trybu.
Próby rozwiązania problemu
Poniższe metody wymuszają poszerzenie zakresu generatora, zapobiegając optymalizacji go pod kątem pojedynczej dyskryminacji:
- Utrata Wassersteina: strata Wasserstein złagodzi tryb rozładowywania, umożliwiając wytrenowanie dyskryminatora do optymalizacji bez obaw o zniknięcie gradientów. Jeśli dyskryminator nie utknął w lokalnej minydzie, uczy się odrzucać wyniki, na których stabilizuje się generator. Generator musi spróbować czegoś nowego.
- Niewprowadzone GAN: niewprowadzone GAN korzystają z funkcji utraty generatora, która uwzględnia nie tylko obecną klasyfikację dyskryminatora, ale też dane wyjściowe przyszłych dyskryminacji. Dlatego generator nie może optymalizować zbyt jednej dyskryminacji.
Niepowodzenie
Omówienie GAN często się nie kończy, jak opisano w module na temat trenowania.
Próby rozwiązania problemu
Badacze próbowali wykorzystać różne formy normalizacji do poprawy spójności GAN, między innymi:
- Dodawanie szumu do danych dyskryminacyjnych: na przykład zapoznaj się z zasadami dotyczącymi kierowania sieci pomocniczych.
- Publikowanie wag dyskryminujących: zobacz na przykład Stabilizowanie trenowania genetycznych sieci pomocniczych za pomocą regularizacji.