O discriminador

O discriminador em um GAN é simplesmente um classificador. Ele tenta distinguir dados reais dos dados criados pelo gerador. Ele pode usar qualquer arquitetura de rede adequada ao tipo de dados que está classificando.

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 começa no canto superior esquerdo do
          diagrama com uma caixa com o rótulo "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, duas setas levam 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'. Uma caixa amarela com o rótulo de uma seta apontando para a esquerda e
          a palavra "Backpropagation" é desenhada em torno da
          caixa do discriminador e da caixa de perda do discriminador para
          indicar que a propagação reversa opera na parte do
          sistema contida na caixa amarela.

Figura 1: retropropagação no treinamento do discriminador.

Dados de treinamento do discriminador

Os dados de treinamento do discriminador vêm de duas fontes:

  • Exemplos de dados reais, como fotos reais de pessoas. O discriminador usa essas instâncias como exemplos positivos durante o treinamento.
  • Instâncias de dados falsos criadas pelo gerador. O discriminador usa essas instâncias como exemplos negativos durante o treinamento.

Na Figura 1, as duas caixas "Sample" representam essas duas fontes de dados alimentando o discriminador. Durante o treinamento do discriminador, o gerador não é treinado. Os pesos permanecem constantes enquanto produzem exemplos para o discriminador treinar.

Treinar o discriminador

O discriminador se conecta a duas funções de perda. Durante o treinamento do discriminador, ele ignora a perda do gerador e usa apenas a perda do discriminador. Usamos a perda do gerador durante o treinamento do gerador, conforme descrito na próxima seção.

Durante o treinamento da discriminadora:

  1. O discriminador classifica dados reais e falsos do gerador.
  2. A perda do discriminador penaliza o discriminador por classificar incorretamente uma instância real como falsa ou uma instância falsa como real.
  3. O discriminador atualiza os pesos por meio da retropropagação da perda do discriminador pela rede do discriminador.

Na próxima seção, vamos entender por que a perda do gerador se conecta ao discriminador.