O Discriminador

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

Um diagrama de uma rede adversária generativa. No centro do
          diagrama, há uma caixa com o rótulo "#39;discriminator'". Duas ramificações são inseridas nesta
          caixa à esquerda.  A ramificação superior começa no canto superior esquerdo do
          diagrama com uma caixa denominada 'imagens do mundo real'. Uma seta leva
          deste cilindro para uma caixa etiquetada como "#39;Exemplo'". Uma seta da caixa 'Sample' alimenta na caixa 'Discriminator'. A ramificação inferior
          alimenta a caixa 'Discriminator' começando com uma caixa denominada 'Entrada
          aleatória'. Uma seta leva da caixa 'Random Input' para uma caixa denominada
          'Generator'. Uma seta vai da caixa 'Generator' para uma segunda
          'Sample'. Uma seta vai da caixa 'Sample' para a
          'Discriminator. No lado direito da caixa
          Discriminador, duas setas levam a duas
          caixas no lado direito do diagrama. Uma seta leva a uma caixa
          com o rótulo "##99;Perda do decretador"'. A outra seta leva a uma caixa chamada 'Perda do gerador'. Uma caixa amarela rotulada com uma seta apontando para a esquerda e a palavra "#39;Backpropagation'" é desenhada em torno da caixa de discriminação e da caixa de perda de discriminadores para indicar que a retropropagação opera na parte do sistema dentro da caixa amarela.

Figura 1: retropropagação no treinamento de discriminadores.

Dados de treinamento do Discriminador

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

  • Instâncias de dados reais, como imagens 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 que são alimentadas no discriminador. Durante o treinamento do discriminador, o gerador não treina. Os pesos dele permanecem constantes enquanto produzem exemplos para o discriminador treinar.

Como treinar o Discriminador

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

Durante o treinamento de discriminação:

  1. O classificador classifica os 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 próprios pesos por meio da propagação da perda do discriminador por meio da rede de discriminadores.

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