Ultralytics YOLO27:
Guide

Che cos'è un algoritmo evolutivo? Una guida rapida

Scopri come funzionano gli algoritmi evolutivi e come vengono utilizzati nel machine learning per ottimizzare i modelli, risolvere problemi complessi e favorire i progressi nell'IA.

ABAbirami Vina9 min read
Gli algoritmi evolutivi spiegati

Per una panoramica visiva dei concetti trattati in questo articolo, guarda il video qui sotto.

La vita sulla Terra si è evoluta nel corso di milioni di anni, ed è attraverso questo processo che gli esseri viventi si sono adattati per sopravvivere e prosperare nei loro ambienti. Prendiamo le giraffe, per esempio. Nel corso di molte generazioni hanno sviluppato colli lunghi per raggiungere le foglie in alto sugli alberi, dove gli altri animali non arrivano. Questo è determinato dalla selezione naturale, per cui i tratti vantaggiosi diventano più comuni, poiché gli individui che li possiedono hanno maggiori probabilità di sopravvivere.

In poche parole, gli organismi più adatti all'ambiente circostante hanno maggiori probabilità di sopravvivere e trasmettere i propri tratti utili alla progenie. Nel tempo, questi piccoli cambiamenti si accumulano, aiutando le specie ad affrontare anche le condizioni più difficili.

Gli algoritmi evolutivi (EA) rientrano nel termine generale “Machine Learning”. Proprio come l'evoluzione, gli EA scelgono le soluzioni migliori da un gruppo, apportano piccoli cambiamenti e verificano se questi migliorano i risultati. Ripetendo questo processo per molte generazioni, individuano le soluzioni migliori a problemi complessi in diversi ambiti.

Grazie alla loro versatilità, gli algoritmi evolutivi sono un interessante campo di ricerca, con studi in corso volti ad applicarli ad ambiti come l'ingegneria, la medicina e le scienze ambientali. In questo articolo analizzeremo più da vicino gli algoritmi evolutivi, il loro funzionamento e i loro impieghi. Iniziamo!

Gli algoritmi evolutivi spiegati#

Gli algoritmi evolutivi sono tecniche di ottimizzazione che possono essere utilizzate nell'ambito del machine learning per trovare la soluzione o il modello migliore possibile per una determinata attività. In genere iniziano con un gruppo di soluzioni potenziali e lavorano per migliorarle nel corso di molte iterazioni, in base alla loro efficacia nella risoluzione del problema.

Per esempio, immagina di voler progettare l'auto più efficiente nei consumi. L'algoritmo parte da una varietà di progetti automobilistici, verifica le prestazioni di ciascuno e poi migliora gradualmente i progetti combinando le caratteristiche migliori e apportando piccoli aggiustamenti nel corso di molti cicli, finché non individua il progetto migliore possibile.

Esistono diversi tipi di algoritmi evolutivi, ciascuno con il proprio modo di rappresentare e migliorare le soluzioni, ma tutti seguono questo approccio di base. Ecco alcuni tipi comuni di algoritmi evolutivi:

  • Algoritmi genetici: In questo tipo di algoritmo evolutivo, le soluzioni sono rappresentate come semplici stringhe codificate, ad esempio sequenze di numeri o simboli. Il miglioramento avviene mescolando parti di due buone soluzioni, in modo simile alla combinazione dei tratti dei genitori, e apportando piccoli cambiamenti casuali per creare nuove varianti.

  • Programmazione genetica: Si concentra sulla costruzione di soluzioni come strutture ad albero. È particolarmente utile quando la soluzione richiede una sequenza di passaggi o istruzioni.

  • Strategie evolutive: In questo caso, l'attenzione è rivolta all'apprendimento dell'entità dei cambiamenti da apportare quando si aggiornano le soluzioni. Questo aiuta l'algoritmo a migliorare i risultati in modo più efficiente nel tempo.

  • Evoluzione differenziale: Con questo approccio, le nuove soluzioni vengono create combinando parti di diverse soluzioni esistenti. Funziona particolarmente bene per i problemi in cui le risposte sono numeri che possono variare in modo continuo.

Comprendere il funzionamento degli algoritmi evolutivi#

