Overfitting
Intelligenza artificiale
Sfondo nero e blu
Overfitting

Scopri come evitare l'overfitting, in modo da poter generalizzare accuratamente i dati all'esterno del tuo modello.


Cos'è l'overfitting?

L'overfitting è un fenomeno della data science che si verifica quando un modello statistico si adatta esattamente ai suoi dati di allenamento. Quando questo accade, l'algoritmo purtroppo non può funzionare correttamente in presenza di dati inediti, vanificando il suo scopo. La generalizzazione di un modello sui nuovi dati è in definitiva ciò che ci consente di utilizzare gli algoritmi di machine learning ogni giorno per fare delle previsioni e classificare i dati.

Quando vengono creati degli algoritmi di apprendimento automatico, essi sfruttano un set di dati campione per addestrare il modello. Tuttavia, quando il modello si allena troppo a lungo su dati campione o quando il modello è troppo complesso, può iniziare a riconoscere il "rumore", ovvero informazioni irrilevanti, all'interno del set di dati. Quando il modello memorizza il rumore e si adatta troppo strettamente al set di allenamento, il modello diventa "overfitted" e non è in grado di generalizzare adeguatamente con nuovi dati. Se un modello non può generalizzare bene con nuovi dati, allora non sarà in grado di eseguire i compiti di classificazione o predizione per i quali è stato pensato.

Bassi tassi di errore e un'alta varianza sono buoni indicatori dell' overfitting. Per prevenire questo tipo di comportamento una parte del set di dati di addestramento è tipicamente messa da parte come "set di test" per testare l'overfitting. Se i dati di addestramento hanno un basso tasso di errore e i dati di test hanno un alto tasso di errore, segnala un overfitting.


Overfitting e underfitting a confronto

Se un eccessivo addestramento o la complessità del modello risulta in un overfitting, allora una risposta logica di prevenzione sarebbe quella di mettere in pausa il processo di formazione prima, noto anche come "arresto precoce" o di ridurre la complessità del modello eliminando gli input meno rilevanti. Tuttavia, se ci si ferma troppo presto o si escludono troppe caratteristiche importanti, si può incorrere nel problema opposto e al contrario, si può ottenere un underfit del modello. L'underfitting si verifica quando il modello non è stato addestrato per un tempo sufficiente o le variabili di input non sono abbastanza significative per determinare una relazione significativa tra le variabili di input e quelle di output.

In entrambi gli scenari, il modello non può stabilire la tendenza dominante all'interno del dataset di addestramento. Di conseguenza, anche l'underfitting si adatta male ai dati inediti. Tuttavia, a differenza dell'overfitting, i modelli underfitted sperimentano alti bias e meno varianza nelle loro previsioni. Questo illustra il compromesso bias-varianza, che si verifica nel momento in cui un modello underfitted è passato a uno stato overfitted. Man mano che il modello apprende, il suo bias si riduce, ma può aumentare la varianza man mano che diventa overfitted. Quando si adatta un modello, l'obiettivo è quello di trovare il "punto ottimale" tra underfitting e overfitting, in modo da poter stabilire una tendenza dominante e applicarla su larga scala a nuovi set di dati.


Come rilevare i modelli overfit

Per valutare l'accuratezza dei modelli di apprendimento automatico, è importante testare il livello di fitness del modello. La validazione incrociata K-fold è una delle tecniche più popolari per valutare l'esattezza del modello.

Nella convalida incrociata k-fold, i dati vengono suddivisi in k sottoinsiemi di pari dimensioni, detti anche "fold". Uno dei k-fold fungerà da set di test, noto anche come set di holdout o set di validazione, e i restanti fold addestreranno il modello. Questo processo si ripete finché ciascuno dei fold non avrà funto da fold di holdout. Dopo ogni valutazione, ne viene conservato un punteggio e, una volta completate tutte le iterazioni, viene calcolata una media di tali punteggi per valutare le prestazioni del modello complessivo.


Come evitare l'overfitting

