Teoria
31.7.2024

Allenare una rete neurale: una difficile impresa tra scienza e alchimia

Illustrazione: Martina Pepiciello

Se vi è capitato di interagire con delle rete neurali, sarete forse rimasti sorpresi dalla loro apparente capacità di risolvere problemi molto diversi tra loro, quasi come per magia. Allenare una rete neurale, però, non è affatto una passeggiata: dietro al suo funzionamento ci sono molte sfide tecniche che i ricercatori e gli ingegneri devono affrontare per ottenere risultati di qualità. 

Questo articolo esplora alcune delle principali sfide che si celano dietro l'addestramento di una rete neurale, svelando la vera complessità che sta alla base di questa potente tecnologia. Se avete bisogno di una rinfrescata sulle reti neurali,vi consigliamo di leggere questo articolo.

Preparazione dei dati per l'allenamento 

Qualità dei dati

Nell’insegnare a un bambino a riconoscere degli animali esotici, se gli si mostrano solo foto sfocate o tagliate, farà fatica a imparare. Allo stesso modo, una rete neurale ha bisogno di dati puliti, ben etichettati e rilevanti  per il problema che si vuole risolvere.

Ad esempio, se si sta allenando una rete neurale per classificare immagini di animali, è importante che i dati di allenamento contengano immagini di alta qualità, non sfocate, ben esposte e senza elementi di disturbo, in modo che la rete non abbia difficoltà a imparare le caratteristiche distintive degli animali. È anche importante che tutte le immagini siano etichettate senza errori o imprecisioni, cioè che tutte le foto di lupi siano etichettate come lupi e non come cani o coyote, e così via. Se così non fosse, il modello potrebbe, per esempio, confondere un lupo con un coyote.

Scaling e normalizzazione

Le reti neurali funzionano meglio quando tutti i dati hanno un ordine di grandezza simile. Pensiamo a quando portiamo a casa le borse della spesa: è molto più difficile farlo se mettiamo tutti gli oggetti pesanti da un lato e quelli leggeri dall’altro. Lo scaling e la normalizzazione aiutano “riequilibrare i pesi”, cioè a garantire che tutte le variabili contribuiscano in modo equilibrato all'allenamento. 

Per esempio, un ricercatore che analizza dati finanziari potrebbe avere a che fare con valori molto grandi come i redditi e valori molto piccoli come i tassi di interesse. Se usasse questi numeri così come sono per allenare una rete neurale, questa tenderebbe a dare più importanza del dovuto ai redditi nelle sue previsioni, perché hanno dei valori molto più alti. Lo scaling può risolvere questo problema, portando i valori dei redditi e dei tassi di interesse sullo stesso ordine di grandezza. Per esempio, il ricercatore potrebbe decidere di dividere tutti i redditi per il reddito più alto e tutti i tassi per il tasso più alto del nostro set di dati, in modo che sia i redditi che i tassi siano compresi tra 0 e 1.

Data augmentation

Per migliorare la generalizzazione del modello, spesso si usano tecniche di data augmentation, ovvero la creazione di nuovi dati a partire da quelli esistenti. Ad esempio, per riconoscere oggetti in immagini, possiamo ruotare, ritagliare o cambiare il colore delle immagini di addestramento in vari modi. Questo aiuta la rete neurale a riconoscere gli oggetti anche in situazioni diverse da quelle viste durante l'allenamento.

Underfitting e overfitting

Underfitting 

L’underfitting si verifica quando la rete è troppo semplice e non coglie caratteristiche e motivi ricorrenti importanti dei dati di allenamento. È come un bambino che pensa che tutti gli animali a quattro zampe siano cani. 

Un modello che soffre di underfitting risulterà poco preciso nel fare previsioni sia sui dati che sono stati usati per addestrarlo, sia su nuovi dati che non ha mai visto. Questo indica che non ha imparato abbastanza dai dati disponibili.

