Fundamentos de IA

O que ÃĐ uma Rede AdversÃĄria Generativa (GAN)?

mm
Adicione Unite.AI às suas fontes preferidas no Google

Redes AdversÃĄrias Generativas (GANs) sÃĢo tipos de arquiteturas de redes neurais capazes de gerar novos dados que conformam aos padrÃĩes aprendidos. GANs podem ser usadas para gerar imagens de rostos humanos ou outros objetos, realizar traduçÃĢo de texto para imagem, converter um tipo de imagem para outro e melhorar a resoluçÃĢo de imagens (super resoluçÃĢo) entre outras aplicaçÃĩes. Como GANs podem gerar dados completamente novos, elas estÃĢo à frente de muitos sistemas, aplicaçÃĩes e pesquisas de ponta em IA. No entanto, como exatamente as GANs funcionam? Vamos explorar como as GANs funcionam e dar uma olhada em algumas de suas principais aplicaçÃĩes.

Definindo Modelos Generativos e GANs

Uma GAN ÃĐ um exemplo de modelo generativo. A maioria dos modelos de IA pode ser dividida em uma de duas categorias: modelos supervisionados e nÃĢo supervisionados. Modelos de aprendizado supervisionado sÃĢo tipicamente usados para discriminar entre diferentes categorias de entradas, para classificar. Em contraste, modelos nÃĢo supervisionados sÃĢo tipicamente usados para resumir a distribuiçÃĢo dos dados, frequentemente aprendendo uma distribuiçÃĢo normal dos dados. Como eles aprendem a distribuiçÃĢo de um conjunto de dados, eles podem tirar amostras dessa distribuiçÃĢo aprendida e gerar novos dados.

Diferentes modelos generativos tÊm diferentes mÃĐtodos de geraçÃĢo de dados e cÃĄlculo de distribuiçÃĩes de probabilidade. Por exemplo, o modelo Naive Bayes opera calculando uma distribuiçÃĢo de probabilidade para as vÃĄrias características de entrada e a classe generativa. Quando o modelo Naive Bayes renderiza uma previsÃĢo, ele calcula a classe mais provÃĄvel, tomando a probabilidade das diferentes variÃĄveis e combinando-as. Outros modelos generativos nÃĢo baseados em aprendizado profundo incluem Modelos de Mistura Gaussiana e AlocaçÃĢo Latente de Dirichlet (LDA). Modelos generativos baseados em aprendizado profundo incluem MÃĄquinas de Boltzmann Restritas (RBMs), Autoencoders Variacionais (VAEs) e, claro, GANs.

Redes AdversÃĄrias Generativas foram primeiramente propostas por Ian Goodfellow em 2014, e elas foram aprimoradas por Alec Redford e outros pesquisadores em 2015, levando a uma arquitetura padronizada para GANs. GANs sÃĢo na verdade duas redes diferentes unidas. GANs sÃĢo compostas por duas metades: um modelo de geraçÃĢo e um modelo de discriminaçÃĢo, tambÃĐm referido como gerador e discriminador.

A Arquitetura GAN

Redes AdversÃĄrias Generativas sÃĢo construídas a partir de um modelo de geraçÃĢo e um modelo de discriminaçÃĢo juntos. O trabalho do modelo de geraçÃĢo ÃĐ criar novos exemplos de dados, com base nos padrÃĩes que o modelo aprendeu a partir dos dados de treinamento. O trabalho do modelo de discriminaçÃĢo ÃĐ analisar imagens (supondo que seja treinado em imagens) e determinar se as imagens sÃĢo geradas/falsas ou genuínas.

