La regolarizzazione, un modo per gestire l’overfitting

La regolarizzazione, un modo per gestire l’overfitting

Condividi con i tuoi amici...

Una persona visita una città straniera e ha un’esperienza negativa con un individuo di quella città. Basandosi su questa singola interazione, potrebbe generalizzare erroneamente concludendo che tutte le persone di quella città siano maleducate o poco amichevoli.

Un altro individuo ha avuto una brutta esperienza con una particolare marca di prodotto e generalizza pensando che tutte le marche simili saranno altrettanto scadenti.

In tutti questi casi, è palese una tendenza a fare generalizzazioni eccessive o sbagliate basate su esperienze limitate.

Anche i modelli di intelligenza artificiale possono incappare nello stesso errore. Questo errore si chiama overfitting.

L’overfitting

L’overfitting nelle reti neurali è un fenomeno per cui il modello impara non solo i pattern rilevanti dai dati di addestramento, ma anche le eccezioni, rendendolo meno in grado di generalizzare correttamente su nuovi dati. In qualche modo, il modello si adegua troppo ai dati del campione di addestramento dando molto peso alla loro particolarità così da non riuscire a fare previsioni accurate sulla base di nuovi dati mai visti.

Ciò che accade è simile al caso in cui un sarto realizza un vestito su misura per una persona particolare, ma che molto probabilmente non può andar bene per gli altri clienti.

Come la regolarizzazione risolve l’overfitting

La regolarizzazione è una tecnica utilizzata per gestire l’overfitting limitando la complessità del modello durante l’addestramento. In particolare, la regolarizzazione L2 (nota anche come ridge regression) è una delle tecniche più comuni e efficaci.

In questo articolo mostriamo in cosa consiste questa tecnica applicata ai semplici modelli di regressione lineare, ma poi estendibile a tutti i modelli non lineari. Forniamo una giustificazione statistico-matematica.

Prima di parlare della regolarizzazione ricordiamo che durante l’addestramento, il modello di rete neurale è regolato per minimizzare una funzione di perdita. Questa funzione misura l’errore tra le previsioni del modello e le etichette corrette associate ai dati di addestramento. Per esempio, in un problema di classificazione, la funzione di perdita potrebbe misurare la discrepanza tra la probabilità predetta per una classe e la frequenza con cui si presentano casi reali appartenenti a quella classe.

Per ottimizzare i pesi della rete neurale, viene calcolato il gradiente della funzione di perdita rispetto ai pesi stessi. Il gradiente rappresenta la direzione e l’entità di come i pesi dovrebbero essere aggiornati per ridurre l’errore di predizione. Questo processo è noto come discesa del gradiente.

Durante la discesa del gradiente, i pesi vengono aggiornati iterativamente in modo da ridurre l’errore sulla funzione di perdita sui dati di addestramento specifici. Man mano che l’addestramento procede, i pesi tendono ad adattarsi sempre più ai dettagli e alle caratteristiche dei dati di addestramento, poiché l’obiettivo principale è minimizzare l’errore su questi dati specifici.

Per approfondire il funzionamento delle reti neurali e del loro apprendimento leggi i seguenti articoli

Chiarezza sulle reti neurali

Come l’AI corregge i propri errori: Gradient descent e backpropagation

Se durante l’addestramento un peso risulta utile per ridurre l’errore sui dati di addestramento, la discesa del gradiente tenderà ad aumentarlo. Questo è particolarmente vero quando i dati di addestramento sono rumorosi o quando il modello ha una capacità elevata rispetto alla complessità del problema. In queste situazioni, il modello può adattarsi troppo ai dati di addestramento, portando a pesi che crescono per adattarsi eccessivamente a peculiarità e rumori specifici dei dati di addestramento.

Da qui sorge la necessità di limitare la crescita dei pesi, perché facendolo si limita anche la capacità del modello di adattarsi troppo strettamente ai dettagli e ai rumori dei dati di addestramento.

La regolarizzazione L2 impedisce ai pesi della rete neurale di diventare eccessivamente grandi durante l’addestramento.

Il termine ||W(l)||F2​ penalizza i pesi grandi della rete neurale. Poiché la regolarizzazione è proporzionale alla norma quadratica dei pesi, i pesi più grandi contribuiscono in misura maggiore al costo totale della funzione di perdita regolarizzata. Ricordiamoci che l’obiettivo dell’apprendimento è quello di rendere minima tale funzione che ora è “appesentita” dal termine quadratico dei pesi W.

Di conseguenza, il processo di ottimizzazione durante l’addestramento è incentivato a trovare pesi che siano grandi quanto basta per minimizzare l’errore sui dati di addestramento, ma non più grandi di quanto basta per mantenere la complessità del modello sotto controllo.

Approfondimento matematico

