Regolarizzazione e validazione: tenere a bada l'overfitting
Nell'articolo su bias e varianza un polinomio di grado 11 stimato su 12 punti passava esattamente per tutti i punti di addestramento, ma sbagliava di molto su dati nuovi. Per tenere a bada questo problema servono due strumenti complementari:
- la regolarizzazione penalizza la complessità del modello durante la stima, così che si adatti meno al rumore e sbagli meno su dati nuovi (cioè generalizzi meglio);
- la validazione stima quanto il modello sbaglia su dati nuovi, e permette di scegliere tra modelli diversi.
Regolarizzazione
Un modello semplice tende ad avere bassa varianza, ma un bias elevato, perché potrebbe non essere abbastanza flessibile da descrivere correttamente i dati. Al contrario, un modello molto complesso può adattarsi meglio ai dati, ma rischia di avere una varianza elevata e di apprendere anche il rumore presente nel campione.
La regolarizzazione permette di mantenere un modello sufficientemente complesso, limitandone però la flessibilità attraverso una penalizzazione. A tal fine, invece di minimizzare soltanto l'errore sui dati, si minimizza una funzione obiettivo aumentata:
Il primo termine rappresenta l'errore di adattamento ai dati, mentre il secondo, , introduce una penalizzazione che limita la complessità del modello. L'iperparametro controlla l'intensità della penalizzazione: valori piccoli di privilegiano l'adattamento ai dati, mentre valori grandi impongono una maggiore regolarizzazione, riducendo la flessibilità del modello.
L'obiettivo è trovare un equilibrio tra bias e varianza, evitando sia un modello troppo semplice, che rischia di non cogliere le relazioni presenti nei dati, sia un modello troppo complesso, che rischia di sovradattarsi (overfitting).
Il regolarizzatore più comune è la regolarizzazione L2, o Ridge: la somma dei quadrati dei coefficienti, . Per la regressione lineare la soluzione resta in forma chiusa: si aggiunge solo sulla diagonale delle equazioni normali:
Il termine ha anche un effetto collaterale utile: rende la matrice invertibile anche quando non lo è.
Riprendiamo il polinomio di grado 11 su 12 punti, e cambiamo solo :
| bias² | varianza | ||
|---|---|---|---|
| 0 | 0,000 | 3,045 | 3,135 |
| 0,000001 | 0,000 | 0,157 | 0,247 |
| 0,0001 | 0,000 | 0,069 | 0,159 |
| 0,01 | 0,004 | 0,038 | 0,132 |
| 1 | 0,136 | 0,015 | 0,241 |
| 10 | 0,362 | 0,005 | 0,457 |
Una penalità piccola fa diminuire la varianza. Con il polinomio di grado 11 fa quasi come il miglior polinomio di grado 3 dell'articolo precedente (0,121). Esagerando, il modello diventa troppo rigido: al limite tutti i coefficienti vanno a zero e resta una retta orizzontale. La regolarizzazione accetta un po' di bias in più in cambio di molta varianza in meno.
Ridge e Lasso
Un'altra tecnica di regolarizzazione molto utilizzata è la regolarizzazione L1, o Lasso, che penalizza la somma dei valori assoluti dei coefficienti:
La differenza principale rispetto alla regolarizzazione Ridge (L2) riguarda il modo in cui vengono modificati i coefficienti:
- Ridge (L2) riduce i valori dei coefficienti, ma generalmente non li porta esattamente a zero.
- Lasso (L1) può portare alcuni coefficienti esattamente a zero, escludendo di fatto le variabili corrispondenti dal modello. In questo modo, oltre a regolarizzare, effettua anche una selezione automatica delle feature.
Questa differenza si può comprendere dal punto di vista geometrico, riscrivendo il problema come un problema di minimo vincolato. In entrambi i casi si minimizza l'errore sui dati, imponendo un limite alla grandezza dei coefficienti:
- per Ridge, il vincolo è , che in due dimensioni definisce un cerchio;
- per Lasso, il vincolo è , che in due dimensioni definisce un rombo.
Le curve di livello della funzione di errore tendono a toccare il rombo del Lasso in corrispondenza dei suoi vertici, dove almeno un coefficiente è esattamente zero.
Infine, la elastic net combina le penalizzazioni L1 e L2, unendo la capacità di Lasso di selezionare le variabili con quella di Ridge di ridurre e stabilizzare i coefficienti.
Validazione
L'errore in-sample è ottimista perché i dati sono gli stessi usati per stimare il modello. La soluzione più diretta è tenerne da parte una porzione:
- si separa un validation set, che non si usa per la stima;
- si stima il modello sui dati rimanenti (training set);
- si misura l'errore sul validation set: è una stima corretta dell'errore out-of-sample;
- alla fine si ristima il modello su tutti i dati.
Un validation set troppo piccolo dà una stima imprecisa; uno troppo grande toglie dati all'addestramento.
La validazione serve anche a scegliere: il grado del polinomio, quali regressori usare, il valore di . Si stima ogni candidato sul training set e si tiene quello con l'errore di validazione più basso.
Attenzione: a forza di usare il validation set per scegliere, le scelte si adattano ai suoi dati particolari, e il suo errore torna ottimista. Si sta facendo overfitting sul validation set. Per questo, con abbastanza dati, si divide in tre parti:
| Training (60%) | Validation (20%) | Test (20%) |
|---|---|---|
| stima del modello | scelte sul modello | stima finale dell'errore (il test set si usa una volta sola) |
Cross-validazione
Con pochi dati, sacrificarne il 40% è troppo costoso. La cross-validazione K-fold li usa tutti: si dividono i dati in parti; a turno ciascuna fa da validation set e le altre da training set. L'errore di cross-validazione è la media dei errori. Un buon compromesso è .
Il caso estremo, , è il leave-one-out: si toglie un dato alla volta. Sfrutta al massimo i dati, ma richiede stime e l'errore che produce ha varianza alta.
Criteri di complessità: AIC e MDL
Quando i dati sono molto pochi, è possibile stimare l'errore su dati nuovi a partire dal solo training set, aggiungendo all'errore una penalizzazione che cresce con il numero di parametri del modello. Due criteri molto utilizzati sono l'AIC (Akaike Information Criterion) e l'MDL (Minimum Description Length):
dove è il numero di dati disponibili, è il numero di parametri del modello e è l'errore quadratico medio, calcolato sugli stessi dati usati per la stima.
All'aumentare di , l'errore tende a diminuire, mentre la penalizzazione aumenta. Si sceglie quindi il valore di che minimizza il criterio complessivo, cercando un equilibrio tra adattamento ai dati e complessità del modello.
La differenza tra i due criteri risiede nel fattore che moltiplica il numero di parametri: per AIC e per MDL. Quando , cioè per almeno 8 dati, MDL applica una penalizzazione maggiore rispetto ad AIC e tende quindi a preferire modelli più semplici, a parità di errore.
Nell'identificazione dei sistemi dinamici si utilizza spesso anche il criterio FPE (Final Prediction Error), che stima l'errore di previsione su dati non utilizzati per la stima e svolge un ruolo analogo a quello di AIC nella selezione della complessità del modello.
Riepilogo
- La regolarizzazione aggiunge al costo una penalità sulla complessità: accetta un po' di bias in più per ridurre molto la varianza.
- Ridge (L2) rimpicciolisce tutti i coefficienti; Lasso (L1) ne porta alcuni esattamente a zero.
- La validazione stima l'errore su dati nuovi e serve a scegliere iperparametri e modelli; con molti dati si divide in training, validation e test.
- Con pochi dati si usa la cross-validazione; con pochissimi, criteri come AIC e MDL.