Os dois modelos sÃĢo colocados um contra o outro, treinados de forma teÃģrica de jogos. O objetivo do modelo de geraçÃĢo ÃĐ produzir imagens que enganem seu adversÃĄrio – o modelo de discriminaçÃĢo. Enquanto isso, o objetivo do modelo de discriminaçÃĢo ÃĐ superar seu adversÃĄrio, o modelo de geraçÃĢo, e capturar as imagens falsas que o gerador produz. O fato de os modelos serem colocados um contra o outro resulta em uma corrida armamentista, onde ambos os modelos melhoram. O discriminador recebe feedback sobre quais imagens eram genuínas e quais imagens foram produzidas pelo gerador, enquanto o gerador ÃĐ alimentado com informaçÃĩes sobre quais de suas imagens foram marcadas como falsas pelo discriminador. Ambos os modelos melhoram durante o treinamento, com o objetivo de treinar um modelo de geraçÃĢo que possa produzir dados falsos que sejam basicamente indistinguíveis de dados reais e genuínos.

Uma vez que uma distribuiçÃĢo normal de dados foi criada durante o treinamento, o modelo de geraçÃĢo pode ser usado. O modelo de geraçÃĢo ÃĐ inicialmente alimentado com um vetor aleatÃģrio, que ele transforma com base na distribuiçÃĢo normal. Em outras palavras, o vetor semeia a geraçÃĢo. Quando o modelo ÃĐ treinado, o espaço do vetor serÃĄ uma versÃĢo comprimida, ou representaçÃĢo, da distribuiçÃĢo dos dados. A versÃĢo comprimida da distribuiçÃĢo dos dados ÃĐ referida como espaço latente, ou variÃĄveis latentes. Mais tarde, o modelo GAN pode entÃĢo tomar a representaçÃĢo do espaço latente e desenhar pontos a partir dele, que podem ser dados ao modelo de geraçÃĢo e usados para gerar novos dados que sejam muito semelhantes aos dados de treinamento.

O modelo de discriminaçÃĢo ÃĐ alimentado com exemplos de todo o domínio de treinamento, que ÃĐ composto por exemplos de dados reais e gerados. Os exemplos reais estÃĢo contidos no conjunto de dados de treinamento, enquanto os dados falsos sÃĢo produzidos pelo modelo de geraçÃĢo. O processo de treinamento do modelo de discriminaçÃĢo ÃĐ exatamente o mesmo que o treinamento de um modelo de classificaçÃĢo binÃĄria bÃĄsico.

Processo de Treinamento GAN

Vamos dar uma olhada no processo de treinamento inteiro para uma tarefa hipotÃĐtica de geraçÃĢo de imagens.

Para começar, a GAN ÃĐ treinada usando imagens reais genuínas como parte do conjunto de dados de treinamento. Isso configura o modelo de discriminaçÃĢo para distinguir entre imagens geradas e reais. Ele tambÃĐm produz a distribuiçÃĢo de dados que o gerador usarÃĄ para produzir novos dados.

O gerador recebe um vetor de dados numÃĐricos aleatÃģrios e os transforma com base na distribuiçÃĢo normal, retornando uma imagem. A imagem gerada, ao lado de algumas imagens genuínas do conjunto de dados de treinamento, ÃĐ alimentada no modelo de discriminaçÃĢo. O discriminador renderiza uma previsÃĢo probabilística sobre a natureza das imagens que recebe, produzindo um valor entre 0 e 1, onde 1 ÃĐ tipicamente imagens autÊnticas e 0 ÃĐ uma imagem falsa.

HÃĄ um loop de feedback duplo em jogo, pois o discriminador ÃĐ alimentado com a verdade dos dados, enquanto o gerador ÃĐ dado feedback sobre seu desempenho pelo discriminador.

Os modelos de geraçÃĢo e discriminaçÃĢo estÃĢo jogando um jogo de soma zero um contra o outro. Um jogo de soma zero ÃĐ aquele em que os ganhos de um lado vÊm à custa do outro lado (a soma ÃĐ zero em ambos os lados). Quando o modelo de discriminaçÃĢo consegue distinguir com sucesso entre exemplos reais e falsos, nenhuma alteraçÃĢo ÃĐ feita nos parÃĒmetros do discriminador. No entanto, atualizaçÃĩes grandes sÃĢo feitas nos parÃĒmetros do modelo quando ele falha em distinguir entre imagens reais e falsas. O inverso ÃĐ verdadeiro para o modelo de geraçÃĢo: ele ÃĐ penalizado (e seus parÃĒmetros sÃĢo atualizados) quando falha em enganar o modelo de discriminaçÃĢo, mas caso contrÃĄrio, seus parÃĒmetros sÃĢo inalterados (ou ele ÃĐ recompensado).