Gli algoritmi evolutivi utilizzano un processo iterativo per trovare la soluzione migliore a un problema. Puoi immaginarlo come il modo in cui la natura perfeziona le specie nel corso delle generazioni, dove ogni ciclo contribuisce a migliorare la popolazione.

Sebbene esistano diversi tipi di algoritmi evolutivi, in genere seguono questi passaggi fondamentali:

  • Inizializzazione: L'algoritmo inizia generando un insieme iniziale di possibili soluzioni. Questo costituisce il punto di partenza del processo evolutivo.

  • Valutazione dell'idoneità: Ogni soluzione viene valutata utilizzando una funzione di idoneità che misura la sua efficacia nella risoluzione del problema. Le soluzioni con prestazioni migliori ricevono punteggi più alti e hanno maggiori probabilità di essere selezionate per i passaggi successivi.

  • Riproduzione: Le nuove soluzioni vengono create attraverso due metodi principali: crossover e mutazione. Il crossover combina le caratteristiche di due soluzioni genitrici, mentre la mutazione introduce piccoli cambiamenti casuali per esplorare nuove possibilità.

  • Sostituzione: Le soluzioni appena create sostituiscono alcune o tutte le soluzioni precedenti. Questo passaggio determina quali soluzioni sopravvivono e passano alla generazione successiva.

  • Terminazione: Il processo di riproduzione e sostituzione continua finché non viene soddisfatta una condizione di arresto. Questa può consistere nel raggiungimento di un numero prestabilito di iterazioni, nell'ottenimento di un livello di idoneità soddisfacente, nell'assenza di ulteriori miglioramenti o nel raggiungimento dei limiti computazionali.

Uno sguardo al funzionamento degli algoritmi evolutivi

Fig. 1. Uno sguardo al funzionamento degli algoritmi evolutivi. Immagine dell'autore.

Panoramica delle applicazioni degli algoritmi evolutivi#

Ora che abbiamo compreso meglio cosa sono gli algoritmi evolutivi e come funzionano, esaminiamo alcune delle loro applicazioni nel mondo reale in diversi settori.

Algoritmi ispirati alla biologia utilizzati nelle centrali eoliche#

Uno degli aspetti più importanti della produzione di energia eolica è il posizionamento delle turbine eoliche. L'efficienza di un parco eolico può variare significativamente in base alla posizione delle turbine l'una rispetto all'altra e alle condizioni del vento. I metodi di progettazione tradizionali spesso faticano a gestire le numerose variabili esterne coinvolte.

Gli algoritmi evolutivi sono un ottimo strumento per ideare e testare numerose configurazioni diverse di parchi eolici. Analizzano fattori come i modelli del vento, i tipi di turbine e il terreno disponibile per trovare la configurazione migliore. A ogni ciclo di test, il progetto migliora, portando a una maggiore produzione di energia, costi inferiori e un migliore utilizzo del terreno. Dopo diverse iterazioni, il progetto finale può offrire una produzione energetica migliore rispetto a uno realizzato manualmente.

Una centrale eolica

Fig. 2. Una centrale eolica.

Tecniche di ottimizzazione nella progettazione dei veicoli#

Progettare automobili sicure, efficienti nei consumi e convenienti è una priorità fondamentale per le case automobilistiche di oggi. Gli algoritmi evolutivi possono contribuire ad accelerare questo processo testando numerose opzioni di progettazione e migliorandole gradualmente per trovare quella migliore. Questo può aiutare i produttori a trovare il miglior equilibrio tra prestazioni ed efficienza.

Un esempio interessante è l'uso degli algoritmi evolutivi per progettare la struttura portante del veicolo, nota come struttura grezza della carrozzeria (BIW). L'obiettivo principale di questo processo di progettazione è ridurre il peso della carrozzeria mantenendo la stessa durata e resistenza.

Gli algoritmi genetici possono esplorare diverse varianti strutturali apportando piccole modifiche. Questi progetti vengono poi testati in base a fattori come resistenza, peso, durata e standard normativi per individuare l'opzione migliore.

La struttura progettuale della struttura grezza della carrozzeria di un veicolo

Fig. 3. La struttura progettuale della struttura grezza della carrozzeria di un veicolo (fonte).

Strategie evolutive nella pianificazione dei turni ospedalieri#

