Explore como as redes adversárias generativas (GANs) criam dados sintéticos realistas. Aprenda a treinar Ultralytics com conjuntos de dados aprimorados por GAN para IA de visão.
As redes adversárias generativas (GANs) são uma estrutura sofisticada no campo da inteligência artificial (IA) projetada para gerar novas instâncias de dados que se assemelham aos seus dados de treino. Introduzidas num artigo inovador de Ian Goodfellow e seus colegas em 2014, as GANs operam com base num princípio único de competição entre duas redes neurais distintas. Essa arquitetura tornou-se uma pedra angular da IA generativa moderna, permitindo a criação de imagens fotorrealistas, aprimoramento de vídeo e síntese de diversos conjuntos de dados de treino para tarefas complexas de aprendizagem automática.
O mecanismo central de uma GAN envolve dois modelos treinados simultaneamente num jogo de soma zero, frequentemente descrito usando a analogia de um falsificador e um detetive.
Durante o processo de treino, o gerador minimiza a probabilidade de o discriminador criar uma classificação correta , enquanto o discriminador maximiza essa mesma probabilidade. Esse ciclo adversário continua até que o sistema atinja um Equilíbrio de Nash, um estado em que o gerador produz dados tão realistas que o discriminador não consegue mais distingui-los dos exemplos do mundo real.
As GANs transcenderam a teoria académica para resolver problemas práticos em vários setores, particularmente na visão computacional.
Embora ambas sejam tecnologias generativas, é importante distinguir as GANs dos modelos de difusão, como os utilizados na Stable Diffusion.
Um caso de uso poderoso para GANs é a geração de conjuntos de dados sintéticos para treinar modelos de detecção de objetos como o YOLO26. Se você não tiver imagens reais suficientes de um defeito ou objeto específico, um GAN pode gerar milhares de variações rotuladas. Você pode então gerenciar esses conjuntos de dados e treinar seu modelo usando a Ultralytics .
O exemplo a seguir demonstra como carregar um modelo YOLO26 para treinar num conjunto de dados, que poderia incluir perfeitamente imagens sintéticas geradas por GAN para aumentar o desempenho:
from ultralytics import YOLO
# Load the YOLO26 model (Latest stable Ultralytics model)
model = YOLO("yolo26n.pt")
# Train the model on a dataset configuration file
# The dataset path defined in 'coco8.yaml' can contain both real and GAN-generated images
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
# Verify the model performance on validation data
metrics = model.val()
Apesar das suas capacidades, o treino de GANs requer um ajuste cuidadoso dos hiperparâmetros. Problemas como o problema do gradiente desaparecido podem ocorrer se o discriminador aprender muito rapidamente, não fornecendo feedback significativo ao gerador. Além disso, à medida que as GANs se tornam mais capazes de criar deepfakes, a indústria está cada vez mais focada na ética da IA e no desenvolvimento de métodos para detect conteúdo detect .