Che cos'è l'overfitting nell'apprendimento automatico e come evitarlo?



Questo articolo copre l'overfitting in Machine Learning con esempi e alcune tecniche per evitare e rilevare l'overfitting in un modello di Machine learning.

La creazione di un modello di Machine Learning non riguarda solo l'alimentazione dei dati, ci sono molte carenze che influenzano l'accuratezza di qualsiasi modello. Overfitting in è una di queste carenze nell'apprendimento automatico che ostacola l'accuratezza e le prestazioni del modello. In questo articolo vengono trattati i seguenti argomenti:

Cos'è l'overfitting nel machine learning?

Si dice che un modello statistico sia sovradimensionato quando gli forniamo molti più dati del necessario. Per renderlo riconoscibile, immagina di provare ad adattarti a capi di abbigliamento oversize.





Quando un modello si adatta a più dati di quelli effettivamente necessari, inizia a rilevare i dati rumorosi e i valori imprecisi nei dati. Di conseguenza, l'efficienza e la precisione del modello diminuiscono. Diamo un'occhiata ad alcuni esempi di overfitting per capire come effettivamente accade.



Esempi di overfitting

Esempio 1

Se prendiamo un esempio di simple regressione lineare , l'addestramento dei dati consiste nel trovare il costo minimo tra la linea di adattamento migliore e i punti dati. Passa attraverso una serie di iterazioni per trovare il miglior adattamento ottimale, riducendo al minimo i costi. È qui che entra in gioco l'overfitting.



La linea vista nell'immagine sopra può dare un risultato molto efficiente per un nuovo punto dati. In caso di overfitting, quando eseguiamo l'algoritmo di addestramento sul set di dati, permettiamo che il costo si riduca ad ogni numero di iterazioni.

Eseguendo questo per troppo tempo significherà un costo ridotto, ma si adatterà anche ai dati rumorosi del set di dati. Il risultato sarebbe simile al grafico sottostante.

Potrebbe sembrare efficiente ma in realtà non lo è. L'obiettivo principale di un algoritmo come regressione lineare è trovare una tendenza dominante e adattare i punti dati di conseguenza. Ma in questo caso, la linea si adatta a tutti i punti dati, il che è irrilevante per l'efficienza del modello nel prevedere risultati ottimali per i nuovi punti dati di ingresso.

Consideriamo ora un esempio più descrittivo con l'aiuto di una formulazione del problema.

Esempio 2

Dichiarazione problema: Consideriamo di voler prevedere se un giocatore di calcio otterrà uno slot in una squadra di calcio di livello 1 in base alla sua performance attuale nel campionato di livello 2.

Ora immagina, addestriamo e adattiamo il modello con 10.000 di questi giocatori con risultati. Quando proviamo a prevedere il risultato sul set di dati originale, diciamo di aver ottenuto una precisione del 99%. Ma la precisione su un diverso set di dati è del 50 percento circa. Ciò significa che il modello non generalizza bene dai nostri dati di addestramento e dati invisibili.

Questo è l'aspetto dell'overfitting. È un problema molto comune nell'apprendimento automatico e persino nella scienza dei dati. Adesso capiamo il segnale e il rumore.

Segnale vs Rumore

Nella modellazione predittiva, il segnale si riferisce al vero modello sottostante che aiuta il modello ad apprendere i dati. D'altra parte, il rumore è un dato irrilevante e casuale nel set di dati. Per comprendere il concetto di rumore e segnale, prendiamo un esempio di vita reale.

Supponiamo di voler modellare l'età rispetto all'alfabetizzazione tra gli adulti. Se campioniamo una parte molto ampia della popolazione, troveremo una relazione chiara. Questo è il segnale, mentre il rumore interferisce con il segnale. Se facciamo lo stesso su una popolazione locale, il rapporto diventerà confuso. Sarebbe influenzato da valori anomali e casualità, ad esempio, un adulto è andato a scuola presto o un adulto non poteva permettersi l'istruzione, ecc.

Parlando di rumore e segnale in termini di Machine Learning, un buon algoritmo di Machine Learning separerà automaticamente i segnali dal rumore. Se l'algoritmo è troppo complesso o inefficiente, potrebbe apprendere anche il rumore. Quindi, overfitting del modello. Comprendiamo anche l'underfitting nel Machine Learning.

Cos'è l'underfitting?

