Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Guide

Che cos'è un algoritmo evolutivo? 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'AI.

Abirami VinaAbirami Vina9 min di lettura
Gli algoritmi evolutivi spiegati

La vita sulla Terra si è evoluta nel corso di milioni di anni e, attraverso questo processo, gli esseri viventi si sono adattati per sopravvivere e prosperare nei propri 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 processo è guidato dalla selezione naturale: i tratti vantaggiosi diventano più comuni perché gli individui che li possiedono hanno maggiori probabilità di sopravvivere.

In parole semplici, gli organismi più adatti all'ambiente circostante hanno maggiori probabilità di sopravvivere e trasmettere ai propri discendenti i tratti vantaggiosi. Nel tempo, questi piccoli cambiamenti si sommano e aiutano le specie ad affrontare anche le condizioni più difficili.

Gli algoritmi evolutivi (EA) rientrano nella categoria dell'«intelligenza computazionale». Proprio come nell'evoluzione, un EA seleziona le soluzioni migliori da un gruppo, apporta piccole modifiche e verifica se queste migliorano i risultati. Ripetendo questo processo per molte generazioni, individua le soluzioni migliori a problemi complessi in vari ambiti.

Grazie alla loro versatilità, gli algoritmi evolutivi sono un interessante ambito di ricerca, con studi in corso per applicarli a settori come ingegneria, medicina e scienze ambientali. In questo articolo esamineremo più da vicino gli algoritmi evolutivi, il loro funzionamento e i loro ambiti di utilizzo.

Gli algoritmi evolutivi spiegati#

Gli algoritmi evolutivi sono tecniche di ottimizzazione che possono essere usate nell'ambito del machine learning per trovare la migliore soluzione o il miglior modello possibile per un determinato compito. In genere partono da un gruppo di soluzioni potenziali e cercano di migliorarle attraverso numerose iterazioni, in base alla loro capacità di risolvere il problema.

Per esempio, immagina di voler progettare l'auto più efficiente nei consumi. L'algoritmo parte da una varietà di progetti, testa le prestazioni di ciascuno e poi li migliora gradualmente combinando le caratteristiche migliori e apportando piccole modifiche nel corso di numerose iterazioni, finché non trova il progetto migliore possibile.

Esistono diversi tipi di algoritmi evolutivi, ciascuno con un proprio metodo per 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, per esempio sequenze di numeri o simboli. Il miglioramento avviene combinando parti di due buone soluzioni (come nella combinazione dei tratti dei genitori) e apportando piccole modifiche casuali per creare nuove varianti.
  • Programmazione genetica: si concentra sulla creazione di soluzioni rappresentate da strutture ad albero. È particolarmente utile quando la soluzione richiede una sequenza di passaggi o istruzioni.
  • Strategie evolutive: in questo caso, l'attenzione si concentra sull'apprendimento dell'entità delle modifiche 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, si creano nuove soluzioni combinando parti di diverse soluzioni esistenti. È particolarmente efficace per i problemi in cui le risposte sono numeri che possono variare in modo continuo.

Capire come funzionano gli algoritmi evolutivi#

Gli algoritmi evolutivi usano un processo iterativo per trovare la soluzione migliore a un problema. Puoi immaginarli come il modo in cui la natura affina le specie nel corso delle generazioni: 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 della fitness: ogni soluzione viene valutata con una funzione di fitness che misura quanto bene risolve il problema. Le soluzioni con prestazioni migliori ricevono punteggi più alti e hanno maggiori probabilità di essere selezionate per i passaggi successivi.
  • Riproduzione: si creano nuove soluzioni con due metodi principali: crossover e mutazione. Il crossover combina caratteristiche di due soluzioni genitrici, mentre la mutazione introduce piccole modifiche casuali per esplorare nuove possibilità.
  • Sostituzione: le soluzioni appena create sostituiscono alcune o tutte quelle 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. Può trattarsi del raggiungimento di un numero prestabilito di iterazioni, del conseguimento di un livello di fitness soddisfacente, dell'assenza di ulteriori miglioramenti o del raggiungimento dei limiti computazionali.

Panoramica sul funzionamento degli algoritmi evolutivi

Fig. 1. Panoramica sul funzionamento degli algoritmi evolutivi. Immagine dell'autore.

Panoramica sulle applicazioni degli algoritmi evolutivi#

Ora che abbiamo capito meglio cosa sono gli algoritmi evolutivi e come funzionano, esaminiamo alcune loro applicazioni concrete 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 notevolmente in base alla disposizione delle turbine le une rispetto alle altre 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 modo per ideare e testare numerose disposizioni diverse per i parchi eolici. Prendono in considerazione elementi come i venti prevalenti, i tipi di turbine e i terreni disponibili per individuare la configurazione migliore. A ogni ciclo di test, il progetto migliora, portando a una maggiore produzione di energia, costi inferiori e un uso più efficiente del suolo. Dopo diverse iterazioni, il progetto finale può offrire una resa energetica superiore a quella di un progetto realizzato manualmente.

