Scopri YOLO26: vision AI di prossima generazione.
Ultralytics
Guide

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 promuovere i progressi nell'IA.

ABAbirami Vina
4 min read
Spiegazione degli algoritmi evolutivi

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. Prendi le giraffe, ad esempio. Hanno sviluppato colli lunghi nel corso di molte generazioni per raggiungere le foglie in alto sugli alberi, dove altri animali non possono arrivare. Questo è guidato dalla selezione naturale, dove i tratti utili diventano più comuni poiché chi li possiede ha maggiori probabilità di sopravvivere.

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

Gli algoritmi evolutivi (EA) rientrano nel termine generico di “Machine Learning”. Proprio come l'evoluzione, gli EA scelgono le soluzioni migliori da un gruppo, apportano piccole modifiche e controllano se tali modifiche migliorano la situazione. Ripetendo questo processo per molte generazioni, si trovano le soluzioni migliori a problemi complessi in svariati campi.

Grazie alla loro versatilità, gli algoritmi evolutivi rappresentano un interessante ambito di ricerca, con studi in corso volti ad applicarli a campi come l'ingegneria, la medicina e la scienza ambientale. In questo articolo, esamineremo più da vicino gli algoritmi evolutivi, il loro funzionamento e dove vengono utilizzati. Iniziamo!

Link to this sectionSpiegazione degli algoritmi evolutivi#

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 un determinato compito. In genere, partono da un gruppo di potenziali soluzioni e lavorano per migliorarle nel corso di molte iterazioni in base alla loro efficacia nel risolvere il problema.

Per esempio, immagina di provare a progettare l'auto più efficiente dal punto di vista dei consumi. L'algoritmo inizia con una varietà di progetti di auto, testa ciascuno per vedere come si comporta e poi migliora gradualmente i design combinando le caratteristiche migliori e apportando piccole modifiche nel corso di diversi cicli, finché non trova il miglior design possibile.

Esistono diversi tipi di algoritmi evolutivi, ognuno 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, come sequenze di numeri o simboli. Il miglioramento avviene mescolando parti di due buone soluzioni (simile alla combinazione di tratti dai genitori) e apportando piccole modifiche casuali per creare nuove variazioni.

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

  • Strategie evolutive: Qui, l'attenzione è rivolta a imparare quanto debbano essere grandi o piccole le modifiche durante l'aggiornamento delle soluzioni. Questo aiuta l'algoritmo a migliorare i propri risultati in modo più efficiente nel tempo.

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

Link to this sectionCapire come funzionano gli algoritmi evolutivi#

Gli algoritmi evolutivi utilizzano un processo iterativo per trovare la soluzione migliore a un problema. Puoi pensarlo come al 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, generalmente seguono questi passaggi chiave:

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

  • Valutazione della fitness: Ogni soluzione viene valutata utilizzando 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 scelte per i passaggi successivi.

  • Riproduzione: Nuove soluzioni vengono create attraverso due metodi principali: crossover e mutazione. Il crossover combina le 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 le soluzioni più vecchie. 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. Potrebbe 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 di limiti computazionali.

Uno sguardo al funzionamento degli algoritmi evolutivi

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

Link to this sectionUno sguardo alle applicazioni degli algoritmi evolutivi#

Ora che abbiamo una migliore comprensione di cosa siano gli algoritmi evolutivi e di come funzionano, esaminiamo alcune delle loro applicazioni nel mondo reale in diversi settori.

Link to this sectionAlgoritmi bio-ispirati utilizzati negli impianti eolici#

Uno degli aspetti più critici della generazione di energia eolica è il posizionamento delle turbine eoliche. L'efficienza di un parco eolico può variare significativamente in base a come le turbine sono posizionate 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 modo per ideare e testare tantissimi layout diversi per i parchi eolici. Analizzano fattori come i modelli di vento, i tipi di turbine e il terreno disponibile per trovare la configurazione migliore. A ogni round di test, il design migliora, portando a maggiore energia, costi inferiori e un miglior uso del terreno. Dopo diverse iterazioni, il design finale può offrire una migliore produzione energetica rispetto a uno realizzato manualmente.

Una centrale eolica

Fig 2. Un impianto eolico.

Link to this sectionTecniche di ottimizzazione nella progettazione dei veicoli#

Progettare auto sicure, efficienti nei consumi e convenienti è una priorità chiave per le case automobilistiche odierne. Gli algoritmi evolutivi possono aiutare ad accelerare questo processo testando molte opzioni di design e migliorandole gradualmente per trovare quella migliore. Ciò 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 centrale del veicolo, nota come Body-in-White (BIW). L'obiettivo principale in questo processo di progettazione è ridurre il peso della carrozzeria mantenendo la stessa durata e resistenza.

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

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

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

