Cos’è “Overfitting” e “Underfitting” nell’apprendimento automatico?

– S1E14

Poiché il tuo compito principale è selezionare un algoritmo di apprendimento e addestrarlo su alcuni dati, le due cose che possono andare male sono “cattivo algoritmo” e “cattivi dati”

Questi sono esempi di un cattivo algoritmo-

Overfitting-

Overfitting è un errore di modellazione che si verifica quando una funzione si adatta troppo strettamente ad un insieme limitato di punti dati. Significa che il modello funziona bene sui dati di allenamento, ma non generalizza bene.

Ex- Diciamo che stai visitando un paese straniero e il tassista ti frega. Potresti essere tentato di dire che tutti i tassisti di quel paese sono ladri

Overfitting dei dati di allenamento

Modelli complessi come le reti neurali profonde possono rilevare modelli sottili nei dati, ma se l’insieme di allenamento è rumoroso, o se è troppo piccolo (il che introduce rumore di campionamento), allora è probabile che il modello rilevi modelli nel rumore stesso.

Per esempio – diciamo che aggiungete l’attributo del nome del paese al vostro modello di soddisfazione della vita-

In questo caso, un modello complesso può rilevare modelli come il fatto che tutti i paesi nei dati di allenamento con una ‘w’ nel loro nome hanno una soddisfazione della vita superiore a 7: Nuova Zelanda (7.3), Norvegia (7,4), Svezia (7,2) e Svizzera (7,5).

Ma questa regola di soddisfazione della w non si generalizza al Ruanda, allo Zimbabwe, ecc.

Ovviamente questo modello si è verificato nei dati di allenamento per puro caso, ma il modello non ha modo di dire se un modello è reale o semplicemente il risultato del rumore nei dati.

L’overfitting avviene quando il modello è troppo complesso rispetto alla quantità e alla rumorosità dei dati di allenamento.

Ecco le possibili soluzioni:

  • Semplificare il modello scegliendone uno con meno parametri (es, un modello lineare piuttosto che un modello polinomiale di alto grado),
  • Riducendo il numero di attributi nei dati di allenamento, o vincolando* il modello.
  • Raccogliere più dati di allenamento.
  • Ridurre il rumore nei dati di allenamento (es, correggere gli errori dei dati e rimuovere gli outlier).

Costringere un modello per renderlo più semplice e ridurre il rischio di overfitting si chiama regolarizzazione.

Per esempio, il modello lineare che abbiamo definito prima ha due parametri, θ0 e θ1 .

Questo dà all’algoritmo di apprendimento due gradi di libertà per adattare il modello ai dati di allenamento: può modificare sia l’altezza (θ0) che la pendenza (θ1) della linea.

Se forzassimo θ1 = 0, l’algoritmo avrebbe solo un grado di libertà e farebbe molta più fatica ad adattare correttamente i dati: tutto quello che potrebbe fare è spostare la linea su o giù per avvicinarsi il più possibile alle istanze di allenamento, quindi finirebbe intorno alla media.

Se permettiamo all’algoritmo di modificare θ1 ma lo forziamo a tenerlo piccolo, allora l’algoritmo di apprendimento avrà effettivamente qualcosa tra uno e due gradi di libertà.

Si vuole trovare il giusto equilibrio tra l’adattarsi perfettamente ai dati di addestramento e mantenere il modello abbastanza semplice da assicurare che generalizzi bene.

La regolarizzazione riduce il rischio di overfitting
  • Linea tratteggiata- addestrato solo su cerchi,
  • Linea tratteggiata- addestrata sia sui cerchi che sui quadrati
  • Linea solida- è un modello addestrato solo sui cerchi

Si può vedere che la regolarizzazione ha forzato il modello ad avere una pendenza minore: questo modello non si adatta ai dati di allenamento (cerchi) così bene come il primo modello, ma in realtà generalizza meglio ai nuovi esempi che non ha visto durante l’allenamento (quadrati).

La quantità di regolarizzazione da applicare durante l’apprendimento può essere controllata da un iperparametro.

Un iperparametro è un parametro di un algoritmo di apprendimento (non del modello). Deve essere impostato prima dell’addestramento e rimane costante durante l’addestramento.

Se si imposta l’iperparametro di regolarizzazione a

  • un valore molto grande- si otterrà un modello quasi piatto (una pendenza vicina allo zero), l’algoritmo di apprendimento quasi certamente non sovraadatterà i dati di formazione, ma avrà meno probabilità di trovare una buona soluzione.

La regolazione degli iperparametri è una parte importante della costruzione di un sistema di Machine Learning (vedrai un esempio dettagliato nelle prossime puntate).

Lo underfit si verifica quando il tuo modello è troppo semplice per imparare la struttura sottostante dei dati.

Un modello lineare della soddisfazione della vita è incline all’underfit, la realtà è semplicemente più complessa del modello, quindi le sue previsioni sono destinate ad essere inaccurate.

Ecco le principali opzioni per risolvere questo problema-

  • Selezionare un modello più potente, con più parametri.
  • Fornire caratteristiche migliori all’algoritmo di apprendimento (feature engineering).
  • Ridurre i vincoli sul modello (es, ridurre l’iperparametro di regolarizzazione).

Leggi il prossimo – Test e convalida di un modello allenato

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.