O que é um GAN?

GANLeave a Comment on O que é um GAN?

O que é um GAN?

O que é um GAN?

Muitos sistemas de aprendizado de máquina analisam algum tipo de entrada complicada (digamos, uma imagem) e produzem uma saída simples (um rótulo como “gato”). Por outro lado, o objetivo de um modelo generativo é algo parecido com o oposto: pegar um pequeno dado de entrada – talvez alguns números aleatórios – e produzir um resultado complexo, como a imagem de um rosto de aparência realista. 

Uma rede adversária generativa (GAN) é um tipo especialmente eficaz de modelo generativo, introduzido há apenas alguns anos , que tem sido um assunto de intenso interesse na comunidade de aprendizado de máquina.

Você pode estar se perguntando por que queremos um sistema que produza imagens realistas ou simulações plausíveis de qualquer outro tipo de dados. Além do desafio intelectual intrínseco, esta acaba por ser uma ferramenta surpreendentemente útil, com aplicações que vão desde a arte até ao melhoramento de imagens desfocadas .

Como funciona um GAN?

A ideia de uma máquina “criando” imagens realistas do zero pode parecer mágica, mas os GANs usam dois truques principais para transformar em realidade um objetivo vago e aparentemente impossível.

A primeira ideia, que não é nova nos GANs, é usar a aleatoriedade como ingrediente. Em um nível básico, isso faz sentido: não seria muito interessante se você construísse um sistema que produzisse a mesma face toda vez que fosse executado. Igualmente importante, porém, é que pensar em termos de probabilidades também nos ajuda a traduzir o problema da geração de imagens numa estrutura matemática natural. 

Obviamente, não queremos escolher imagens de maneira uniforme e aleatória, pois isso apenas produziria ruído. Em vez disso, queremos que nosso sistema aprenda quais imagens provavelmente são rostos e quais não são. Matematicamente, isto envolve modelar uma distribuição de probabilidade em imagens, ou seja, uma função que nos diz quais imagens provavelmente são rostos e quais não são. Esse tipo de problema – modelar uma função em um espaço de alta dimensão – é exatamente o tipo de coisa para a qual as redes neurais foram feitas.

O grande insight que define um GAN é configurar esse problema de modelagem como uma espécie de concurso. É daí que vem a parte “adversária” do nome. A ideia chave é construir não uma, mas duas redes concorrentes: um gerador e um discriminador . O gerador tenta criar resultados sintéticos aleatórios (por exemplo, imagens de rostos), enquanto o discriminador tenta diferenciá-los dos resultados reais (digamos, um banco de dados de celebridades). A esperança é que, à medida que as duas redes se enfrentam, ambas melhorem cada vez mais – com o resultado final sendo uma rede geradora que produz resultados realistas.

Resumindo: redes adversárias gerativas são redes neurais que aprendem a escolher amostras de uma distribuição especial (a parte “geradora” do nome), e fazem isso estabelecendo uma competição (daí “adversarial” ).

O que está acontecendo na visualização?

GANs são feras complicadas e a visualização tem muita coisa acontecendo. Aqui estão as idéias básicas.

Primeiro, não estamos visualizando nada tão complexo quanto gerar imagens realistas. Em vez disso, mostramos uma GAN que aprende uma distribuição de pontos em apenas duas dimensões . Não existe uma aplicação real de algo tão simples, mas é muito mais fácil mostrar a mecânica do sistema. 

Por um lado, as distribuições de probabilidade no antigo espaço 2D (x,y) são muito mais fáceis de visualizar do que as distribuições no espaço de imagens de alta resolução.

Escolha uma distribuição de dados.

Na parte superior, você pode escolher uma distribuição de probabilidade para o GAN aprender, que visualizamos como um conjunto de amostras de dados . Depois de escolher um, nós o mostraremos em dois locais: uma versão menor na visualização do gráfico de visão geral do modelo à esquerda; e uma versão maior na visualização de distribuições em camadas à direita.

Figura 1. A distribuição dos dados selecionados é mostrada em dois locais.