I ricercatori stanno studiando attivamente come gli algoritmi evolutivi possano essere d'aiuto nell'assistenza sanitaria, ad esempio nella pianificazione dei turni del personale ospedaliero, nel miglioramento dei piani di trattamento e nella scoperta di nuovi farmaci. Questi algoritmi funzionano bene perché sono in grado di gestire grandi quantità di dati e di considerare fattori come stanchezza e stress.

Per esempio, gli algoritmi genetici sono stati testati per migliorare la pianificazione dei turni degli infermieri negli ospedali. Un'interessante ricerca ha utilizzato una combinazione di algoritmi genetici e tecniche di ricerca locale per creare turni che riducono la stanchezza degli infermieri. I risultati hanno mostrato una riduzione del 10% della stanchezza e hanno reso il processo di pianificazione del 98% più veloce, riducendo il tempo necessario da oltre un'ora a poco più di un minuto.

Pianificazione manuale dei turni rispetto all'uso di un algoritmo genetico

Fig. 4. Pianificazione manuale dei turni rispetto all'uso di un algoritmo genetico (GA) (fonte).

Il ruolo delle tecniche evolutive nella computer vision#

Oltre alle applicazioni nel machine learning, gli algoritmi evolutivi possono essere utilizzati anche in ambiti come la computer vision, il campo dell'AI che consente alle macchine di interpretare e analizzare dati visivi come immagini e video. La ricerca in corso ne esplora il potenziale in attività come la segmentazione delle immagini, il rilevamento degli oggetti e l'estrazione delle caratteristiche.

Questi algoritmi funzionano testando numerose soluzioni possibili e selezionando le migliori, il che li rende flessibili e in grado di gestire dati visivi complessi e diversificati. Per esempio, i ricercatori hanno utilizzato algoritmi evolutivi per migliorare i sistemi di AI che analizzano immagini mediche come le radiografie del torace.

Questi sistemi di AI, noti come reti neurali convoluzionali (CNNs), agiscono come radiologi esperti analizzando le immagini per individuare i segni di malattie come COVID-19. L'algoritmo evolutivo contribuisce progettando e ottimizzando automaticamente la struttura e le impostazioni della CNN, testando numerose versioni, conservando quelle con le prestazioni migliori e creando gradualmente modelli più accurati. Questo processo porta a strumenti di AI in grado di aiutare i medici a diagnosticare COVID-19 in modo più rapido e accurato.

Vantaggi e svantaggi degli algoritmi evolutivi#

Ecco alcuni dei principali vantaggi offerti dagli algoritmi evolutivi:

  • Capacità di ricerca globale: Gli algoritmi evolutivi esplorano simultaneamente molte aree dello spazio delle soluzioni, riducendo la probabilità di rimanere bloccati in soluzioni scadenti.
  • Robustezza: In ambienti incerti e mutevoli, la casualità dell'algoritmo evolutivo e la diversità delle soluzioni aiutano il sistema a mantenere prestazioni costanti.
  • Flessibilità: Gli algoritmi evolutivi possono essere adattati per funzionare bene su molti tipi diversi di problemi modificando il modo in cui vengono rappresentate le soluzioni e misurato il successo.

Sebbene questi algoritmi offrano molti vantaggi, è importante conoscerne anche i limiti. Ecco alcuni svantaggi comuni degli algoritmi evolutivi:

  • Costo computazionale: La valutazione ripetuta di molte soluzioni possibili può richiedere risorse di calcolo potenti e costose, rendendo questi algoritmi lenti o dispendiosi per alcune applicazioni.
  • Sensibilità ai parametri: Il successo degli algoritmi evolutivi dipende spesso in larga misura dalla scelta delle impostazioni iniziali corrette, come la dimensione della popolazione, il tasso di mutazione e i metodi di selezione. Scelte inadeguate possono compromettere le prestazioni.
  • Convergenza lenta: Potrebbero essere necessarie molte iterazioni per migliorare le soluzioni, soprattutto per problemi molto complessi, con conseguenti tempi di esecuzione più lunghi rispetto ad altri metodi.
  • Sensibilità alla funzione di idoneità: Una progettazione inadeguata della funzione di idoneità può indurre gli algoritmi a sfruttare i difetti anziché risolvere il problema previsto, fornendo agli sviluppatori un'immagine fuorviante delle prestazioni effettive.

