Scopri come gli algoritmi evolutivi utilizzano la selezione naturale per risolvere i problemi dell'intelligenza artificiale. Impara a ottimizzare gli iperparametri Ultralytics e a migliorare le prestazioni del modello.
Gli algoritmi evolutivi (EA) sono una potente famiglia di algoritmi di ottimizzazione che emulano i principi biologici della selezione naturale e della genetica per risolvere complessi problemi computazionali. A differenza delle tecniche matematiche tradizionali che si basano su derivate calcolate, come la discesa stocastica del gradiente (SGD), gli EA sono progettati per navigare in spazi di ricerca vasti, accidentati o poco conosciuti. Essi operano mantenendo una popolazione di potenziali soluzioni che competono, si riproducono e mutano nel tempo. Questo approccio li rende particolarmente efficaci per i compiti nell'ambito dell' intelligenza artificiale (AI) in cui la soluzione "migliore" è difficile da determinare analiticamente, consentendo ai sistemi di evolversi iterativamente verso un risultato ottimale.
La funzionalità di un algoritmo evolutivo si basa sul concetto di sopravvivenza del più forte. Il processo si muove attraverso un ciclo di operatori progettati per imitare l'evoluzione genetica naturale, perfezionando gradualmente le soluzioni candidate:
Gli algoritmi evolutivi sono versatili e sono stati applicati con successo a vari ambiti nell'ambito del deep learning (DL) e dell'ingegneria.
Una delle applicazioni più pratiche degli EA è
ottimizzazione degli iperparametriLe moderne reti neurali
richiedono la configurazione di decine di parametri, quali velocità di apprendimento, decadimento del peso e slancio, che influiscono in modo significativo sulle
prestazioni. Gli EA possono automatizzare questo noioso processo di tentativi ed errori evolvendo le impostazioni di configurazione. Ad
esempio, il tune() Il metodo nella Ultralytics utilizza un algoritmo genetico per individuare i migliori
iperparametri di addestramento per YOLO26 modelli su set di dati personalizzati
.
Gli EA sono una pietra miliare della ricerca dell'architettura neurale (NAS). Invece di ingegneri umani che progettano manualmente la struttura di una rete neurale (NN), un algoritmo evolutivo può "far crescere" l'architettura. Esso testa diverse combinazioni di livelli, neuroni e connessioni, sviluppando strutture efficienti che bilanciano velocità e precisione. Questa tecnica ha portato alla creazione di backbone altamente efficienti , come EfficientNet, ottimizzati per specifici vincoli hardware.
Sebbene entrambe siano strategie di ottimizzazione ispirate alla natura, è utile distinguere gli EA dalla Swarm Intelligence (SI).
I professionisti possono sfruttare direttamente gli algoritmi genetici per ottimizzare i propri modelli di rilevamento degli oggetti. Ultralytics
tune Il metodo esegue un processo evolutivo per mutare gli iperparametri su diverse generazioni,
identificando automaticamente le impostazioni che producono le prestazioni più elevate sui dati di convalida.
from ultralytics import YOLO
# Load the standard YOLO26 model
model = YOLO("yolo26n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters (lr, momentum, etc.) over 30 generations
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)
Questo perfezionamento automatizzato consente agli sviluppatori di andare oltre le ipotesi manuali. Per i team che stanno ampliando le proprie operazioni, la gestione di questi esperimenti e il monitoraggio dell'evoluzione delle prestazioni del modello possono essere semplificati utilizzando Ultralytics , che visualizza le metriche di formazione e facilita l' implementazione del modello.