Glossário

Rede Adversária Generativa (GAN)

Descobre como os GANs revolucionam a IA, gerando imagens realistas, melhorando os dados e impulsionando inovações nos cuidados de saúde, jogos e muito mais.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

As redes adversariais generativas (GAN) são uma classe poderosa de estruturas de aprendizagem automática, introduzidas pela primeira vez por Ian Goodfellow e os seus colegas em 2014. Pertencem ao domínio da IA generativa e são conhecidas pela sua capacidade de gerar novos dados que imitam alguma distribuição de dados de entrada. As GANs conseguem isso através de um processo contraditório que envolve duas redes neurais concorrentes: o Gerador e o Discriminador. Esta arquitetura única conduziu a avanços significativos, nomeadamente na visão computacional.

Como funcionam os GANS

A ideia central das GANs é um jogo competitivo entre duas redes:

  1. O Gerador: Esta rede tenta criar dados sintéticos (por exemplo, imagens, sons, texto) que parecem ter vindo do conjunto de dados real. Começa por receber ruído aleatório como entrada e tenta transformá-lo em resultados com aspeto realista.
  2. O Discriminador: Esta rede actua como um juiz. O seu objetivo é distinguir entre dados reais (dos dados de treino reais) e dados falsos produzidos pelo Gerador. Emite uma probabilidade que indica a probabilidade de uma amostra de entrada ser real.

Durante o treino, estas duas redes são treinadas em simultâneo. O Gerador aprende a produzir dados cada vez mais realistas para enganar o Discriminador, enquanto o Discriminador melhora a identificação de dados falsos. Esse processo usa a retropropagação para atualizar os pesos do modelo de ambas as redes com base em seu desempenho, orientado por uma função de perda específica. O sistema alcança um equilíbrio quando o Gerador cria dados tão convincentes que o Discriminador não consegue mais distinguir com segurança (não tem um desempenho melhor do que a adivinhação aleatória).

Conceitos-chave e desafios

Vários conceitos são fundamentais para compreender os GAN:

  • Perda Adversarial: As funções de perda são concebidas de modo a que a melhoria do Gerador corresponda ao agravamento do Discriminador, e vice-versa, conduzindo o processo de aprendizagem competitiva.
  • Treina a estabilidade: O treinamento de GANs pode ser notoriamente difícil. Os problemas mais comuns incluem:
    • Colapso do modo: O Gerador produz apenas uma variedade limitada de resultados, não conseguindo capturar toda a diversidade dos dados de treinamento. Saiba mais sobre o colapso do modo.
    • Desaparecimento de gradientes: O Discriminador torna-se demasiado bom muito rapidamente, fornecendo pouco feedback útil (gradientes) para o Gerador aprender. Vê o problema do gradiente de fuga.
    • Não-convergência: Os modelos podem não atingir um equilíbrio estável.

Os investigadores desenvolveram várias técnicas e modificações arquitecturais (como os GAN de Wasserstein ou WGAN) para atenuar estes desafios e melhorar a estabilidade da formação.

Aplicações no mundo real

As GANs têm encontrado inúmeras aplicações, especialmente na geração de conteúdos visuais:

  1. Geração de imagens realistas: GANs como StyleGAN e BigGAN podem gerar imagens fotorrealistas de alta resolução, como rostos humanos(This Person Does Not Exist é um exemplo popular), animais ou objetos. Esta capacidade é valiosa para criar arte, activos de jogos e potencialmente gerar dados sintéticos para aumentar os conjuntos de dados para modelos de treino como o Ultralytics YOLO.
  2. Tradução de imagem para imagem: Modelos como pix2pix e CycleGAN podem transformar imagens de um estilo para outro, como converter imagens de satélite em mapas, esboços em fotografias ou mudar as estações do ano em fotografias. Explora exemplos de tradução de imagens.
  3. Aumento de dados: Os GANs podem gerar variações de dados existentes, realizando efetivamente o aumento de dados. Isto é útil em domínios como a análise de imagens médicas, onde os dados reais podem ser escassos, ajudando a melhorar a robustez dos modelos de diagnóstico.

GANS vs. Outros Modelos Generativos

As GANs são distintas de outras abordagens generativas:

  • Autoencodificadores variacionais (VAEs): Os VAEs são outro tipo de modelo generativo, mas são treinados de forma diferente, optimizando um limite inferior da verosimilhança dos dados. Geralmente, produzem resultados mais suaves, mas potencialmente mais desfocados, em comparação com os GANs. Lê uma visão geral dos VAEs.
  • Modelos de difusão: Estes modelos, tal como o Stable Diffusion, funcionam adicionando gradualmente ruído aos dados e aprendendo depois a inverter o processo. Muitas vezes, obtêm resultados de última geração em termos de qualidade e diversidade de imagem, mas podem ser mais lentos na geração de amostras em comparação com os GANs. Vê a entrada do glossário sobre modelos de difusão.

Enquanto os GAN se concentram na geração, os modelos discriminativos visam classificar ou prever com base nos dados de entrada, como os modelos utilizados exclusivamente para classificação de imagens ou deteção de objectos. O Discriminador num GAN é essencialmente um modelo discriminativo, mas o seu papel faz parte da estrutura generativa mais alargada.

As GANs representam um marco significativo na aprendizagem profunda, alargando os limites do potencial criativo da IA. Podes aprofundar a questão lendo o artigo original sobre Redes Adversárias Generativas. Para implementações práticas, explora recursos como os tutoriais de GAN doTensorFlow ou os exemplos doPyTorch.

Lê tudo