Cos'è l'overfitting?
Evita l'overfitting con watsonx.ai Abbonati per ricevere gli aggiornamenti sull'AI
Sfondo nero e blu
Cos'è l'overfitting?

Nel machine learning, l'overfitting si verifica quando un algoritmo si adatta troppo fedelmente o addirittura esattamente ai suoi dati di addestramento, dando luogo a un modello che non è in grado di effettuare previsioni o conclusioni accurate da dati diversi dai dati di addestramento. 

L'overfitting vanifica lo scopo del modello di machine learning. La generalizzazione di un modello sui nuovi dati è in definitiva ciò che ci consente di utilizzare ogni giorno algoritmi di machine learning per fare previsioni e classificare i dati.

Quando vengono costruiti gli algoritmi di machine learning, essi utilizzano un set di dati campione per addestrare il modello. Tuttavia, quando il modello si addestra troppo a lungo sui dati campione o quando il modello è troppo complesso, può iniziare ad apprendere il "rumore", o informazioni irrilevanti, all'interno del set di dati. Quando il modello memorizza il rumore e si adatta troppo strettamente al set di addestramento, il modello diventa soggetto a "overfitting" e non è in grado di generalizzare bene sui nuovi dati. Se un modello non è in grado di generalizzare correttamente sui nuovi dati, non sarà in grado di eseguire le attività di classificazione o stima per le quali è stato progettato.

Bassi tassi di errore e un'elevata varianza sono buoni indicatori di overfitting. Per evitare questo tipo di comportamento, parte del set di dati di addestramento viene in genere messo da parte come "set di test" per verificare l'overfitting. Se i dati di addestramento hanno un tasso di errore basso e i dati di test hanno un tasso di errore elevato, ciò è un segnale di overfitting.

IBM nominata leader da IDC

Leggi perché IBM è stata nominata leader nel report IDC MarketScape: Worldwide AI Governance Platforms 2023.

Contenuti correlati

Registrati per il white paper sulla governance dell'AI

Overfitting vs. underfitting

Se un eccessivo addestramento o la complessità del modello determinano un overfitting, allora una risposta logica di prevenzione sarebbe quella di sospendere anticipatamente il processo di addestramento, noto anche come "arresto anticipato", o di ridurre la complessità del modello eliminando input meno rilevanti. Tuttavia, se si fa una pausa troppo precoce o si escludono troppe funzioni importanti, è possibile che si verifichi il problema opposto, ovvero l'underfitting del modello. L'underfitting si verifica quando il modello non è stato addestrato per un tempo sufficiente o le variabili di input non sono sufficientemente significative da determinare una relazione significativa tra le variabili di input e di output.

In entrambi gli scenari, il modello non può stabilire la tendenza dominante all'interno del set di dati di addestramento. Di conseguenza, l'underfitting generalizza male anche i dati non visti. Tuttavia, a differenza dell'overfitting, i modelli soggetti a underfitting presentano un'elevata distorsione e una minore varianza all'interno delle loro previsioni. Questo illustra il compromesso distorsione-varianza, che si verifica quando un modello in uno stato di underfitting passa a uno stato di overfitting. Man mano che il modello apprende, la sua distorsione si riduce, ma può aumentare di varianza man mano che diventa soggetto a overfitting. Quando si adatta un modello, l'obiettivo è quello di trovare il punto di equilibrio ottimale tra underfitting e overfitting, in modo da poter stabilire una tendenza dominante e applicarla ampiamente a nuovi set di dati.

Come rilevare i modelli soggetti a overfitting

Per comprendere l'accuratezza dei modelli di machine learning, è importante testarne l'idoneità. La convalida incrociata k-fold è una delle tecniche più diffuse per valutare l'accuratezza del modello.

Nella convalida incrociata k-fold, i dati vengono suddivisi in k sottoinsiemi di uguali dimensioni, che sono anche chiamati "fold". Uno dei k-fold fungerà da set di test, noto anche come set di holdout o set di convalida, e i restanti fold addestreranno il modello. Questo processo si ripete fino a quando ogni fold non avrà funto da fold di holdout. Dopo ogni valutazione, viene mantenuto un punteggio e, al termine di tutte le iterazioni, viene calcolata la media dei punteggi per valutare le prestazioni del modello complessivo.

Come evitare l'overfitting