Idealmente, o gerador ÃĐ capaz de melhorar seu desempenho a um ponto em que o discriminador nÃĢo consegue discernir entre as imagens falsas e reais. Isso significa que o discriminador sempre renderizarÃĄ probabilidades de 50% para imagens reais e falsas, significando que as imagens geradas devem ser indistinguíveis das imagens genuínas. Na prÃĄtica, as GANs normalmente nÃĢo atingem esse ponto. No entanto, o modelo de geraçÃĢo nÃĢo precisa criar imagens perfeitamente semelhantes para ainda ser Útil para as muitas tarefas para as quais as GANs sÃĢo usadas.

AplicaçÃĩes GAN

As GANs tÊm uma variedade de aplicaçÃĩes diferentes, a maioria delas girando em torno da geraçÃĢo de imagens e componentes de imagens. As GANs sÃĢo comumente usadas em tarefas em que os dados de imagem necessÃĄrios estÃĢo faltando ou limitados de alguma forma, como um mÃĐtodo de gerar os dados necessÃĄrios. Vamos examinar alguns dos casos de uso comuns para as GANs.

Gerando Novos Exemplos Para Conjuntos de Dados

As GANs podem ser usadas para gerar novos exemplos para conjuntos de dados de imagem simples. Se vocÊ sÃģ tiver alguns exemplos de treinamento e precisar de mais, as GANs podem ser usadas para gerar novos dados de treinamento para um classificador de imagens, gerando novos exemplos de treinamento em diferentes orientaçÃĩes e ÃĒngulos.

Gerando Rostos Humanos Únicos

A mulher nesta foto nÃĢo existe. A imagem foi gerada por StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Domínio PÚblico (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Quando suficientemente treinadas, as GANs podem ser usadas para gerar imagens de rostos humanos extremamente realistas. Essas imagens geradas podem ser usadas para ajudar a treinar sistemas de reconhecimento facial.

TraduçÃĢo de Imagem para Imagem

As GANs se destacam na traduçÃĢo de imagem. As GANs podem ser usadas para colorir imagens em preto e branco, traduzir esboços ou desenhos para imagens fotogrÃĄficas, ou converter imagens de um tipo para outro.

TraduçÃĢo de Texto para Imagem

A traduçÃĢo de texto para imagem ÃĐ possível por meio do uso de GANs. Quando fornecido com texto que descreve uma imagem e a imagem acompanhante, uma GAN pode ser treinada para criar uma nova imagem quando fornecida com uma descriçÃĢo da imagem desejada.

EdiçÃĢo e Reparo de Imagens

As GANs podem ser usadas para editar fotografias existentes. As GANs removem elementos como chuva ou neve de uma imagem, mas elas tambÃĐm podem ser usadas para reparar imagens antigas, danificadas ou corrompidas.

Super ResoluçÃĢo

A super resoluçÃĢo ÃĐ o processo de tomar uma imagem de baixa resoluçÃĢo e inserir mais pixels na imagem, melhorando a resoluçÃĢo da imagem. As GANs podem ser treinadas para tomar uma imagem e gerar uma versÃĢo de maior resoluçÃĢo da imagem.

As GANs tambÃĐm podem ser usadas para reparar imagens antigas, danificadas ou corrompidas. Super ResoluçÃĢo Super resoluçÃĢo ÃĐ o processo de tomar uma imagem de baixa resoluçÃĢo e inserir mais pixels na imagem, melhorando a resoluçÃĢo da imagem. GANs podem ser treinadas para tomar uma imagem e gerar uma versÃĢo de maior resoluçÃĢo da imagem. GANs tambÃĐm podem ser usadas para reparar imagens antigas, danificadas ou corrompidas.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tÃģpicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.