Entendendo a função de perda de GAN

17

Estou lutando para entender a função de perda de GAN, conforme fornecido em Noções básicas sobre redes adversas generativas (uma postagem de blog escrita por Daniel Seita).

Na perda padrão de entropia cruzada, temos uma saída que foi executada através de uma função sigmóide e uma classificação binária resultante.

Estados de Sieta

Assim, para [cada] ponto de dados x1 e seu rótulo, obtemos a seguinte função de perda ...

H((x1,y1),D)=-y1registroD(x1)-(1-y1)registro(1-D(x1))

Esse é apenas o log da expectativa, o que faz sentido, mas como, na função de perda da GAN, podemos processar os dados da verdadeira distribuição e os dados do modelo generativo na mesma iteração?

tentando aprender
fonte

Respostas:

6

O foco desta pergunta

"Como podemos ... processar os dados da verdadeira distribuição e os dados do modelo generativo na mesma iteração?

Analisando a publicação fundamental

Na página referenciada, Entendendo as Redes Adversárias Generativas (2017) , o candidato a doutor Daniel Danieleta faz referência corretamente às Redes Adversárias Generativas, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville e Bengio, junho de 2014 . São estados abstratos: "Propomos uma nova estrutura para estimar modelos generativos por meio de um processo contraditório, no qual treinamos simultaneamente dois modelos ..." Este artigo original define dois modelos definidos como MLPs (perceptrons multicamadas).

  • Modelo generativo, G
  • Modelo discriminativo, D

Esses dois modelos são controlados de uma maneira em que um fornece uma forma de feedback negativo em relação ao outro, portanto, o termo contraditório.

  • G é treinado para capturar a distribuição de dados de um conjunto de exemplos suficientemente bem para enganar D.
  • D é treinado para descobrir se suas entradas são zombarias de G ou o conjunto de exemplos para o sistema GAN.

(O conjunto de exemplos para o sistema GAN às vezes é chamado de amostra real, mas pode não ser mais real do que os gerados. Ambos são matrizes numéricas em um computador, um conjunto com uma origem interna e outro com uma fonte externa. Se as externas são de uma câmera apontada para alguma cena física não é relevante para a operação GAN.)

Probabilisticamente, enganar D é sinônimo de maximizar a probabilidade de D gerar tantos falsos positivos e falsos negativos quanto corrigir as categorizações, 50% cada. Na ciência da informação, isso significa que o limite de informação que D tem de G se aproxima de 0 quando t se aproxima do infinito. É um processo de maximizar a entropia de G da perspectiva de D, assim o termo entropia cruzada.

Como a convergência é alcançada

Como a função de perda reproduzida da escrita de Sieta em 2017 na pergunta é a de D, projetada para minimizar a entropia cruzada (ou correlação) entre as duas distribuições quando aplicada ao conjunto completo de pontos para um determinado estado de treinamento.

H((x1,y1),D)=1D(x1)

Existe uma função de perda separada para G, projetada para maximizar a entropia cruzada. Observe que existem DOIS níveis de granularidade de treinamento no sistema.

  • A do jogo se move em um jogo para dois jogadores
  • O das amostras de treinamento

Eles produzem iteração aninhada com a iteração externa da seguinte maneira.

  • O treinamento de G prossegue usando a função de perda de G.
  • Padrões de entrada simulados são gerados a partir de G no seu estado atual de treinamento.
  • O treinamento de D prossegue usando a função de perda de D.
  • Repita se a entropia cruzada ainda não estiver suficientemente maximizada, D ainda poderá discriminar.

Quando D finalmente perde o jogo, alcançamos nosso objetivo.

  • G recuperou a distribuição de dados de treinamento
  • D foi reduzido a ineficácia ("1/2 probabilidade em todo lugar")

Por que o treinamento simultâneo é necessário

Se os dois modelos não fossem treinados de um lado para o outro para simular a simultaneidade, a convergência no plano adversário (a iteração externa) não ocorreria na solução exclusiva reivindicada no artigo de 2014.

Mais Informações

