GAN-y mają kilka typowych rodzajów błędów. Wszystkie te typowe problemy są obszarami aktywnego badania. Chociaż żaden z tych problemów nie został jeszcze w pełni rozwiązany, podamy kilka rozwiązań, które zostały wypróbowane przez innych użytkowników.
Vanishing Gradients
Badania wskazują, że jeśli dyskryminator jest zbyt dobry, szkolenie generatora może się nie udać z powodu znikających gradientów. W efekcie optymalny dyskryminator nie udostępnia generatorowi wystarczającej ilości informacji, aby ten mógł się rozwijać.
Próby rozwiązania
- Strata Wassersteina: strata Wassersteina ma zapobiegać zanikaniu gradientów nawet wtedy, gdy trenujesz dyskryminator do optymalnej wartości.
- Zmodyfikowana strata minimax: w pierwotnym artykule o GANach zaproponowano modyfikację straty minimax, aby poradzić sobie z zanikającymi gradientami.
Zwijanie
Zwykle chcesz, aby GAN generował wiele różnych wyników. Możesz na przykład chcieć, aby generator generował różne twarze dla każdego losowego wejścia.
Jeśli jednak generator wygeneruje szczególnie wiarygodny wynik, może nauczyć się generować tylko ten wynik. Generator zawsze próbuje znaleźć wynik, który wydaje się najbardziej prawdopodobny dla dyskryminatora.
Jeśli generator zacznie wytwarzać ten sam wynik (lub mały zbiór wyników) wielokrotnie, najlepszą strategią dla dyskryminatora będzie nauczyć się odrzucania tego wyniku. Jeśli jednak następna generacja dyskryminatora utknie w lokalnym minimum i nie znajdzie najlepszej strategii, następna iteracja generatora będzie miała za łatwe zadanie, aby znaleźć najbardziej prawdopodobny wynik dla bieżącego dyskryminatora.
Każda iteracja generatora prowadzi do nadmiernej optymalizacji pod kątem konkretnego dyskryminatora, a dyskryminator nigdy nie uczy się, jak wydostać się z pułapki. W efekcie generatory przełączają się między niewielkim zestawem typów danych wyjściowych. Ten rodzaj błędu GAN nazywa się załamaniem trybu.
Próby rozwiązania
Poniższe metody mają na celu zmuszenie generatora do poszerzenia zakresu działania przez uniemożliwienie mu optymalizacji pod kątem pojedynczego stałego dyskryminatora:
- Strategia Wassersteina: strategia Wassersteina zapobiega redukcji trybu, umożliwiając optymalne wytrenowanie dyskryminatora bez obaw o znikające gradienty. Jeśli dyskryminator nie utknie w lokalnych minimach, uczy się odrzucać dane wyjściowe, które generator stabilizuje. Generator musi spróbować czegoś nowego.
- Rozwinięte GAN: rozwinięte GAN używają funkcji generatora strat, która uwzględnia nie tylko bieżące klasyfikacje dyskryminatora, ale także dane wyjściowe przyszłych wersji dyskryminatora. Generator nie może więc zbytnio optymalizować wyników pod kątem jednego parametru.
Niemożliwość zbliżenia
GAN-y często nie osiągają konwergencji, co omawialiśmy w module poświęconym trenowaniu.
Próby rozwiązania
Aby poprawić konwergencję GAN, badacze próbowali stosować różne formy regularyzacji, w tym:
- Dodawanie szumu do danych wejściowych dyskryminatora: zobacz na przykład Toward Principled Methods for Training Generative Adversarial Networks.
- Karanie wag dyskryminatora: zobacz na przykład Stabilizing Training of Generative Adversarial Networks through Regularization (Stabilizacja procesu treningu generatywnych sieci antagonistycznych za pomocą regularyzacji).