Giustifichiamo matematicamente la tecnica della regolarizzazione.

Stabiliamo, per prima cosa, la relazione esistente tra la funzione di perdita solitamente impiegata in un modello di regressione lineare e la funzione di verosimiglianza che conosciamo grazie alla statistica. Si introduce poi una nuova funzione detta di Massima Verosimiglianza a Posteriori e si stabilisce la funzione di perdita ad essa associata.

Ricorda che la funzione di verosimiglianza è un modo per misurare quanto bene un particolare set di parametri spiega i dati che abbiamo osservato.

consideriamo il procedimento dettagliatamente a partire dal teorema di Bayes già implicitamente utilizzato nelle formule precedenti.

Per un approfondimento dell’applicazione della formula di Bayes ai modelli di AI leggi l’articolo

Modelli generativi e discriminativi a confronto

Ricordiamo che il teorema di Bayes è di fondamentale importanza nei modelli di intelligenza artificiale perché fornisce un metodo sistematico per aggiornare le credenze o le ipotesi basate su nuove evidenze o dati. Questo è cruciale in contesti in cui l’incertezza e la variabilità dei dati sono presenti, come nella modellazione probabilistica e nell’apprendimento automatico.

Il teorema di Bayes supporta l’apprendimento continuo e adattivo, permettendo di aggiornare le credenze posteriori (distribuzione dei parametri) del modello sulla base di nuovi dati o evidenze. Questo può essere visto come un processo iterativo di aggiornamento della funzione di perdita durante il ciclo di vita del modello, riflettendo la sua capacità di adattarsi dinamicamente ai cambiamenti nei dati o nelle conoscenze disponibili. Il teorema fornisce inoltre un’interpretazione probabilistica dell’addestramento del modello, permettendo di stabilire relazioni tra la funzione di perdita e le distribuzioni probabilistiche dei parametri.

La MAP permette di incorporare conoscenza preesistente sui parametri w tramite una distribuzione a priori p(w). Questo è particolarmente utile quando si dispone di informazioni o di esperienza pregressa sui parametri del modello. Ad esempio, se si sa che i parametri dovrebbero essere limitati in una certa gamma o che alcune combinazioni di parametri sono più probabili di altre, una priore appropriata può riflettere queste conoscenze, migliorando le stime dei parametri.

In questo caso si assume p(w) gaussiana.

Introdurre una p(w) priori gaussiana su w come si fa con la Massima Stima a Posteriori (MAP) ha effetti simili all’introduzione di rumore gaussiano negli input nel contesto della Massima Verosimiglianza (MLE). Entrambi questi approcci hanno l’effetto di “svincolare” i parametri w dai dati di input del campione in modi diversi ma complementari.

Ulteriori approfondimenti relativi all’introduzione di fattori casuali nell’input delle reti neurali puoi trovarli leggendo l’articolo

Scovare l’overfitting: errore di addestramento ed errore di validazione

Per scovare casi di overfitting si impiegano questi due errori.

L’errore di addestramento è quello che abbiamo già in parte conosciuto perché è strettamente legato alla funzione di perdita. Quando la funzione di perdita ha raggiunto un valore basso e stabile, l’errore di addestramento sarà vicino al valore della funzione di perdita in quanto è essenzialmente una media della funzione di perdita su tutti i dati di addestramento.

Durante l’addestramento del modello, l’obiettivo principale è minimizzare l’errore di addestramento. Ciò significa che il modello cerca di adattarsi il meglio possibile ai dati di addestramento, riducendo la discrepanza tra le predizioni del modello e i valori reali osservati nei dati di addestramento.

L’errore di addestramento può essere un indicatore ingannevole della capacità del modello di generalizzare su nuovi dati. Un modello che minimizza l’errore di addestramento potrebbe soffrire di overfitting se si specializza troppo sui dati specifici di addestramento e non riesce a generalizzare bene su dati non visti.

L’errore di validazione è la misura dell’errore o della perdita del modello sui dati di validazione, ovvero su dati che non sono stati utilizzati durante l’addestramento ma che sono separati appositamente per valutare le prestazioni del modello.

Il principale scopo dell’errore di validazione è valutare la capacità di generalizzazione del modello. I dati di validazione forniscono una stima imparziale di come il modello si comporterà su nuovi dati, cioè dati non visti durante l’addestramento.

L’errore di validazione può essere superiore all’errore di addestramento se il modello soffre di overfitting. Tuttavia, se il modello generalizza bene, l’errore di validazione dovrebbe essere simile o inferiore all’errore di addestramento.

Ecco come potrebbe apparire un grafico dei due errori quando da un certo punto in poi esiste l’alta probabilità di essere in presenza di overfitting: mentre l’errore di addestramento continua a scendere un ciclo dopo l’altro, l’errore di validazione non scende più in modo significativo.