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.
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:
- O discriminador classifica dados reais e falsos do gerador.
- A perda do discriminador penaliza o discriminador por classificar incorretamente uma instância real como falsa ou uma instância falsa como real.
- 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.