Che cos'è l'overfitting?

L'overfitting è un comportamento di machine learning indesiderato che si verifica quando il modello di machine learning fornisce previsioni accurate per i dati di addestramento ma non per i nuovi dati. Quando i data scientist utilizzano modelli di machine learning per fare previsioni, prima addestrano il modello su un set di dati noto. Quindi, sulla base di queste informazioni, il modello tenta di prevedere i risultati per i nuovi set di dati. Un modello di overfit può fornire previsioni imprecise e non può funzionare bene per tutti i tipi di nuovi dati.

Perché si verifica un overfitting?

È possibile ottenere previsioni accurate solo se il modello di machine learning viene generalizzato a tutti i tipi di dati all'interno del relativo dominio. L'overfitting si verifica quando il modello non può essere generalizzato e si adatta in modo eccessivo al set di dati di addestramento. L'overfitting si verifica per diversi motivi, ad esempio:
•    La dimensione dei dati di addestramento è troppo piccola e non contiene campioni di dati sufficienti per rappresentare in modo accurato tutti i possibili valori dei dati di input.
•    I dati di addestramento contengono grandi quantità di informazioni irrilevanti, chiamate dati rumorosi.
•    Il modello viene addestrato troppo a lungo su un singolo set di dati campione.
•    La complessità del modello è elevata, quindi il modello riconosce il rumore all'interno dei dati di addestramento.

Esempi di overfitting
Considera un caso d'uso in cui un modello di machine learning deve analizzare delle foto e identificare quelle che contengono cani. Se il modello di machine learning è stato addestrato su un set di dati che contiene foto di cui la maggior parte mostrano cani all'aperto nei parchi, potrebbe imparare a usare l'erba come caratteristica per la classificazione e non riconoscere un cane all'interno di una stanza.
Un altro esempio di overfitting è rappresentato da un algoritmo di machine learning che prevede il rendimento accademico e il risultato della laurea di uno studente universitario analizzando diversi fattori come il reddito familiare, il rendimento scolastico passato e le qualifiche accademiche dei genitori. Tuttavia, i dati del test includono solo candidati di un genere o gruppo etnico specifico. In questo caso, l'overfitting fa diminuire la precisione della previsione dell'algoritmo per i candidati con sesso o etnia al di fuori del set di dati del test.

Come si può rilevare l'overfitting?

Il metodo migliore per rilevare i modelli di overfitting consiste nel testare i modelli di machine learning su più dati con una rappresentazione completa dei possibili valori e tipi di dati di input. In genere, una parte dei dati di addestramento viene utilizzata come dati di test per verificare l'overfitting. Un elevato tasso di errore nei dati di test indica un overfitting. Di seguito è riportato un metodo di test per l'overfitting.
Convalida incrociata K-fold
La convalida incrociata è uno dei metodi di test utilizzati nella pratica. In questo metodo, i data scientist dividono il set di addestramento in K sottoinsiemi o set di campioni di dimensioni uguali chiamati fold. Il processo di addestramento consiste in una serie di iterazioni. Ogni iterazione include i seguenti passaggi:
1.    Mantenere un sottoinsieme come dati di convalida e addestrare il modello di machine learning sui restanti sottoinsiemi K-1.
2.    Osservare il modo in cui il modello viene eseguito sul campione di convalida.
3.    Valutare le prestazioni del modello in base alla qualità dei dati di output.


Le iterazioni si ripetono finché il modello non viene testato su ogni set di campioni. È quindi possibile calcolare la media dei punteggi in tutte le iterazioni per ottenere la valutazione finale del modello predittivo.

Come si può evitare l'overfitting?

