Funções de perda

As GANs tentam replicar uma distribuição de probabilidade. Portanto, é necessário usar funções de perda que reflitam a distância entre a distribuição dos dados gerados pela GAN e a distribuição dos dados reais.

Como você captura a diferença entre duas distribuições nas funções de perda da GAN? Essa questão é uma área de pesquisa ativa, e muitas abordagens foram propostas. Vamos abordar duas funções comuns de perda da GAN aqui, e ambas são implementadas no TF-GAN:

A TF-GAN também implementa várias outras funções de perda.

Uma ou duas funções de perda?

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 funcionar juntas para refletir uma medida de distância entre as distribuições de probabilidade?

Nos esquemas de perda que veremos aqui, as perdas do gerador e do discriminador são derivadas de uma única medida de distância entre as distribuições de probabilidade. No entanto, nos dois 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, mesmo que tenham como resultado uma única fórmula.

Perda mínima

No documento que introduziu as GANs, o gerador tenta minimizar a função a seguir enquanto o discriminador tenta maximizar:

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

Nesta função:

  • D(x) é a estimativa do discriminador da probabilidade de a instância de dados real x ser 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 no gerador. Na verdade, o valor esperado em todas as instâncias falsas geradas (G(z)).
  • A fórmula deriva 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 (em inglês) para ver uma implementação dessa função de perda.

Perda Minimax modificada

O documento original da GAN observa que a função de perda mínima do max. máximo pode fazer com que a GAN fique travada nos estágios iniciais do treinamento da GAN quando o job do discriminador é muito fácil. Portanto, o documento sugere a modificação da perda do gerador para que ele tente maximizar log D(G(z)).

No TF-GAN, consulte Modified_generator_loss (link em inglês) para ver 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 realmente classifica instâncias. Para cada instância, há um número. Esse número não precisa ser menor que 1 ou maior que 0.Portanto, não podemos usar 0,5 como limite para decidir se uma instância é real ou falsa. O treinamento do Discriminador apenas tenta aumentar a saída para instâncias reais do que para instâncias falsas.

Como não é possível distinguir entre verdadeiro e 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 nas funções de perda não precisam ser probabilidades.

As próprias funções de perda são enganosamente simples:

Perda 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 da crítica para uma instância real.
  • G(z) é a saída do gerador quando recebe o ruído z.
  • D(G(z)) é a saída da crítica para uma instância falsa.
  • A saída da crítica D não precisa estar entre 1 e 0.
  • As fórmulas derivam da distância do Earth Earth entre as distribuições reais e geradas.

No TF-GAN, consulte wasserstein_generator_loss e wasserstein_discriminator_loss para ver implementações.

Requisitos

A justificativa teórica da GAN de Wasserstein (ou WGAN) exige que os pesos em toda a GAN sejam cortados para que permaneçam dentro de um intervalo restrito.

Vantagens

As GANs de Wasserstein são menos vulneráveis a ficarem travadas do que as GANs baseadas em minimax e evitam problemas com gradientes de fuga. A distância da Terra também tem a vantagem de ser uma métrica verdadeira: uma medida da distância em um espaço de distribuições de probabilidade. A entropia cruzada não é uma métrica nesse sentido.