Visão geral da estrutura da GAN

Uma rede adversarial generativa (GAN) tem duas partes:

  • O gerador aprende a gerar dados plausíveis. As instâncias geradas se tornam exemplos de treinamento negativos para o discriminador.
  • O discriminador aprende a distinguir os dados falsos do gerador dos dados reais. O discriminador penaliza o gerador por produzir resultados implausíveis.

Quando o treinamento começa, o gerador produz dados obviamente falsos, e o discriminador aprende rapidamente a dizer que eles são falsos:

Três colunas são identificadas como "Dados gerados", "Discriminador" e "Dados reais". Em "Dados gerados", um retângulo azul contém
          um traço e um círculo. O retângulo é a
          primeira tentativa ruim do gerador
          de desenhar uma nota de um dólar. Em "Dados reais", há uma imagem de uma nota de
          dez dólares. Em "Discriminator", estão as palavras "FAKE" e
          'REAL'. Uma seta aponta da palavra "FAKE" para a imagem em "Dados gerados". Outra seta aponta da palavra "REAL" para a
          imagem em "Dados reais".

Conforme o treinamento avança, o gerador se aproxima de produzir uma saída que pode enganar o discriminador:

Esta imagem adiciona uma nova linha nos cabeçalhos "Dados gerados", "Discriminador" e "Dados reais" da imagem anterior. Em "Dados gerados",
          há um retângulo verde com o número 10 no canto superior esquerdo
          e um desenho simples de um rosto. Em "Dados reais", há uma imagem de uma nota de 100 dólares. Em "Discriminator", há a palavra "FAKE" com uma seta apontando para a imagem em "Generated Data" e a palavra "REAL" com uma seta apontando para a imagem em "Real Data".

Por fim, se o treinamento do gerador for bem-sucedido, o discriminador vai ter mais dificuldade para identificar a diferença entre o real e o falso. Ele começa a classificar dados falsos como reais, e a precisão deles diminui.

Esta imagem adiciona uma nova linha nos cabeçalhos "Dados gerados", "Discriminador" e "Dados reais" na primeira imagem anterior. Em "Dados gerados", há uma imagem de uma nota de 20 dólares. Em "Dados reais", há uma imagem de uma nota de 20 dólares. Em "Discriminator",
          há a palavra "REAL" com
          uma seta apontando para a imagem em "Generated Data" e a palavra
          'REAL' com uma seta apontando para a imagem em "Real Data".

Aqui está uma foto de todo o sistema:

Diagrama de uma rede adversarial generativa. No centro do
          diagrama, há uma caixa com o rótulo "discriminator". Duas ramificações alimentam esta
          caixa pela esquerda.  A primeira ramificação começa no canto superior esquerdo do
          diagrama com um cilindro rotulado como "imagens do mundo real". Uma seta leva
          desse cilindro para uma caixa com o rótulo "Sample". Uma seta da caixa
          "Sample" (Amostra) alimenta a caixa "Discriminator" (Discriminador). A ramificação de baixo
          alimenta a caixa "Discriminator", começando com uma caixa chamada "Random
          Input". Uma seta aponta da caixa "Entrada aleatória" para uma caixa com o rótulo
          'Gerador'. Uma seta vai da caixa "Generator" para uma segunda
           caixa "Sample". Uma seta vai da caixa "Sample" para a caixa "Discriminator". No lado direito da caixa "Discriminator", uma seta leva a uma caixa com um círculo verde e um círculo vermelho. A
          palavra "Real" aparece em texto verde acima da caixa, e a palavra "Falso"
          aparece em vermelho abaixo da caixa. Duas setas levam desta caixa a duas
          caixas no lado direito do diagrama. Uma seta leva a uma caixa
          rotulada como "Perda de discriminador". A outra seta leva a uma caixa com a identificação
          'Perda do gerador'.

O gerador e o discriminador são redes neurais. A saída do gerador é conectada diretamente à entrada do discriminador. Através da retropropagação, a classificação do discriminador fornece um sinal que o gerador usa para atualizar os pesos.

Vamos explicar as partes desse sistema em mais detalhes.