Generative Adversarial Network: O que é e como funciona
Generative Adversarial Network (GAN) é um modelo moderno de aprendizado de máquina que utiliza duas redes neurais para gerar dados sintéticos realistas. Essas redes são capazes de criar imagens, textos e até música. O conceito de Generative Adversarial Network tem diversas aplicações, como na geração de imagens e vídeos ou em áreas como arte, design e data augmentation.
O que significa Generative Adversarial Network?
Uma Generative Adversarial Network (rede generativa adversária) é uma estrutura para a geração de dados sintéticos, no campo do aprendizado de máquina, que é utilizada sobretudo para treinar redes na área de aprendizado não supervisionado. Esse modelo de aprendizado é formado por duas redes neurais artificiais – o gerador e o discriminador – que trabalham em oposição uma à outra:
- Gerador: A função do gerador é gerar novas instâncias de dados que pareçam enganosamente reais – isto é, que sejam o mais semelhantes possível ao conjunto de dados original. A rede neural generativa começa com um ruído aleatório e, graças a um treinamento contínuo, é progressivamente aprimorada. Nesse processo, a partir de um vetor, o gerador aprende a mapear variáveis latentes no espaço de resultados específico, ou seja, a gerar resultados de acordo com uma distribuição definida. O objetivo final da rede generativa é criar dados artificiais que consigam enganar o discriminador.
- Discriminador: Utilizando um conjunto de dados conhecido, esta rede é treinada para distinguir dados reais de dados sintéticos, até alcançar um grau aceitável de precisão. Em seguida, o discriminador avalia a autenticidade dos conjuntos de dados que lhe são apresentados. Ou seja, ele determina se essas instâncias de dados podem ser atribuídas ao conjunto de dados original ou se constituem falsificações.
O treinamento das duas redes adversárias ocorre simultaneamente. O gerador continua “competindo” com o discriminador até gerar dados que este não consiga mais reconhecer como falsos. Por meio de uma retropropagação (backpropagation), os pesos de ambas as redes são otimizados em cada etapa do treinamento. Ao longo desse processo, as duas redes neurais vão se aprimorando mutuamente. Assim, com tempo de treinamento suficiente, a distribuição gerada equipara-se à real. Após a conclusão do treinamento, o gerador pode ser usado para criar dados artificiais com aspecto realista.
Inicialmente, GANs eram usadas apenas como modelo para aprendizado não supervisionado, mas, com o passar do tempo, também se revelaram úteis para aprendizado semissupervisionado, aprendizado supervisionado e aprendizado por reforço.
Diferenças entre GAN e outros modelos de aprendizado de máquina
Em vários aspectos, Generative Adversarial Networks são diferentes de outros métodos de aprendizado de máquina. GANs funcionam como modelos generativos implícitos – isto é, não modelam uma função de verossimilhança (likelihood function) direta nem fornecem meios para encontrar a variável latente. Em vez disso, as GANs geram novas instâncias de dados por meio da competição entre as duas redes adversárias.
Ao contrário de outras abordagens, que geram dados incrementalmente, as GANs conseguem gerar uma amostra completa em uma única execução. Além disso, não há restrições quanto ao tipo de função utilizada pela rede.
Como a GAN é treinada?
O processo de treinamento para Generative Adversarial Networks consiste de várias etapas. A seguir apresentamos, de forma resumida, como funciona cada uma delas:
- Inicialização: Primeiro, as duas redes neurais – o gerador e o discriminador – são criadas e inicializadas com parâmetros aleatórios.
- Geração de dados falsos: O gerador recebe como input um vetor aleatório, que ele usa para gerar dados sintéticos. Já que o treinamento ainda não ocorreu, o resultado inicial é apenas um ruído.
- Avaliação pelo discriminador: O discriminador recebe tanto amostras de dados reais quanto conjuntos de dados criados pelo gerador. Sua tarefa é distinguir os dados legítimos dos falsos. No entanto, para operar com precisão, primeiro o discriminador também deve ser treinado. Ou seja, o resultado inicial dessa rede também é impreciso.
- Feedback e atualização dos pesos: Os parâmetros de ambas as redes são ajustados por retropropagação. Enquanto o gerador vai aprendendo a gerar dados mais realistas, o discriminador aprimora sua capacidade de distinguir as instâncias de dados reais das artificiais.
- Iteração: A Generative Adversarial Network vai repetindo as etapas 2, 3 e 4 até que o gerador gere dados tão realistas que o discriminador não consiga mais identificá-los confiavelmente como sintéticos, ou até que o modelo atinja a qualidade desejada.
Campos de aplicação da GAN
Dentro do segmento de inteligência artificial (IA), as Generative Adversarial Networks já são usadas com sucesso em diversas áreas. Estes são alguns dos principais campos de aplicação:
- Geração de imagens e vídeos: Generative Adversarial Networks são empregadas na produção cinematográfica e no desenvolvimento de games, para criar imagens e sequências de vídeo altamente realistas. Esse recurso também ajuda empresas a representarem visualmente seus produtos, como sapatos ou roupas. Também é possível usar GANs para criar ambientes virtuais.
- Medicina: No setor de imagiologia médica, GANs são utilizadas tanto no treinamento de profissionais, quanto para aprimorar processos de diagnóstico. Além disso, por questões de privacidade, muitos pesquisadores têm dificuldade de obter imagens médicas para fins de pesquisa. Atualmente, Generative Adversarial Networks são usadas para resolver esse problema.
- Data augmentation (aumento de dados): A estrutura pode ser empregada para fornecer dados de treinamento adicionais para modelos de aprendizado de máquina. Isso é especialmente prático em situações em que existem poucos exemplos reais.
- Reconhecimento e síntese de fala: Outra utilidade das GANs é gerar linguagem natural e otimizar sistemas de síntese de fala. Diferentemente das implementações convencionais de áudio e fala, as Generative Adversarial Networks são capazes de gerar novas amostras.
- Ciência: Em contextos científicos, Generative Adversarial Networks também podem fornecer um apoio decisivo. Por exemplo, GANs permitem reconstituir os campos de velocidade e campos escalares em fluxos turbulentos de fluidos. Outro exemplo é o uso dessa estrutura para gerar novas moléculas para diversos alvos proteicos, relacionados a doenças inflamatórias, cânceres e fibroses.
- Arte e design: Artistas e designers podem utilizar a arquitetura GAN na criação de obras e produtos inovadores.
Vantagens e desvantagens da GAN
Gerando dados artificiais realistas, Generative Adversarial Networks inauguram possibilidades impressionantes, sobretudo nas áreas de criação de imagens e vídeos. Uma grande vantagem dessas redes é sua capacidade de gerar dados de alta qualidade sem modelos de probabilidade explícitos, o que diferencia as GANs de muitos outros modelos generativos de aprendizado. Além disso, diversas funções podem ser integradas ao modelo, possibilitando uma vasta gama de cenários de aplicação.
Por outro lado, um problema crucial é a estabilidade do processo de treinamento. Durante esse processo, existe o risco do chamado colapso de modo (mode collapse), um fenômeno que faz com que o gerador produza só uma pequena variedade de dados. O problema ocorre, principalmente, quando o gerador é treinado com demasiada frequência, sem uma atualização do discriminador. Além disso, GANs também podem ser perigosas se usadas para fins maliciosos – como criar deepfakes enganadores, semear desinformação ou para roubo de identidade.
Vantagens | Desvantagens |
---|---|
Dados de alta qualidade | Processo de treinamento instável |
Modelo flexível | Também pode ser usado para deepfakes e outras fraudes |
Útil em diversos cenários de aplicação |