Sebbene l'utilizzo di un modello lineare ci aiuti a evitare l'overfitting, molti problemi del mondo reale sono non lineari. Oltre a capire come rilevare l'overfitting, è importante capire come evitare del tutto l'overfitting. Di seguito sono elencate alcune tecniche che è possibile utilizzare per prevenire l'overfitting:

  • Arresto anticipato: come accennato in precedenza, questo metodo cerca di sospendere l'addestramento prima che il modello inizi a imparare il rumore all'interno del modello. Questo approccio rischia di arrestare troppo presto il processo di addestramento, portando al problema opposto dell'underfitting. Trovare il punto di equilibrio ottimale tra underfitting e overfitting è l'obiettivo finale.
  • Addestramento con più dati: l'ampliamento del set di addestramento con un maggior numero di dati può aumentare l'accuratezza del modello, offrendo maggiori opportunità di individuare la relazione dominante tra le variabili di input e di output. Detto questo, questo è un metodo più efficace quando nel modello vengono inseriti dati puliti e pertinenti. Altrimenti, potresti semplicemente continuare ad aggiungere ulteriore complessità al modello, causandone l'overfitting.
  • Aumento dei dati: sebbene sia meglio iniettare dati puliti e pertinenti nei dati di addestramento, a volte si aggiungono dati rumorosi per rendere un modello più stabile. Tuttavia, questo metodo dovrebbe essere eseguito con parsimonia.
  • Selezione delle funzioni: quando si crea un modello, si dispone di una serie di parametri o funzioni che vengono utilizzati per prevedere un determinato risultato, ma molte volte queste funzioni possono essere ridondanti per altre. La selezione delle funzioni è il processo di identificazione di quelle più importanti all'interno dei dati di addestramento ed eliminazione di quelle irrilevanti o ridondanti. Ciò viene comunemente scambiato per riduzione della dimensionalità, ma è diverso.  Tuttavia, entrambi i metodi aiutano a semplificare il modello per stabilire la tendenza dominante nei dati.
  • Regolarizzazione: se l'overfitting si verifica quando un modello è troppo complesso, ha senso ridurre il numero di funzioni. Ma cosa succede se non sappiamo quali input eliminare durante il processo di selezione delle funzioni? Se non sappiamo quali funzioni rimuovere dal nostro modello, i metodi di regolarizzazione possono essere particolarmente utili. La regolarizzazione applica una "penalità" ai parametri di input con i coefficienti maggiori, che successivamente limita la quantità di varianza nel modello.  Sebbene esistano numerosi metodi di regolarizzazione, come la regolarizzazione Lasso, la regressione ridge e il dropout, tutti cercano di identificare e ridurre il rumore all'interno dei dati.
  • Metodi d'insieme: i metodi di apprendimento d'insieme sono costituiti da un insieme di classificatori (ad esempio, strutture ad albero decisionali) e le relative previsioni vengono aggregate per identificare il risultato più popolare. I metodi d'insieme più noti sono il bagging e il boosting. Nel bagging, un campione casuale di dati in un set di addestramento viene selezionato con sostituzione, il che significa che i singoli punti dati possono essere scelti più di una volta. Dopo aver generato diversi campioni di dati, questi modelli vengono addestrati in modo indipendente e, a seconda del tipo di attività, ossia regressione o classificazione, la media o la maggior parte di tali previsioni producono una stima più accurata. Questo approccio è comunemente usato per ridurre la varianza all'interno di un set di dati rumoroso.
Scopri come utilizzare alcuni di questi approcci in questo tutorial sul riconoscimento delle immagini di IBM Developer
Ricerche recenti

Mentre quella sopra riportata è la definizione consolidata di overfitting, una recente ricerca (link esterno a IBM) indica che i modelli complessi, come i modelli di deep learning e le reti neurali, ottengono un'elevata precisione nonostante siano stati addestrati per "adattarsi esattamente o interpolare". Questo risultato è in netto contrasto con la letteratura storica sull'argomento e si spiega con la curva di rischio a "doppia discesa" riportata di seguito. Si può notare che, man mano che il modello apprende oltre la soglia di interpolazione, le prestazioni del modello migliorano. I metodi che abbiamo menzionato in precedenza per evitare l'overfitting, come l'arresto anticipato e la regolarizzazione, possono in realtà impedire l'interpolazione.

Soluzioni correlate
IBM Watson Studio

IBM Watson Studio è una piattaforma open data che consente ai data scientist di costruire, eseguire, testare e ottimizzare i modelli AI su larga scala su qualsiasi cloud.

Esplora IBM Watson Studio
IBM Cloud Pak for Data

IBM Cloud Pak for Data è una piattaforma dati aperta ed estensibile che fornisce un data fabric per rendere tutti i dati disponibili per l'AI e gli analytics su qualsiasi cloud.

Scopri IBM Cloud Pak for Data
Risorse Comprensione dell'overfitting benigno nel meta apprendimento basato sul gradiente

Le prove empiriche rivelano che i metodi di meta apprendimento sovraparametrizzati funzionano ancora bene, un fenomeno spesso chiamato overfitting benigno.

Un forte overfitting può essere mitigato da un livellamento appreso correttamente

Analizza due mezzi empirici per inserire più livellamento appreso durante l'addestramento antagonistico (AT, Adversarial Training)