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.
Leggi perché IBM è stata nominata leader nel report IDC MarketScape: Worldwide AI Governance Platforms 2023.
Registrati per il white paper sulla governance dell'AI
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.
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.
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:
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.
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.
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.
Le prove empiriche rivelano che i metodi di meta apprendimento sovraparametrizzati funzionano ancora bene, un fenomeno spesso chiamato overfitting benigno.
Analizza due mezzi empirici per inserire più livellamento appreso durante l'addestramento antagonistico (AT, Adversarial Training)