Projetamos as duas visualizações para ajudá-lo a entender melhor como uma GAN funciona para gerar amostras realistas:
(1) O gráfico de visão geral do modelo mostra a arquitetura de uma GAN, seus principais componentes e como eles estão conectados, e também visualiza os resultados produzidos pelos componentes ;
(2) A visualização das distribuições em camadas sobrepõe as visualizações dos componentes do gráfico de visão geral do modelo, para que você possa comparar mais facilmente as saídas dos componentes ao analisar o modelo.

Deixe o treinamento começar.

Para começar a treinar o modelo GAN, clique no botão play ( ) na barra de ferramentas. Além de amostras reais da distribuição escolhida, você também verá amostras falsas geradas pelo modelo. As posições das amostras falsas são continuamente atualizadas à medida que o treinamento avança. 

Um GAN perfeito criará amostras falsas cuja distribuição é indistinguível das amostras reais. Quando isso acontecer, na visualização das distribuições em camadas, você verá que as duas distribuições se sobrepõem perfeitamente.

Figura 2. Posições de amostras falsas atualizadas continuamente à medida que o treinamento avança. Então, as distribuições das amostras reais e falsas se sobrepõem perfeitamente.

Visualizando gerador e discriminador.

Lembre-se de que o gerador e o discriminador dentro de um GAN estão tendo uma pequena competição, competindo entre si, atualizando iterativamente as amostras falsas para se tornarem mais semelhantes às reais . GAN Lab visualiza as interações entre eles.

Gerador. Conforme descrito anteriormente, o gerador é uma função que transforma uma entrada aleatória em uma saída sintética. No GAN Lab, uma entrada aleatória é uma amostra 2D com um valor (x, y) (extraído de uma distribuição uniforme ou gaussiana), e a saída também é uma amostra 2D, mas mapeada em uma posição diferente, que é uma amostra falsa

À medida que a função mapeia posições no espaço de entrada em novas posições, se visualizarmos a saída, toda a grade, agora consistindo de quadriláteros irregulares, pareceria uma versão distorcida da grade regular original. A área (ou densidade) de cada célula (deformada) agora mudou e codificamos a densidade como opacidade, portanto, uma opacidade mais alta significa mais amostras em um espaço menor. 

Uma variedade muito refinada terá quase a mesma aparência que a visualização das amostras falsas. Esta visualização mostra como o gerador aprende uma função de mapeamento para fazer com que sua saída pareça semelhante à distribuição das amostras reais .

Figura 3. A transformação de dados do gerador é visualizada como uma variedade, que transforma o ruído de entrada (mais à esquerda) em amostras falsas (mais à direita).

Discriminador. À medida que o gerador cria amostras falsas , o discriminador , um classificador binário, tenta diferenciá-las das amostras reais . O GAN Lab visualiza seu limite de decisão como um mapa de calor 2D (semelhante ao TensorFlow Playground ). 

As cores de fundo de uma célula da grade codificam os valores de confiança dos resultados do classificador. Verde mais escuro significa que as amostras naquela região têm maior probabilidade de serem reais; roxo mais escuro , é mais provável que seja falso. À medida que um GAN se aproxima do ideal, todo o mapa de calor ficará mais cinza em geral, sinalizando que o discriminador não consegue mais distinguir facilmente os exemplos falsos dos reais.

Figura 4. O desempenho do discriminador pode ser interpretado através de um mapa de calor 2D. Aqui, o discriminador tem um bom desempenho, já que a maioria das amostras reais está na região verde de sua superfície de classificação (e as amostras falsas na região roxa).

Compreender a interação entre gerador e discriminador.

Em uma GAN, suas duas redes influenciam-se mutuamente à medida que se atualizam iterativamente. Um ótimo uso do GAN Lab é usar sua visualização para aprender como o gerador se atualiza gradativamente para se aprimorar e gerar amostras falsas cada vez mais realistas. O gerador faz isso tentando enganar o discriminador . O valor da perda do gerador diminui quando o discriminador classifica amostras falsas como reais (ruim para o discriminador, mas bom para o gerador).

Figura 5. As direções de movimento das amostras falsas são indicadas pelos gradientes do gerador (linhas rosa) com base nas localizações atuais dessas amostras e na superfície de classificação atual do discriminador (visualizada pelas cores de fundo).

Dessa forma, o gerador melhora gradativamente para produzir amostras ainda mais realistas. 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top