Punti chiave#

Gli algoritmi evolutivi sono un'ottima opzione per risolvere problemi complessi che altri metodi potrebbero avere difficoltà a gestire. La ricerca ha dimostrato che migliorano gradualmente attraverso l'iterazione e possono adattarsi a un'ampia varietà di attività. Con il continuo progresso e sviluppo dell'AI, si prevede che questi algoritmi svolgeranno un ruolo ancora più importante nello sviluppo di tecnologie intelligenti, efficienti e capaci di apprendere autonomamente in numerose applicazioni.

Unisciti alla nostra community in crescita e dai un'occhiata al nostro repository GitHub per trovare risorse sull'AI. Esplora le diverse applicazioni della computer vision nell'agricoltura e dell'AI nella logistica nelle nostre pagine dedicate alle soluzioni. Scopri le nostre opzioni di licenza per dare il via ai tuoi progetti di computer vision.

Explore solutions

Visione artificiale per immagini aeree

Visione artificiale per immagini aeree

Traduci immagini di droni e aeree in informazioni in tempo reale per agricoltura, acquacoltura, monitoraggio ambientale, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la visione artificiale al monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e industrie geospaziali con soluzioni di computer vision.
Scopri di più

Proteggi ogni sito con i modelli Ultralytics YOLO. La visione artificiale alimenta il monitoraggio del perimetro, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Computer vision nella robotica

Computer vision nella robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica abilita la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Computer vision nella logistica

Computer vision nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Computer vision nel commercio al dettaglio

Computer vision nel commercio al dettaglio

Reinventa il commercio al dettaglio con i modelli Ultralytics YOLO. La Vision AI potenzia il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e analisi più intelligenti dei clienti.
Scopri di più
Computer vision nel settore sanitario

Computer vision nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La Vision AI nel settore sanitario abilita imaging medico più rapido, diagnosi più intelligenti e monitoraggio dei pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI supporta il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Computer vision in agricoltura

Computer vision in agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Abilita il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per raccolti più abbondanti e intelligenti.
Scopri di più
Visione artificiale per immagini aeree

Visione artificiale per immagini aeree

Traduci immagini di droni e aeree in informazioni in tempo reale per agricoltura, acquacoltura, monitoraggio ambientale, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la visione artificiale al monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e industrie geospaziali con soluzioni di computer vision.
Scopri di più

Proteggi ogni sito con i modelli Ultralytics YOLO. La visione artificiale alimenta il monitoraggio del perimetro, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Computer vision nella robotica

Computer vision nella robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica abilita la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Computer vision nella logistica

Computer vision nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Computer vision nel commercio al dettaglio

Computer vision nel commercio al dettaglio

Reinventa il commercio al dettaglio con i modelli Ultralytics YOLO. La Vision AI potenzia il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e analisi più intelligenti dei clienti.
Scopri di più
Computer vision nel settore sanitario

Computer vision nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La Vision AI nel settore sanitario abilita imaging medico più rapido, diagnosi più intelligenti e monitoraggio dei pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI supporta il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Computer vision in agricoltura

Computer vision in agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Abilita il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per raccolti più abbondanti e intelligenti.
Scopri di più
Visione artificiale per immagini aeree

Visione artificiale per immagini aeree

Traduci immagini di droni e aeree in informazioni in tempo reale per agricoltura, acquacoltura, monitoraggio ambientale, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la visione artificiale al monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e industrie geospaziali con soluzioni di computer vision.
Scopri di più

Proteggi ogni sito con i modelli Ultralytics YOLO. La visione artificiale alimenta il monitoraggio del perimetro, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Computer vision nella robotica

Computer vision nella robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica abilita la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Computer vision nella logistica

Computer vision nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Computer vision nel commercio al dettaglio

Computer vision nel commercio al dettaglio

Reinventa il commercio al dettaglio con i modelli Ultralytics YOLO. La Vision AI potenzia il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e analisi più intelligenti dei clienti.
Scopri di più
Computer vision nel settore sanitario

Computer vision nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La Vision AI nel settore sanitario abilita imaging medico più rapido, diagnosi più intelligenti e monitoraggio dei pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI supporta il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Computer vision in agricoltura

Computer vision in agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Abilita il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo percorso verso il futuro del machine learning