Un parco eolico con turbine eoliche

Fig. 2. Un parco eolico.

Tecniche di ottimizzazione nella progettazione dei veicoli#

Progettare automobili sicure, a basso consumo e accessibili è una priorità fondamentale per le case automobilistiche di oggi. Gli algoritmi evolutivi possono accelerare questo processo testando numerose opzioni di progettazione e migliorandole gradualmente per individuare quella migliore. Questo può aiutare i produttori a trovare il giusto equilibrio tra prestazioni ed efficienza.

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

Gli algoritmi genetici possono esplorare diverse varianti strutturali apportando modifiche minime. Questi progetti vengono poi valutati in base a fattori come robustezza, peso, durata e normative, per individuare l'opzione migliore.

La struttura di progettazione Body-in-White di un veicolo

Fig. 3. La struttura di progettazione Body-in-White di un veicolo (fonte).

Strategie evolutive per la pianificazione dei turni ospedalieri#

I ricercatori studiano 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 terapeutici e nella scoperta di nuovi farmaci. Questi algoritmi sono efficaci perché possono gestire grandi quantità di dati e tenere conto di fattori come la stanchezza e lo stress.

Per esempio, gli algoritmi genetici sono stati testati per migliorare la pianificazione dei turni degli infermieri negli ospedali. Un studio particolarmente interessante ha combinato algoritmi genetici e tecniche di ricerca locale per creare turni che riducessero la stanchezza degli infermieri. I risultati hanno mostrato una riduzione della stanchezza del 10% e un processo di pianificazione più rapido del 98%, con tempi passati da oltre un'ora a poco più di un minuto.

Pianificazione manuale dei turni a confronto con l'uso di un algoritmo genetico

Fig. 4. Pianificazione manuale dei turni a confronto con l'uso di un algoritmo genetico (GA) (fonte).

Il ruolo delle tecniche evolutive nella visione artificiale#

Gli algoritmi evolutivi vengono usati anche nella visione artificiale, il campo dell’IA che permette 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 di caratteristiche.

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

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

I metodi evolutivi compaiono anche nell’addestramento quotidiano dei modelli. Per esempio, l’ottimizzazione degli iperparametri nel pacchetto Python di Ultralytics usa un algoritmo genetico che modifica impostazioni come il tasso di apprendimento, i pesi della loss e l’intensità dell’augmentation, quindi conserva le configurazioni con le prestazioni migliori nel corso di numerose brevi sessioni di addestramento.

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 fermarsi su soluzioni scadenti.
  • Robustezza: in ambienti incerti e mutevoli, la casualità e la varietà delle soluzioni dell'algoritmo evolutivo aiutano il sistema a mantenere prestazioni costanti.
  • Flessibilità: gli algoritmi evolutivi possono essere adattati a molti tipi di problemi diversi 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 gli algoritmi lenti o onerosi 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: possono essere necessarie molte iterazioni per migliorare le soluzioni, soprattutto nei problemi molto complessi, con conseguenti tempi di esecuzione più lunghi rispetto ad altri metodi.
  • Sensibilità alla funzione di fitness: una funzione di fitness progettata male può indurre gli algoritmi a sfruttarne i difetti anziché risolvere il problema previsto, fornendo agli sviluppatori un quadro fuorviante delle prestazioni effettive.

Punti chiave#

Gli algoritmi evolutivi sono un'ottima opzione per risolvere problemi difficili che altri metodi potrebbero non riuscire a gestire. La ricerca ha dimostrato che migliorano gradualmente attraverso le iterazioni e possono adattarsi a un'ampia varietà di attività. Con il continuo progresso e sviluppo dell'IA, si prevede che questi algoritmi avranno un ruolo ancora più importante nella creazione di tecnologie intelligenti, efficienti e capaci di apprendere autonomamente, applicabili in molti ambiti diversi.

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

Scritto da

Abirami Vina
Abirami Vina

Creatore di contenuti · Ultralytics

Dopo aver iniziato la sua carriera come ingegnera di visione artificiale, Abirami Vina ha costruito solide basi nell'IA visiva e nel machine learning. È creatrice di contenuti per Ultralytics e fondatrice e autrice principale di Scribe of AI, dove realizza contenuti tecnici di alta qualità per aziende specializzate in IA. Spinta dalla passione di rendere l'IA comprensibile e coinvolgente, con il suo lavoro colma il divario tra tecnologie all'avanguardia e impatto concreto.

Commenti

Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui 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 visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning