Scopri come le reti generative avversarie (GAN) creano dati sintetici realistici. Impara ad addestrare Ultralytics con set di dati potenziati da GAN per l'intelligenza artificiale visiva.
Le reti generative avversarie (GAN) sono un sofisticato framework nel campo dell' intelligenza artificiale (AI) progettato per generare nuove istanze di dati simili ai dati di addestramento. Introdotte in un articolo rivoluzionario di Ian Goodfellow e dei suoi colleghi nel 2014, le GAN operano secondo un principio unico di competizione tra due distinte reti neurali. Questa architettura è diventata una pietra miliare della moderna IA generativa, consentendo la creazione di immagini fotorealistiche, il miglioramento dei video e la sintesi di diversi set di dati di addestramento per complesse attività di apprendimento automatico.
Il meccanismo principale di una GAN coinvolge due modelli addestrati simultaneamente in un gioco a somma zero, spesso descritto utilizzando l' analogia di un falsario e un detective.
Durante il processo di addestramento, il generatore riduce al minimo la probabilità che il discriminatore crei una classificazione corretta , mentre il discriminatore massimizza quella stessa probabilità. Questo ciclo antagonistico continua fino a quando il sistema raggiunge un equilibrio di Nash, uno stato in cui il generatore produce dati così realistici che il discriminatore non è più in grado di distinguerli dagli esempi del mondo reale.
Le GAN hanno superato la teoria accademica per risolvere problemi pratici in vari settori, in particolare nella visione artificiale.
Sebbene entrambe siano tecnologie generative, è importante distinguere le GAN dai modelli di diffusione come quelli utilizzati in Stable Diffusion.
Un potente caso d'uso delle GAN è la generazione di set di dati sintetici per addestrare modelli di rilevamento di oggetti come YOLO26. Se non si dispone di immagini reali sufficienti di un difetto o oggetto specifico, una GAN può generare migliaia di variazioni etichettate. È quindi possibile gestire questi set di dati e addestrare il modello utilizzando la Ultralytics .
L'esempio seguente mostra come caricare un modello YOLO26 per l'addestramento su un set di dati, che potrebbe includere senza soluzione di continuità immagini sintetiche generate da GAN per migliorare le prestazioni:
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()
Nonostante le loro capacità, l'addestramento delle GAN richiede un'attenta messa a punto degli iperparametri. Problemi come quello del gradiente che svanisce possono verificarsi se il discriminatore apprende troppo rapidamente, senza fornire un feedback significativo al generatore. Inoltre, man mano che le GAN diventano più capaci di creare deepfake, l'industria si sta concentrando sempre più sull'etica dell'IA e sullo sviluppo di metodi per detect i contenuti detect .