È possibile prevenire l'overfitting diversificando e dimensionando il set di dati di addestramento o utilizzando altre strategie di data science, come quelle riportate di seguito.
Arresto anticipato
L'arresto anticipato interrompe la fase di addestramento prima che il modello di machine learning riconosca il rumore nei dati. Tuttavia, è importante che i tempi siano corretti, altrimenti il modello non darà risultati accurati.
Eliminazione
È possibile identificare diverse caratteristiche o parametri che influiscono sulla previsione finale quando si crea un modello. La selezione delle caratteristiche, o eliminazione, identifica le caratteristiche più importanti all'interno del set di addestramento ed elimina le caratteristiche irrilevanti. Ad esempio, per prevedere se un'immagine è un animale o un essere umano, è possibile esaminare vari parametri di input come la forma del viso, la posizione dell'orecchio, la struttura del corpo e così via. È possibile dare priorità alla forma del viso e ignorare la forma degli occhi.
Regolarizzazione
La regolarizzazione è una raccolta di tecniche di addestramento/ottimizzazione che cercano di ridurre l'overfitting. Questi metodi cercano di eliminare quei fattori che non influiscono sui risultati della previsione valutando le caratteristiche in base all'importanza. Ad esempio, i calcoli matematici applicano un valore di penalità alle caratteristiche con impatto minimo. Considera un modello statistico che tenta di prevedere i prezzi delle case di una città in 20 anni. La regolarizzazione darebbe un valore di penalità inferiore a caratteristiche come la crescita della popolazione e il reddito medio annuo e un valore di penalità più elevato alla temperatura media annuale della città.
Ensembling
L'ensembling combina le previsioni di diversi algoritmi di machine learning separati. Alcuni modelli sono definiti learner deboli perché i loro risultati sono spesso imprecisi. I metodi di ensemble combinano tutti i learner deboli per ottenere risultati più accurati. Utilizzano più modelli per analizzare i dati di esempio e scegliere i risultati più accurati. I due principali metodi di ensemble sono il bagging e il boosting. Il boosting addestra diversi modelli di machine learning uno dopo l'altro per ottenere il risultato finale, mentre il bagging addestra i modelli in parallelo.
Aumento dei dati
L'aumento dei dati è una tecnica di machine learning che modifica leggermente i dati di esempio ogni volta che il modello li elabora. Puoi eseguire questa operazione modificando i dati di input con moderazione. Se eseguito con moderazione, l'aumento dei dati rende i set di addestramento unici per il modello e impedisce al modello di apprenderne le caratteristiche. Ad esempio, applicando trasformazioni come conversione, capovolgimento e rotazione alle immagini di input.

 

Che cos'è l'underfitting?

L'underfitting è un altro tipo di errore che si verifica quando il modello non è in grado di determinare una relazione significativa tra i dati di input e di output. L'underfitting si verifica se i modelli non sono stati addestrati per il periodo di tempo appropriato su un numero elevato di punti di dati.
Underfitting e overfitting
I modelli con underfitting presentano un bias elevato: forniscono risultati imprecisi sia per i dati di addestramento sia per il set di test. D'altra parte, i modelli con overfitting presentano un'elevata varianza: forniscono risultati accurati per il set di addestramento ma non per il set di test. Un maggiore addestramento del modello consente di ridurre il bias, ma la varianza può aumentare. I data scientist mirano a trovare il punto di equilibrio tra underfitting e overfitting quando adattano un modello. Un modello ben adattato può stabilire rapidamente la tendenza dominante per set di dati visti e non visti.

In che modo AWS può ridurre al minimo gli errori di overfitting nei modelli di machine learning?

Puoi utilizzare Amazon SageMaker per creare, addestrare e implementare modelli di machine learning per qualsiasi caso d'uso con infrastrutture, strumenti e flussi di lavoro completamente gestiti. Amazon SageMaker dispone di una caratteristica integrata denominata Debugger Amazon SageMaker che analizza automaticamente i dati generati durante l'addestramento, come input, output e trasformazioni. Di conseguenza, è in grado di rilevare e segnalare un overfitting e altre imprecisioni senza intervento manuale.

Per esempio, puoi:

  • Interrompere automaticamente il processo di addestramento quando viene raggiunta la precisione desiderata.
  • Acquisire i parametri di addestramento in tempo reale.
  • Ricevere avvisi quando viene rilevato un overfitting.

Riduci i tempi e i costi di addestramento dei modelli di machine learning. Inizia subito a utilizzare il machine learning su AWS creando un account gratuito oggi stesso.

Fasi successive dell'overfitting in AWS

Scopri ulteriori risorse correlate al prodotto
Servizi gratuiti di machine learning in AWS 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Inizia a lavorare con la console

Inizia subito a sviluppare nella Console di gestione AWS.

Accedi