Sebbene l'uso di un modello lineare ci aiuti ad 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 riportate alcune tecniche che possono essere utilizzate per prevenire l'overfitting:

  • Arresto anticipato: come già accennato, questo metodo cerca di mettere in pausa l'addestramento prima che il modello inizi a riconoscere il rumore all'interno del modello. Questo approccio rischia di fermare il processo di formazione troppo presto, portando al problema opposto di underfitting. L'obbiettivo finale è trovare lo "sweet spot" tra underfitting e overfitting.
  • Allena con più dati: ampliare il set di addestramento includendo più dati può aumentare l'accuratezza del modello, fornendo più opportunità per analizzare la relazione dominante tra le variabili di input e di output. Ma questo metodo è più efficace quando vengono caricati nel modello dei dati puliti e rilevanti. Altrimenti potresti semplicemente continuare ad aggiungere più complessità al modello, causandone l'overfit.
  • Aumento dei dati: mentre in generale è meglio inserire dati puliti e rilevanti nei dati di addestramento, a volte vengono aggiunti dati rumorosi per rendere un modello più stabile. Tuttavia, questo metodo dovrebbe essere usato con parsimonia.
  • Selezione della funzione: nel costruire un modello, ci sarà un certo numero di parametri o caratteristiche che vengono utilizzati per prevedere un determinato risultato, ma molte volte, queste caratteristiche possono essere ridondanti rispetto ad altre. La selezione della funzione è il processo di identificazione di quelle più importanti all'interno dei dati di addestramento e poi l'eliminazione di quelle irrilevanti o ridondanti. Questo è comunemente confuso con la riduzione della dimensionalità, ma è diverso.  Tuttavia entrambi i metodi aiutano a semplificare il tuo modello per stabilire la tendenza dominante nei dati.
  • Regolarizzazione: se l'overfitting si verifica quando un modello è troppo complesso, ha senso per noi 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 più grandi, che successivamente limita la quantità di varianza nel modello.  Esistono diversi metodi di regolarizzazione, come la regolarizzazione L1, la regolarizzazione Lasso e il dropout, ma tutti cercano di identificare e ridurre il rumore nei dati.
  • Metodi di insieme: i metodi di apprendimento di insieme sono costituiti da una serie di classificatori - ad esempio, strutture ad albero decisionali - e le loro previsioni vengono aggregate per identificare il risultato più popolare. I metodi di ensemble più noti sono il bagging e il boosting. Nel metodo bagging, un campione casuale di dati in un set di addestramento è selezionato con sostituzione, il che significa che i singoli punti di dati possono essere scelti più di una volta. Dopo che sono stati generati diversi campioni di dati, questi modelli vengono addestrati in modo indipendente e, a seconda del tipo di attività (regressione o classificazione), la media o la maggioranza di queste previsioni produce una stima più accurata. Questo approccio viene comunemente utilizzato per ridurre la varianza all'interno di un set di dati rumoroso.
Guarda come sfruttare alcuni di questi approcci in questo tutorial sul riconoscimento delle immagini di IBM Developer

Ricerca recente

Mentre quanto sopra è la definizione consolidata di overfitting, una recente ricerca (PDF, 1,2 MB, link esterno a IBM) indica che i modelli complessi, come i modelli di apprendimento profondo e le reti neurali, eseguono un'alta precisione nonostante siano addestrati per "adattarsi esattamente o interpolare". Questo risultato è direttamente in contrasto con la letteratura storica su questo argomento, e si spiega attraverso la curva di rischio "a pendenza doppia" qui sotto. Si può notare che come il modello impara oltre la soglia di interpolazione, le sue prestazioni migliorano. I metodi che abbiamo menzionato prima per evitare l'overfitting, come l'arresto anticipato e la regolarizzazione, possono effettivamente prevenire l'interpolazione.


IBM e overfitting

IBM Watson Studio è una piattaforma di dati aperta che consente ai data scientist di creare, eseguire, testare e ottimizzare i modelli di AI su vasta scala su qualsiasi cloud. IBM Watson Studio ti consente di rendere operativa l'AI ovunque come parte di IBM Cloud Pak® for Data. Unisci i team, semplifica la gestione del ciclo di vita AI e accelera il time to value con un'architettura multicloud open source e flessibile.

Per creare dei modelli di machine learning in modo accurato, registrati per l'IBMid e crea il tuo account IBM Cloud oggi stesso.


Soluzioni correlate

Watson Studio

IBM Watson Studio è una piattaforma di dati aperta che consente ai data scientist di creare, eseguire, testare e ottimizzare i modelli di AI su vasta scala su qualsiasi cloud.