Per evitare l'eccessivo adattamento, potremmo interrompere la formazione in una fase precedente. Ma potrebbe anche portare il modello a non essere in grado di apprendere abbastanza dai dati di addestramento, che potrebbe avere difficoltà a catturare la tendenza dominante. Questo è noto come underfitting. Il risultato è lo stesso dell'overfitting, inefficienza nella previsione dei risultati.

Ora che abbiamo capito cos'è veramente l'underfitting e l'overfitting nel Machine Learning, proviamo a capire come possiamo rilevare l'overfitting nel Machine Learning.

Come rilevare l'overfitting?

La sfida principale con l'overfitting è stimare l'accuratezza delle prestazioni del nostro modello con nuovi dati. Non saremmo in grado di stimare l'accuratezza finché non la testiamo effettivamente.

Per risolvere questo problema, possiamo suddividere il set di dati iniziale in set di dati di addestramento e test separati. Con questa tecnica, possiamo effettivamente approssimare le prestazioni del nostro modello con i nuovi dati.

Facci capire questo con un esempio, immagina di ottenere una precisione del 90% sul set di addestramento e una precisione del 50% sul set di test. Quindi, automaticamente sarebbe una bandiera rossa per il modello.

Un altro modo per rilevare l'overfitting è iniziare con un modello semplicistico che servirà da punto di riferimento.

Con questo approccio, se provi algoritmi più complessi sarai in grado di capire se la complessità aggiuntiva vale o meno per il modello. È anche conosciuto come Il test del rasoio di Occam , fondamentalmente sceglie il modello semplicistico in caso di prestazioni comparabili nel caso di due modelli. Sebbene rilevare l'overfitting sia una buona pratica,ma ci sono anche diverse tecniche per prevenire l'overfitting. Diamo un'occhiata a come possiamo prevenire l'overfitting nel Machine Learning.

Come evitare l'overfitting nel machine learning?

Esistono diverse tecniche per evitare del tutto l'overfitting in Machine Learning elencate di seguito.

  1. Convalida incrociata

  2. Formazione con più dati

  3. Rimozione di funzionalità

  4. Arresto anticipato

  5. Regolarizzazione

  6. Assemblaggio

1. Convalida incrociata

Una delle funzionalità più potenti per evitare / prevenire l'overfitting è la convalida incrociata. L'idea alla base di questo è quella di utilizzare i dati di addestramento iniziale per generare mini-partizioni di test del treno, quindi utilizzare queste suddivisioni per ottimizzare il modello.

In una convalida k-fold standard, i dati vengono partizionati in k-sottoinsiemi noti anche come fold. Dopodiché, l'algoritmo viene addestrato in modo iterativo sulle pieghe k-1 utilizzando le pieghe rimanenti come set di test, noto anche come piega di controllo.

La convalida incrociata ci aiuta a mettere a punto gli iperparametri solo con il set di addestramento originale. Fondamentalmente mantiene il set di test separatamente come un vero set di dati invisibile per la selezione del modello finale. Quindi, evitando del tutto l'overfitting.

2. Formazione con più dati

Questa tecnica potrebbe non funzionare ogni volta, come abbiamo discusso anche nell'esempio sopra, dove la formazione con una quantità significativa di popolazione aiuta il modello. Fondamentalmente aiuta il modello a identificare meglio il segnale.

Ma in alcuni casi, l'aumento dei dati può anche significare alimentare più rumore al modello. Quando addestriamo il modello con più dati, dobbiamo assicurarci che i dati siano puliti e privi di casualità e incoerenze.

3. Rimozione delle caratteristiche

Sebbene alcuni algoritmi abbiano una selezione automatica di funzionalità. Per un numero significativo di coloro che non dispongono di una selezione di funzionalità incorporata, possiamo rimuovere manualmente alcune funzionalità irrilevanti dalle funzionalità di input per migliorare la generalizzazione.

Un modo per farlo è derivare una conclusione su come una caratteristica si inserisce nel modello. È abbastanza simile al debug del codice riga per riga.

Nel caso in cui una caratteristica non sia in grado di spiegare la pertinenza nel modello, possiamo semplicemente identificare quelle caratteristiche. Possiamo anche utilizzare alcune euristiche di selezione delle funzionalità per un buon punto di partenza.

4. Arresto anticipato

Quando il modello viene addestrato, è possibile misurare effettivamente il rendimento del modello in base a ciascuna iterazione. Possiamo farlo fino a quando le iterazioni migliorano le prestazioni del modello. Successivamente, il modello supera i dati di addestramento poiché la generalizzazione si indebolisce dopo ogni iterazione.

