Glossario

Algoritmi evolutivi

Scopri come gli algoritmi evolutivi ottimizzano le soluzioni di AI e ML, dalla regolazione degli iperparametri alla robotica, utilizzando strategie ispirate alla natura.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Gli algoritmi evolutivi (EA) sono una classe di tecniche di ottimizzazione e ricerca ispirate ai principi dell'evoluzione biologica, come la selezione naturale, la mutazione e la riproduzione. Sono particolarmente efficaci per risolvere problemi complessi in cui gli algoritmi di ottimizzazione tradizionali potrebbero avere difficoltà, come quelli con spazi di ricerca non lineari, non differenziabili o ad alta densità. Gli EA mantengono una popolazione di potenziali soluzioni e le perfezionano iterativamente nel corso delle generazioni, con l'obiettivo di trovare soluzioni ottimali o quasi ottimali in base a un criterio di fitness definito. Questo approccio li rende strumenti preziosi in diversi campi, tra cui l'intelligenza artificiale (AI) e l'apprendimento automatico (ML).

Come funzionano gli algoritmi evolutivi

Il processo centrale di un Algoritmo Evolutivo prevede tipicamente le seguenti fasi, imitando l'evoluzione biologica:

  1. Inizializzazione: Una popolazione di soluzioni candidate (spesso chiamate individui o cromosomi) viene generata, di solito in modo casuale, nello spazio di ricerca.
  2. Valutazione del fitness: Ogni soluzione della popolazione viene valutata utilizzando una funzione di fitness (simile a una funzione di perdita) che ne misura la qualità o la capacità di risolvere il problema in questione.
  3. Selezione: Le soluzioni vengono selezionate in base al loro punteggio di fitness. Le soluzioni più idonee hanno una maggiore probabilità di essere scelte per trasmettere le loro caratteristiche alla generazione successiva, simulando il principio della "sopravvivenza del più adatto". Esistono diverse strategie di selezione, come la selezione a torneo o la selezione a roulette.
  4. Riproduzione (Operatori genetici):
    • Crossover (ricombinazione): Le soluzioni dei genitori selezionati si scambiano informazioni (parti della loro struttura) per creare nuove soluzioni della progenie, combinando tratti potenzialmente vantaggiosi.
    • Mutazione: Piccole modifiche casuali vengono introdotte nelle soluzioni dei figli per mantenere la diversità all'interno della popolazione ed esplorare nuove aree dello spazio di ricerca, evitando la convergenza prematura verso soluzioni non ottimali.
  5. Sostituzione: La nuova prole sostituisce una parte o tutta la popolazione anziana, formando la generazione successiva.
  6. Terminazione: Il processo si ripete dalla fase di valutazione del fitness fino a quando non viene soddisfatta una condizione di terminazione, come ad esempio il raggiungimento di un numero massimo di generazioni, la ricerca di una soluzione soddisfacente o l'assenza di miglioramenti significativi nel fitness.

Rilevanza nell'IA e nell'apprendimento automatico

Gli EA sono strumenti potenti nell'IA e nel ML, soprattutto per i compiti di ottimizzazione su spazi complessi in cui le informazioni sul gradiente non sono disponibili o sono inaffidabili. Le applicazioni principali includono:

Algoritmi evolutivi vs. altri metodi di ottimizzazione

Sebbene gli EA siano un tipo di algoritmo di ottimizzazione, differiscono in modo significativo dai metodi basati sul gradiente come la discesa del gradiente o la discesa del gradiente stocastica (SGD):

  • Informazioni sul gradiente: Gli EA non richiedono informazioni sul gradiente, il che li rende adatti a problemi non differenziabili o discontinui in cui la discesa del gradiente fallisce.
  • Strategia di ricerca: Gli EA eseguono una ricerca globale utilizzando una popolazione di soluzioni, il che li rende meno propensi a rimanere bloccati in optima locali rispetto alla ricerca locale della discesa del gradiente basata sulla pendenza della funzione di perdita. Tuttavia, questa esplorazione globale ha spesso un costo computazionale più elevato.
  • Tipo di problema: La discesa del gradiente è tipicamente preferita per ottimizzare i parametri dei modelli di deep learning con funzioni di perdita lisce e differenziabili, mentre gli EA eccellono nell'ottimizzazione combinatoria, nell'ottimizzazione dei parametri in paesaggi di fitness complessi e nell'ottimizzazione multi-obiettivo.

Applicazioni del mondo reale

Al di là dell'ottimizzazione teorica, gli EA trovano un impiego pratico in:

  1. Ottimizzazione dei modelli ML: Come già detto, trovare i migliori iperparametri per modelli come Ultralytics YOLO è un'applicazione chiave. Il Ultralytics Tuner classe fornisce un'implementazione che utilizza gli EA per ottimizzare Modello YOLO formazione [Rif.: Glossario sulla regolazione degli iperparametri].. Integrazioni con strumenti come Ray Tune migliorare ulteriormente le capacità di sintonizzazione distribuita.
  2. Robotica e sistemi di controllo: Le EA sono utilizzate per evolvere le andature dei robot, i parametri dei controllori per i sistemi autonomi e le strategie di pianificazione dei percorsi, in particolare nella robotica.
  3. Pianificazione e logistica: Risolvere problemi di programmazione complessi come la programmazione del job-shop, la creazione di orari o l'ottimizzazione dei percorsi di consegna(risorse Vehicle Routing Problem).
  4. Ottimizzazione del design: Utilizzata nei campi dell'ingegneria e del design per ottimizzare strutture, materiali o forme aerodinamiche (ad esempio, la ricerca della NASA sulla progettazione delle antenne).
  5. Scoperta di farmaci: Le EA possono esplorare vasti spazi chimici per identificare potenziali candidati farmaci con le proprietà desiderate, aiutando la ricerca farmaceutica.

Vantaggi e svantaggi

Vantaggi:

  • Efficace per l'ottimizzazione globale, meno incline agli ottimismi locali.
  • Applicabile a un'ampia gamma di problemi, compresi quelli non differenziabili e complessi.
  • Intrinsecamente parallelizzabile, in quanto le valutazioni di fitness possono spesso essere eseguite in modo indipendente.
  • Robusto in ambienti rumorosi o incerti.

Svantaggi:

  • Può essere computazionalmente costoso a causa della ricerca basata sulla popolazione e delle valutazioni di idoneità.
  • Le prestazioni possono essere sensibili alla scelta dei parametri EA (dimensione della popolazione, tassi di mutazione, ecc.).
  • La convergenza all'optimum globale non è sempre garantita.
  • Può richiedere una messa a punto significativa per problemi specifici.

Gli algoritmi evolutivi rappresentano un insieme di strumenti potenti e versatili nel panorama dell'AI e del ML, offrendo vantaggi unici per affrontare le complesse sfide di ottimizzazione che si incontrano nella ricerca e nell'industria, compresa l'ottimizzazione di modelli di computer vision all'avanguardia utilizzando piattaforme come Ultralytics HUB.

Leggi tutto