Além da questão, o próximo item de interesse no artigo de Sieta é que, "Projeto inadequado da função de perda do gerador", pode levar a valores de gradiente insuficientes para orientar a descida e produzir o que às vezes é chamado de saturação. A saturação é simplesmente a redução do sinal de feedback que guia a descida na propagação traseira para o ruído caótico resultante do arredondamento do ponto flutuante. O termo vem da teoria dos sinais.

Sugiro estudar o artigo de 2014 de Goodfellow et alia (pesquisadores experientes) para aprender sobre a tecnologia GAN em vez da página de 2017.

Douglas Daseeco
fonte
3

Vamos começar no início. Os GANs são modelos que podem aprender a criar dados semelhantes aos dados que fornecemos a eles.

Ao treinar um modelo generativo que não seja um GAN, a função de perda mais fácil de se apresentar é provavelmente o MSE (Mean Squared Error).

Por favor, permita-me dar um exemplo ( Trickot L 2017 ):

Agora, suponha que você queira gerar gatos; você pode dar exemplos ao seu modelo de gatos específicos nas fotos. Sua função de escolha de perda significa que seu modelo precisa reproduzir cada gato exatamente para evitar ser punido.

Mas isso não é necessariamente o que queremos! Você só quer que o seu modelo gere gatos, qualquer gato fará isso desde que seja um gato plausível. Então, você precisa alterar sua função de perda.

No entanto, qual função poderia desconsiderar pixels concretos e focar na detecção de gatos em uma foto?

Essa é uma rede neural. Esse é o papel do discriminador no GAN. O trabalho do discriminador é avaliar quão plausível é uma imagem.

O artigo que você cita, Understanding Generative Adversarial Networks (Daniel S 2017) lista duas idéias principais.

Informações principais 1: a função de perda do discriminador é a função de perda de entropia cruzada.

Informações principais 2: compreender como a saturação do gradiente pode ou não afetar adversamente o treinamento. A saturação do gradiente é um problema geral quando os gradientes são muito pequenos (ou seja, zero) para realizar qualquer aprendizado.

Para responder à sua pergunta, precisamos aprofundar o segundo insight principal.

No contexto dos GANs, a saturação do gradiente pode ocorrer devido ao projeto inadequado da função de perda do gerador, portanto, essa "principal percepção" ... baseia-se no entendimento das compensações entre as diferentes funções de perda do gerador.

O design implementado no artigo resolve o problema da função de perda por ter uma função muito específica (discriminar entre duas classes). A melhor maneira de fazer isso é usando entropia cruzada (Insight 1). Como diz o post do blog:

A entropia cruzada é uma função de grande perda, pois foi projetada em parte para acelerar o aprendizado e evitar a saturação do gradiente apenas até quando o classificador estiver correto.

Conforme esclarecido nos comentários da postagem do blog:

A expectativa [na função de entropia cruzada] vem das somas. Se você observar a definição de expectativa para uma variável aleatória discreta, verá que precisa somar diferentes valores possíveis da variável aleatória, ponderando cada um deles pela probabilidade. Aqui, as probabilidades são apenas 1/2 para cada uma, e podemos tratá-las como provenientes do gerador ou discriminador.

Seth Simba
fonte
A pergunta não perguntou o que era mais fácil de usar como uma função de perda para as RNAs. As especificidades da matemática não eram claras para @tryingtolearn e citar o aluno do ensino médio sem fornecer nenhum esclarecimento não esclarece.
FauChristian
1

Você pode tratar uma combinação de zentrada e xentrada como uma única amostra e avaliar como o discriminador executou a classificação de cada uma delas.

É por isso que o post mais tarde separa um único yem E(p~data)e E(z)- basicamente, você tem expectativas diferentes ( ys) para cada uma das entradas discriminadores e você precisa para medir os dois ao mesmo tempo para avaliar quão bem o discriminador está realizando.

É por isso que a função de perda é concebida como uma combinação da classificação positiva da entrada real e da classificação negativa da entrada negativa.

Alfa
fonte