Quindi, fondamentalmente, l'arresto anticipato significa interrompere il processo di addestramento prima che il modello superi il punto in cui il modello inizia a sovraadattare i dati di addestramento. Questa tecnica è utilizzata principalmente in apprendimento approfondito .

5. Regolarizzazione

Fondamentalmente significa forzare artificialmente il tuo modello a essere più semplice utilizzando una gamma più ampia di tecniche. Dipende totalmente dal tipo di studente che stiamo utilizzando. Ad esempio, possiamo potare un file , usa un dropout su un file rete neurale oppure aggiungere un parametro di penalità alla funzione di costo in regressione.

Molto spesso, anche la regolarizzazione è un iperparametro. Significa che può anche essere sintonizzato attraverso la convalida incrociata.

6. Ensembling

Questa tecnica fondamentalmente combina le previsioni di diversi modelli di Machine Learning. Di seguito sono elencati due dei metodi più comuni per l'assemblaggio:

  • L'insacco tenta di ridurre la possibilità di sovradimensionare i modelli

  • Aumentare i tentativi di migliorare la flessibilità predittiva di modelli più semplici

Anche se sono entrambi metodi d'insieme, l'approccio parte totalmente da direzioni opposte. Il bagging utilizza modelli di base complessi e cerca di appianare le loro previsioni mentre il boosting utilizza modelli di base semplici e cerca di aumentare la sua complessità aggregata.

Cos'è la bontà dell'adattamento?

Nella modellazione statistica, la bontà dell'adattamento si riferisce a quanto i risultati o i valori previsti corrispondono ai valori osservati o veri.Un modello che ha appreso il rumore invece del segnale è sovradimensionato perché si adatterà al set di dati di addestramento ma avrà un'efficienza inferiore con il nuovo set di dati.

Il compromesso tra pregiudizio e varianza

Sia la varianza che il bias sono forme di errore di previsione in . Il compromesso tra varianza elevata e bias elevato è un concetto molto importante nelle statistiche e nell'apprendimento automatico. Questo è un concetto che influenza tutti gli algoritmi di Machine Learning supervisionati.

Il compromesso bias-varianza ha un impatto molto significativo sulla determinazione della complessità, underfitting e overfitting per qualsiasi modello di Machine Learning.

Bias

Non è altro che la differenza tra i valori previsti ei valori effettivi o veri nel modello. Non è sempre facile per il modello imparare da segnali piuttosto complessi.

Immaginiamo di inserire un file regressione lineare a un modello con dati non lineari. Non importa quanto efficientemente il modello apprenda le osservazioni, non modellerà le curve in modo efficiente. È noto come underfitting.

Varianza

Si riferisce alla sensibilità del modello a set specifici nei dati di addestramento. Un algoritmo ad alta varianza produrrà un modello bizzarro che è drasticamente diverso dal set di addestramento.

Immagina un algoritmo che si adatti al modello non vincolato e super flessibile, imparerà anche dal rumore nel set di addestramento che causa l'overfitting.

Compromesso pregiudizio-varianza

Un algoritmo di Machine Learning non può essere percepito come un metodo una tantum per l'addestramento del modello, ma è invece un processo ripetitivo.

Gli algoritmi di bias a bassa varianza-alta sono meno complessi, con una struttura semplice e rigida.

  • Addestreranno i modelli che sono coerenti, ma in media imprecisi.

  • Questi includono algoritmi lineari o parametrici, come la regressione, , eccetera.

Gli algoritmi di bias ad alta varianza e bassa tendono ad essere più complessi, con una struttura flessibile.

  • Addestreranno i modelli che sono incoerenti ma in media accurati.

  • Questi includono algoritmi non lineari o non parametrici come , , eccetera.

Questo ci porta alla fine di questo articolo in cui abbiamo imparato l'overfitting in Machine learning e le varie tecniche per evitarlo. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

Se hai trovato pertinente questo articolo su 'Overfitting in Machine Learning', controlla il una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

differenza tra il sovraccarico del metodo e l'override in java

Siamo qui per aiutarti in ogni fase del tuo viaggio e per elaborare un curriculum progettato per studenti e professionisti che vogliono essere un . Il corso è progettato per darti un vantaggio nella programmazione Python e addestrarti per i concetti di base e avanzati di Python insieme a vari piace , , eccetera.

In caso di domande, non esitare a porre tutte le tue domande nella sezione commenti di 'Overfitting in Machine Learning' e il nostro team sarà lieto di rispondere.