As GANs tentam replicar uma distribuição de probabilidade. Portanto, eles precisam usar funções de perda que reflitam a distância entre a distribuição dos dados gerados pelo GAN e a distribuição dos dados reais.
Como capturar a diferença entre duas distribuições em funções de perda de GAN? Essa pergunta é uma área de pesquisa ativa, e muitas abordagens foram propostas. Vamos abordar duas funções de perda GAN comuns aqui, ambas implementadas no TF-GAN:
- PERDA MINIMAX: a função de perda usada no artigo que introduziu GANs.
- Perda de Wasserstein: a função de perda padrão para estimadores do TF-GAN. Foi descrito pela primeira vez em um artigo de 2017.
O TF-GAN também implementa muitas outras funções de perda.
Uma função de perda ou duas?
Uma GAN pode ter duas funções de perda: uma para o treinamento do gerador e outra para o treinamento do discriminador. Como duas funções de perda podem trabalhar juntas para refletir uma medida de distância entre distribuições de probabilidade?
Nos esquemas de perda que vamos analisar aqui, as perdas do gerador e do discriminador derivam de uma única medida de distância entre distribuições de probabilidade. No entanto, em ambos os esquemas, o gerador só pode afetar um termo na medida de distância: o termo que reflete a distribuição dos dados falsos. Portanto, durante o treinamento do gerador, descartamos o outro termo, que reflete a distribuição dos dados reais.
As perdas do gerador e do discriminador parecem diferentes no final, embora derivam de uma única fórmula.
Perda de minimax
No artigo que apresentou as GANs, o gerador tenta minimizar a seguinte função, enquanto o discriminador tenta maximizar:
Nesta função:
D(x)
é a estimativa do discriminador da probabilidade de que a instância de dados real x seja real.- Ex é o valor esperado em todas as instâncias de dados reais.
G(z)
é a saída do gerador quando recebe o ruído z.D(G(z))
é a estimativa do discriminador da probabilidade de uma instância falsa ser real.- Ez é o valor esperado em todas as entradas aleatórias do gerador. Na prática, é o valor esperado em todas as instâncias falsas geradas G(z).
- A fórmula é derivada da entropia cruzada entre as distribuições reais e geradas.
O gerador não pode afetar diretamente o termo log(D(x))
na função. Portanto,
para o gerador, minimizar a perda é equivalente a minimizar log(1 -
D(G(z)))
.
No TF-GAN, consulte minimax_discriminator_loss e minimax_generator_loss para conferir uma implementação dessa função de perda.
Perda de minimax modificada
O artigo original sobre GANs observa que a função de perda minimax acima pode fazer com que
o GAN fique preso nos estágios iniciais do treinamento de GAN quando o trabalho do
discriminador é muito fácil. O artigo sugere, portanto, modificar a perda do gerador para
que ele tente maximizar log D(G(z))
.
No TF-GAN, consulte modified_generator_loss para conferir uma implementação dessa modificação.
Perda de Wasserstein
Por padrão, o TF-GAN usa a perda de Wasserstein.
Essa função de perda depende de uma modificação do esquema GAN (chamado "Wasserstein GAN" ou "WGAN"), em que o discriminador não classifica instâncias. Para cada instância, ele gera um número. Esse número não precisa ser menor que um ou maior que 0.Portanto, não podemos usar 0,5 como um limite para decidir se uma instância é real ou falsa. O treinamento do discriminador tenta aumentar a saída para instâncias reais em vez de falsas.
Como não consegue discriminar entre o real e o falso, o discriminador WGAN é chamado de "crítico" em vez de "discriminador". Essa distinção tem importância teórica, mas para fins práticos, podemos tratá-la como um reconhecimento de que as entradas para as funções de perda não precisam ser probabilidades.
As próprias funções de perda são enganosamente simples:
Perda de crítica:D(x) - D(G(z))
O discriminador tenta maximizar essa função. Em outras palavras, ele tenta maximizar a diferença entre a saída em instâncias reais e a saída em instâncias falsas.
Perda do gerador:D(G(z))
O gerador tenta maximizar essa função. Em outras palavras, ele tenta maximizar a saída do discriminador para as instâncias falsas.
Nessas funções:
D(x)
é a saída do crítico para uma instância real.G(z)
é a saída do gerador quando recebe o ruído z.D(G(z))
é a saída do crítico para uma instância falsa.- A saída do crítico D não precisa estar entre 1 e 0.
- As fórmulas são derivadas da distância de deslocamento da Terra entre as distribuições reais e geradas.
No TF-GAN, consulte wasserstein_generator_loss e wasserstein_discriminator_loss para ver as implementações.
Requisitos
A justificativa teórica para o GAN Wasserstein (ou WGAN, na sigla em inglês) exige que os pesos em todo o GAN sejam cortados para que permaneçam dentro de um intervalo restrito.
Vantagens
As GANs de Wasserstein são menos vulneráveis a ficarem presas do que as GANs baseadas em minimax e evitam problemas com gradientes que desaparecem. A distância de deslocamento da Terra também tem a vantagem de ser uma métrica verdadeira: uma medida de distância em um espaço de distribuições de probabilidade. A entropia cruzada não é uma métrica nesse sentido.