Per “curare” l’underfitting si può aumentare il numero di neuroni e/o di strati della rete, oppure aumentare il numero di ripetizioni del processo di addestramento.

Overfitting 

In caso di overfitting, invece, la rete è così sofisticata che ha "memorizzato" i dati di addestramento invece di imparare regole generali. È come un bambino che pensa che solo i bassotti del vicino siano cani, e che gli altri cani siano esseri completamente diversi. 

Un modello che soffre di overfitting avrà alta precisione sui dati di addestramento ma bassa su nuovi dati. Questo perché ha imparato troppo bene i dettagli dei dati di addestramento, ma non riesce a generalizzare su nuovi dati. 

Per risolvere l’overfitting, si può utilizzare una rete neurale più semplice, aumentare i dati di allenamento, oppure usare specifiche tecniche che influenzano i pesi del modello, come il dropout.

Dropout 

Il dropout consiste nel disattivare casualmente alcuni neuroni durante l'allenamento. È come allenare una squadra di calcio schierando ogni volta giocatori diversi, così tutti diventano più versatili. Questo impedisce al modello di dipendere troppo da neuroni specifici, migliorando la sua capacità di generalizzare su nuovi dati.

Tornando all'esempio del riconoscimento degli animali, il dropout potrebbe aiutare il modello a non affidarsi troppo a singole caratteristiche come il colore del pelo o la forma della testa, rendendolo più robusto nel riconoscere animali anche con aspetti visivi molto diversi.

Architettura e complessità del modello 

Scelta dell’architettura

Ogni problema richiede una specifica architettura di rete neurale, e per sceglierla ci vogliono molta esperienza e sperimentazione. Aumentare il numero di strati (profondità) e il numero di neuroni per strato (larghezza) fa crescere notevolmente la capacità di apprendimento del modello, ma allo stesso tempo ne aumenta la complessità e la difficoltà di allenamento.

Ad esempio, per problemi di visione artificiale come il riconoscimento di oggetti, di solito sono necessarie reti molto profonde (anche decine di strati) per catturare le caratteristiche complesse delle immagini. Al contrario, per problemi di classificazione di testi o semplici tabelle, possono bastare reti meno profonde ma più larghe.

Scelta degli iperparametri

Oltre all'architettura, i ricercatori devono anche scegliere attentamente alcuni parametri che influenzano l’apprendimento del modello, detti iperparametri. Alcuni esempi di iperparametri sono:

  • la velocità di apprendimento (learning rate), che influenza quanto velocemente la rete modifica i suoi parametri interni durante l’addestramento;
  • il numero di esempi che la rete analizza per ogni ciclo di addestramento (batch size);
  • il numero di ripetizioni del ciclo di addestramento (epochs).

Trovare i valori di questi parametri che producano le prestazioni migliori richiede molti tentativi. Una velocità di apprendimento troppo alta, ad esempio, può causare instabilità nell'apprendimento, mentre un numero eccessivo di cicli può portare all'overfitting.

Tra scienza e alchimia: l’arte di allenare reti neurali

La progettazione di reti neurali è spesso vista come una complessa disciplina a metà strada tra l'ingegneria e l'alchimia. Sebbene le reti neurali si basino su principi matematici e modelli ben definiti, la complicata interazione tra i loro miliardi di parametri rende difficile prevedere esattamente come si comporteranno una volta addestrate. Gli esperti del settore spesso parlano di "ricette" per l'addestramento, sottolineando quanto l'intuizione e l'esperienza giochino un ruolo cruciale. Come gli alchimisti medievali, i ricercatori IA moderni mescolano ingredienti (dati, architetture, iperparametri) nella speranza di ottenere l'oro (un modello performante). Nonostante i progressi nella comprensione teorica, la creazione di modelli di intelligenza artificiale all'avanguardia e sempre più integrati nelle nostre società si basa ancora su euristica e tentativi.

Martina Pepiciello

Martina Pepiciello è una collaboratrice di AgorAI. Scrive news e articoli di approfondimento in tema di IA.

Leggi Anche