Regolarizzazione significa penalizzare la complessità di un modello per ridurre l'overfitting.
Regolarizzazione per semplicità
Curva di generalizzazione
Penalizzazione della complessità del modello
- Vogliamo evitare la complessità del modello, ove possibile.
- Possiamo integrare questa idea nell'ottimizzazione che effettuiamo durante la formazione.
- Minimizzazione del rischio empirico:
- punta a un basso errore di addestramento
$$ \text{minimize: } Loss(Data\;|\;Model) $$
Penalizzazione della complessità del modello
- Vogliamo evitare la complessità del modello, ove possibile.
- Possiamo integrare questa idea nell'ottimizzazione che effettuiamo durante la formazione.
- Minimizzazione del rischio strutturale:
- punta a un basso errore di addestramento
- e, al contempo, bilanciare la complessità
$$ \text{minimize: } Loss(Data\;|\;Model) + complexity(Model) $$
Regolarizzazione
- Come definire la complessità(modello)?
Regolarizzazione
- Come definire la complessità(modello)?
- Preferisci pesi più piccoli
Regolarizzazione
- Come definire la complessità(modello)?
- Preferisci pesi più piccoli
- La divergenza dovrebbe comportare un costo
- Puoi codificare questa idea tramite la regolarizzazione L2 (ovvero dorsale)
- complexity(model) = somma dei quadrati delle ponderazioni
- Penalizza pesi davvero pesanti
- Per i modelli lineari: preferisce pendenze più piane
- Direzione bayesiana:
- le ponderazioni devono essere centrate intorno a zero
- i pesi dovrebbero essere distribuiti normalmente
Una Loss Function con regolarizzazione L2
$$ Loss(Data|Model) + \lambda \left(w_1^2 + \ldots + w_n^2 \right) $$
\(\text{Where:}\)
\(Loss\text{: Aims for low training error}\)
\(\lambda\text{: Scalar value that controls how weights are balanced}\)
\(w_1^2+\ldots+w_n^2\text{: Square of}\;L_2\;\text{norm}\)