Link to this sectionStrategie evolutive nella pianificazione ospedaliera#

I ricercatori stanno studiando attivamente come gli algoritmi evolutivi possano aiutare nell'assistenza sanitaria, ad esempio nella pianificazione del personale ospedaliero, nel miglioramento dei piani di trattamento e nella scoperta di nuovi medicinali. Questi algoritmi funzionano bene perché possono gestire grandi quantità di dati e considerare fattori come affaticamento e stress.

Ad esempio, gli algoritmi genetici sono stati testati per migliorare la pianificazione dei turni degli infermieri negli ospedali. Un affascinante studio ha utilizzato un mix di algoritmi genetici e tecniche di ricerca locale per creare programmi che riducessero l'affaticamento degli infermieri. I risultati hanno mostrato un calo del 10% dell'affaticamento e hanno reso il processo di pianificazione più veloce del 98%, riducendo il tempo da oltre un'ora a poco più di un minuto.

Pianificazione manuale rispetto all'uso di un algoritmo genetico

Fig 4. Pianificazione manuale vs utilizzo di un algoritmo genetico (GA) (fonte).

Link to this sectionIl ruolo delle tecniche evolutive nella computer vision#

Oltre alle applicazioni di machine learning, gli algoritmi evolutivi possono essere utilizzati anche in aree come la computer vision, il campo dell'IA che consente alle macchine di interpretare e analizzare dati visivi come immagini e video. La ricerca in corso esplora il loro potenziale in attività come la segmentazione delle immagini, l'object detection e l'estrazione di feature.

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

Questi sistemi di IA, noti come reti neurali convoluzionali (CNN), agiscono come radiologi esperti scansionando le immagini per individuare segni di malattie come il COVID-19. L'algoritmo evolutivo aiuta progettando e perfezionando automaticamente la struttura e le impostazioni della CNN, testando molte versioni, conservando le migliori e creando gradualmente modelli più accurati. Questo processo porta a strumenti di IA che possono assistere i medici nella diagnosi del COVID-19 in modo più rapido e accurato.

Link to this sectionPro e contro degli algoritmi evolutivi#

Ecco alcuni dei principali vantaggi offerti dagli algoritmi evolutivi:

  • Capacità di ricerca globale: Gli algoritmi evolutivi esplorano molte parti dello spazio delle soluzioni contemporaneamente, rendendo meno probabile che rimangano bloccati in soluzioni scadenti.
  • Robustezza: In ambienti incerti e mutevoli, la casualità e la diversità delle soluzioni dell'algoritmo evolutivo 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 le soluzioni vengono rappresentate e come viene misurato il successo.

Sebbene questi algoritmi abbiano molti benefici, è anche importante essere consapevoli dei loro limiti. Ecco alcuni svantaggi comuni degli algoritmi evolutivi:

  • Costo computazionale: Valutare ripetutamente molte possibili soluzioni può richiedere risorse di calcolo potenti e costose, rendendoli lenti o costosi 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 richiedere molte iterazioni per migliorare le soluzioni, specialmente per problemi molto complessi, il che può portare a tempi di esecuzione più lunghi rispetto ad altri metodi.
  • Sensibilità della funzione di fitness: Un design scadente della funzione di fitness può indurre gli algoritmi a sfruttare i difetti invece di risolvere il problema previsto, fuorviando gli sviluppatori riguardo alle prestazioni effettive.

Link to this sectionPunti chiave#

Gli algoritmi evolutivi sono un'ottima opzione per risolvere problemi difficili che altri metodi potrebbero faticare a gestire. La ricerca ha dimostrato che migliorano gradualmente attraverso l'iterazione e possono adattarsi a una grande varietà di compiti. Poiché l'IA continua ad avanzare ed evolversi, si prevede che questi algoritmi svolgeranno un ruolo ancora maggiore nello sviluppo di tecnologie intelligenti, efficienti e auto-apprendenti in molte diverse applicazioni.

Unisciti alla nostra community in crescita e dai un'occhiata al nostro repository GitHub per le risorse di IA. Esplora le diverse applicazioni della computer vision nell'agricoltura e dell'IA nella logistica sulle nostre pagine delle soluzioni. Scopri le nostre opzioni di licenza per avviare i tuoi progetti di computer vision.

Explore solutions

Real-time AI that works with your team

AI nella Robotica

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

Scopri di più
Real-time AI that works with your team

IA 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 in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

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

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

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

Scopri di più
Real-time AI that works with your team

AI nella Robotica

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

Scopri di più
Real-time AI that works with your team

IA 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 in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

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

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

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

Scopri di più
Real-time AI that works with your team

AI nella Robotica

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

Scopri di più
Real-time AI that works with your team

IA 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 in magazzino in tempo reale.

Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.

Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.

Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.

Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

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

Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

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

Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo viaggio con il futuro del machine learning