Data

7 jan, 2019

Introduzindo o Metropolis-Hastings GAN

Publicidade

As Generative Adversarial Networks (GANs) alcançaram feitos impressionantes na geração de imagens realistas e no reparo de imagens. Uma arte produzida por uma GAN foi vendida em leilão por mais de US$ 400.000!

Na Uber, as GANs têm inúmeras aplicações potenciais, incluindo o fortalecimento de nossos modelos de aprendizado de máquina (ML) contra ataques adversários, simuladores de aprendizagem para tráfego, solicitações de corridas ou padrões de demanda ao longo do tempo e gerando sugestões personalizadas de pedidos para a Uber Eats.

As GANs consistem em dois modelos treinados como adversários: o gerador aprende a distribuição de dados reais e o discriminador aprende a distinguir amostras geradas (em outras palavras, “falsas”) de dados reais.

A maioria das pesquisas sobre GANs se concentra em melhorá-las alterando sua estrutura ou treinamento, por exemplo, usando redes maiores ou diferentes funções de perda.

Em nosso artigo, a ser apresentado no workshop Bayesian Deep Learning no NeurIPS 2018, oferecemos uma ideia alternativa: alavancar o discriminador para colher amostras melhores do gerador após o treinamento ser feito.

Nosso trabalho fornece um método de amostragem complementar para trabalhos recentes muito semelhantes de pesquisadores do Google e da U.C. Berkeley na Amostragem de Rejeição Discriminadora (DRS).

A ideia principal do nosso método e da Discription Generation Rejection Sampling/Amostragem de Rejeição Discriminadora é usar a informação do discriminador treinado para escolher amostras do gerador que estão mais próximas das amostras da distribuição real de dados.

Normalmente, o discriminador é descartado após o treinamento porque o processo de treinamento deve codificar todo o conhecimento necessário do discriminador para o gerador.

No entanto, os geradores são frequentemente imperfeitos, enquanto os discriminadores contêm informações úteis, por isso vale a pena explorar como podemos amostrar de forma mais eficaz para melhorar as GANs já treinadas.

Nós fazemos uma amostragem a partir dessa distribuição usando o algoritmo Metropolis-Hastings e dublamos o modelo resultante do GAN Metropolis-Hastings (MH-GAN).

GANs reamostradas

O treinamento de GAN é frequentemente visto como um jogo entre dois adversários, onde o gerador tenta maximizar a probabilidade de o discriminador cometer um erro, enquanto o discriminador otimiza sua capacidade de separar amostras geradas e reais.

A figura 1, abaixo, mostra este processo, onde o gerador se move em direção ao mínimo da função valor (laranja) enquanto o discriminador se move em direção ao máximo (roxo).

Após o treino, as amostras do gerador podem ser facilmente desenhadas/extraídas alimentando o gerador com diferentes vetores de ruído.

Se o treinamento produzir um gerador perfeito, a função de densidade de probabilidade resultante do gerador pG deverá ser a mesma que a densidade dos dados reais. Infelizmente, muitas GANs atualmente empregadas não convergem para a distribuição de dados real e, portanto, coletar amostras diretamente desses geradores imperfeitos produzirá exemplos que não se parecem com os dados de treinamento originais.

A imperfeição de PG nos leva a considerar uma distribuição diferente: a densidade implicada pelo discriminador em relação ao gerador. Chamamos essa distribuição de pD e, geralmente, é mais próxima da distribuição real de dados que pG.

Isso ocorre porque treinar um discriminador é uma tarefa mais fácil do que treinar o gerador, portanto, o discriminador provavelmente tem informações que podem ajudar a corrigir o gerador.

Se tivermos um discriminador perfeito D para um gerador imperfeito G, tornando pD nossa função de densidade de geração de dados em vez de pG é equivalente a ter um novo gerador G’ que modele perfeitamente os dados reais, como na Figura 1, abaixo:

Figura 1: O diagrama de contorno mostra como o treinamento da GAN é um processo adverso, alternando entre minimizar e maximizar a função de valor da junção. O gerador G otimiza para laranja, e o discriminador D otimiza para roxo. Se o treinamento de GAN terminar em (D, G), onde G é imperfeito, mas D é perfeito para esse G, podemos obter um novo gerador G’ que modela perfeitamente a distribuição de dados por amostragem a partir da distribuição pD.

Mesmo que a distribuição pD possa combinar melhor com os dados, a extração de amostras não é tão simples quanto a amostragem do gerador. Felizmente, podemos extrair amostras desta distribuição usando métodos de amostragem, dois dos quais são amostragem de rejeição e Markov Chain Monte Carlo (MCMC).

Qualquer um pode ser usado como uma etapa de pós-processamento para melhorar a saída/o resultado do gerador; o método de Amostragem de Rejeição Discriminadora acima mencionado usa amostragem de rejeição, enquanto a nossa MH-GAN usa a abordagem MCMC da Metropolis-Hastings.

Amostragem de rejeição

A amostragem de rejeição envolve uma distribuição de proposta com uma etapa de aceitação ou rejeição, distorcendo a distribuição da proposta em uma nova distribuição que é colorida pela probabilidade de aceitação que muda no espaço de entrada.

Cada amostra extraída da proposta é aceita de forma independente, com probabilidade igual à razão entre a distribuição da amostra dividida pela distribuição da proposta multiplicada pelo multiplicador constante.

No cenário de amostragem a partir do pD definido por uma GAN, essa relação é pD/(MpG), onde o multiplicador M é o limite superior para a razão pD/pG sobre todas as amostras possíveis. M apresenta um desafio por duas razões: primeiro, não podemos conhecer o verdadeiro valor de M, portanto, ele deve ser estimado empiricamente como em DRS e, se nossa estimativa estiver desativada, não estaremos amostrando a partir da distribuição correta.

Em segundo lugar, mesmo com uma boa estimativa de M, podemos achar que ela é muito grande, o que efetivamente significa que a amostragem de rejeição sofre de um grande número de rejeições de amostra antes da primeira aceitação devido à alta dimensionalidade do espaço de amostragem.

Para contornar o problema do desperdício da amostra, a DRS tem uma heurística y adicional para alterar os escores do discriminador, tornando a amostra do modelo de uma distribuição diferente dos dados reais, mesmo quando D é perfeito.

Uma abordagem melhor: Metropolis-Hastings

Usamos Metropolis-Hastings (MH), que faz parte da família dos métodos MCMC. Essa família de métodos foi inventada justamente como uma substituta para a amostragem de rejeição em dimensões mais altas e funciona por amostragem a partir de uma distribuição de probabilidade possivelmente complicada, tomando várias amostras de uma distribuição de proposta.

O MH envolve retirar amostras K da distribuição proposta (ou seja, o gerador) e escolher uma amostra do K, decidindo sequencialmente se aceita a amostra atual ou se mantém a amostra previamente escolhida com base em uma regra de aceitação, como na Figura 2, abaixo:

Figura 2: MH pega amostras K em uma cadeia e aceita ou rejeita cada uma delas com base em uma regra de aceitação. A saída dessa cadeia é a última amostra aceita. Para MH-GAN, as amostras K são geradas a partir de G e as saídas de cadeias independentes são amostras do gerador G’ da MH-GAN.

A principal característica da MH-GAN é que a probabilidade de aceitação pode ser calculada apenas com a razão de densidades de probabilidade pD/pG que está prontamente disponível a partir da saída do discriminador da GAN! Começando com xk como a amostra atual, uma nova amostra x’ é aceita sobre a amostra atual xk com probabilidade ?:

Onde D é a pontuação do discriminador:

K é um hiperparâmetro e pode ser escolhido com base em trocas de velocidade/fidelidade. Pode ser mostrado que para um discriminador perfeito e como K → ∞, isso recupera a distribuição de dados real.

Detalhes de MH-GAN

Queremos destacar três detalhes importantes sobre o MH-GAN:

  • 1 – Amostras independentes: As amostras de ruído são extraídas independentemente K vezes e percorrem pelo gerador para gerar a cadeia à qual o seletor MH é aplicado. Cadeias independentes são usadas para obter amostras múltiplas do gerador G’ da MH-GAN.
  • 2 – Inicialização: É comum que o MH sofra de longos períodos de burn-in, em que um grande número de amostras deve ser rejeitado antes que um seja aceito devido a um mau ponto de partida. Para evitar isso, somos particulares sobre como inicializamos a cadeia de amostras. Podemos aproveitar os exemplos de dados reais à nossa disposição e inicializar cada cadeia com uma amostra escolhida aleatoriamente de dados reais. Se nenhuma amostra mais abaixo da cadeia for aceita, ainda podemos garantir que nenhuma amostra dos dados reais seja produzida reiniciando a amostragem de uma amostra gerada. Note que não precisamos de uma amostra real para inicialização, apenas sua pontuação de discriminador.
  • 3 – Calibração: Realisticamente, não podemos alcançar um D perfeito, mas podemos relaxar essa suposição devido à nossa etapa de calibração. Além disso, a suposição de um discriminador perfeito não é tão forte quanto possa parecer. Como o discriminador apenas avalia amostras do gerador e da amostra real inicial, ele só precisa ser preciso para amostras provenientes do gerador e da distribuição de dados reais. Não é estritamente necessário que os valores de D sejam precisos, pois o limite de decisão está correto no treinamento normal da GAN, mas a MH exige que os valores sejam bem calibrados em termos de razões de densidade de probabilidade, a fim de obter a taxa de aceitação correta. Para fazer a calibração, usamos um conjunto mantido (10 por cento dos dados de treinamento) com regressão isotônica para ajustar a pontuação discriminadora D.

Resultados Gaussianos 1-D e 2-D

Comparamos MH-GAN e DRS com um exemplo de brinquedo onde os dados reais são uma mistura univariada de quatro Gaussianos, e a densidade do gerador pG mostra a patologia comum de GAN de falta de um dos modos (Figura 3, abaixo).

Enquanto a DRS sem ? shift e o MH-GAN conseguem recuperar o modo ausente, a DRS com ? shift (a configuração padrão usada nesse papel) não pode. No entanto, a DRS sem ? shift aumenta o número de amostras necessárias antes que uma única seja aceita por uma ordem de grandeza.

Figura 3: Considere o caso em que os dados reais são uma mistura univariada de quatro Gaussianos, e a distribuição de densidade do gerador tem um modo ausente. MH-GAN e DRS sem ? shift são capazes de recuperar o modo, embora este último tenha um número muito maior de amostras rejeitadas antes da primeira aceitação.

Uma grade 5×5 de distribuições Gaussianas 2D é um exemplo de brinquedo popular na literatura existente. Na Figura 4, abaixo, comparamos amostras dos dados reais com amostras de uma base de GAN, DRS e MH-GAN em diferentes estágios de treinamento; todos os métodos usam uma rede neural com quatro camadas totalmente conectadas com ativações de Unidades Lineares Retificadas (ReLU), um tamanho de camada oculto de 100 e vetor de ruído de tamanho 2.

É visualmente claro que a DRS é uma melhoria na GAN base, mas é muito mais próximo da GAN base do que dos dados reais. O MH-GAN encontra todos os 25 modos e é mais visualmente semelhante às amostras reais.

Quantitativamente, também mostramos que o MH-GAN tem menor divergência entre Jensen e Shannon do que a GAN e a DRS de base.

Figura 4: Considere o caso em que as amostras reais são provenientes de 25 distribuições Gaussianas 2D. O GAN e a DRS parecem similares, pois ambos perdem alguns modos, embora as amostras DRS estejam mais concentradas em torno dos modos, enquanto o MH-GAN é mais similar aos dados reais. A figura à direita mostra que o MH-GAN apresenta menor divergência de Jensen-Shannon do que a GAN e a DRS de base.

Resultados CIFAR-10 e CelebA

Para testar em dados reais, usamos CIFAR-10 e CelebA com DCGAN e WGAN com penalidade gradiente. A tabela na Figura 5, abaixo, mostra as Pontuações Iniciais do MH-GAN calibrado.

As pontuações iniciais ignoram completamente os dados reais e são calculadas através da passagem de imagens geradas através de um Classificador de Iniciação pré-treinado (no conjunto de dados ImageNet); ele mede a confiança da rede que a entrada pertence a uma classe específica e a diversidade de classes previstas. A Pontuação Inicial é uma métrica falha, mas seu amplo uso a torna útil para comparação com outro trabalho.

O MH-GAN calibrado geralmente é melhor que os outros, mas isso não é consistente para todos os períodos. Uma possível explicação é que, para alguns períodos, a pontuação discriminadora é muito diferente da pontuação discriminadora ideal, tornando a probabilidade de aceitação menos precisa.

Figura 5: Resultados da Pontuação de Iniciação para CIFAR-10 e CelebA, comparando uma base de GAN, DRS e MH-GAN com e sem calibração (maior é melhor). Os resultados da tabela são obtidos no período 60.

Trabalho futuro

As Redes Genéricas Adversariais Metropolis-Hastings (MH-GANs) são uma maneira simples de melhorar o gerador de GANs usando o algoritmo Metropolis-Hastings como uma etapa de pós-processamento para o treinamento normal de GAN.

Os resultados em conjuntos de dados reais e de brinquedo mostram que a nossa MH-GAN oferece resultados superiores para basear as GANs e o método recente de Amostragem de Rejeição Discriminadora.

Nosso trabalho é uma prova de conceito em conjuntos de dados e redes menores, então os próximos passos óbvios seriam aplicar a MH-GAN aos conjuntos de dados e redes maiores usados ​​para resultados de última geração.

A ampliação de nossa abordagem para conjuntos de dados e GANs maiores deve ser direta – ela exige apenas pontuações de discriminador e amostras de G!

Além disso, a ideia de usar algoritmos MCMC para melhorar as GANs pode ser estendida para além do MH para algoritmos mais eficientes, como o Hamiltonian Monte Carlo.

Para mais detalhes e gráficos, não deixe de ler nosso artigo, e para reproduzir ou ampliar o trabalho, confira nossa implementação PyTorch de código aberto.

Se esse tipo de pesquisa te entusiasmar, candidate-se a um cargo na Uber AI Labs.

***

Este artigo é do Uber Engineering. Ele foi escrito por Ryan Turner, Jane Hung, Yunus Saatci e Jason Yosinski. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/mh-gan/