As GANs têm vários modos de falha comuns. Todos esses problemas comuns são áreas de pesquisa ativas. Embora nenhum desses problemas tenha sido completamente resolvido, vamos mencionar algumas coisas que as pessoas tentaram.
Gradientes de desaparecimento
A pesquisa sugere que, se o discriminador for muito bom, o treinamento do gerador pode falhar devido a gradientes de desaparecimento. Na prática, um discriminador ideal não fornece informações suficientes para que o gerador progrida.
Tentativas de correção
- Perda de Wasserstein: a perda de Wasserstein foi projetada para evitar gradientes nulos, mesmo quando você treina o discriminador para a otimização.
- Modificação da perda minimax: o artigo original sobre GANs propôs uma modificação da perda minimax para lidar com gradientes de desaparecimento.
Modo de colapso
Normalmente, você quer que o GAN produza uma grande variedade de saídas. Você quer, por exemplo, um rosto diferente para cada entrada aleatória no gerador de rostos.
No entanto, se um gerador produzir uma saída especialmente plausível, ele poderá aprender a produzir apenas essa saída. Na verdade, o gerador sempre tenta encontrar a saída que parece mais plausível para o discriminador.
Se o gerador começar a produzir a mesma saída (ou um pequeno conjunto de saídas) repetidamente, a melhor estratégia do discriminador é aprender a rejeitar sempre essa saída. No entanto, se a próxima geração do discriminador ficar presa em um mínimo local e não encontrar a melhor estratégia, será muito fácil para a próxima iteração do gerador encontrar a saída mais plausível para o discriminador atual.
Cada iteração do gerador faz uma otimização excessiva para um discriminador específico, e o discriminador nunca consegue aprender a sair da armadilha. Como resultado, os geradores giram por um pequeno conjunto de tipos de saída. Essa forma de falha de GAN é chamada de colapso de modo.
Tentativas de correção
As abordagens a seguir tentam forçar o gerador a ampliar o escopo, impedindo a otimização para um único discriminador fixo:
- Wasserstein loss: a Wasserstein loss alivia o colapso de modo, permitindo que você treine o discriminador para a otimização sem se preocupar com gradientes que desaparecem. Se o discriminador não ficar preso no mínimo local, ele aprenderá a rejeitar as saídas em que o gerador se estabiliza. Então, o gerador precisa tentar algo novo.
- GANs desenrolados: GANs desenrolados usam uma função de perda do gerador que incorpora não apenas as classificações atual do discriminador, mas também as saídas de versões futuras do discriminador. Assim, o gerador não pode otimizar demais para um único discriminador.
Falha na convergência
As GANs geralmente não convergem, como discutido no módulo sobre treinamento.
Tentativas de correção
Os pesquisadores tentaram usar várias formas de regularização para melhorar a convergência de GAN, incluindo:
- Adicionar ruído às entradas do discriminador: consulte, por exemplo, Toward Principled Methods for Training Generative Adversarial Networks.
- Penalizar pesos do discriminador: consulte, por exemplo, Como estabilizar o treinamento de redes generativas adversárias com regularização.