Salta al contenuto
Note per Studenti Esercizio - Bias e varianza nella valutazione delle ipotesi (esempio d'esame 1)

Esercizio - Bias e varianza nella valutazione delle ipotesi (esempio d'esame 1)

Teoria: Apprendimento automatico nell'IA - supervisionato, SVM e valutazioneQuadro del machine learning nel corso di IA. Tre forme di apprendimento: supervisionato (coppie ingresso-uscita, classificazione se l'uscita è discreta e regressione se è un numero), non supervisionato (pattern senza feedback, per esempio clustering) e per rinforzo (ricompense). Un'ipotesi h approssima la funzione vera f e si valuta sul test set, non sul training set: un modello troppo semplice ha bias alto (underfitting), uno troppo complesso varianza alta (overfitting). Servono training, validation e test set; con pochi dati si usa la k-fold cross-validation. Alberi di decisione: si sceglie l'attributo con massimo guadagno d'informazione Gain = B(p/(p+n)) - somma (Nk/N) B(pk/Nk), si pota con il test del chi quadro (Delta > Delta*), si riduce la varianza con bagging e random forest. Perdita L1 e L2, regressione lineare e discesa del gradiente w <- w - alpha dL/dw. SVM: separatore a margine massimo, vettori di supporto, kernel trick con K(xj,xk). Pipeline scikit-learn del laboratorio 10: load_digits, train_test_split, SVC(C, kernel, gamma), fit, predict, classification_report, confusion_matrix, cross_val_score.Apprendimento automatico nell'IA - supervisionato, SVM e valutazione → (sezione 2) e Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →. Domanda 1 del quiz da 9 CFU e domanda 4 di quello da 6 CFU: testo identico.

Testo (risposta aperta). In machine learning, e specialmente nella valutazione delle ipotesi generate da algoritmi di supervised learning, a che cosa si riferiscono i termini bias e variance (varianza), e a che cosa servono?

Risposta modello

Nell'apprendimento supervisionato si dispone di un training set di coppie (xj,yj)(x_j,y_j) generate da una funzione ignota y=f(x)y=f(x) e si cerca un'ipotesi hh che la approssimi; hh è buona se generalizza, cioè predice bene su esempi mai visti. Per questo la si valuta sul test set e non sul training set. Bias e varianza descrivono i due modi in cui hh può sbagliare.

Il bias è la tendenza sistematica di un'ipotesi a deviare dal valore atteso quando si media su molti training set diversi: dipende dal fatto che lo spazio delle ipotesi è troppo povero per contenere ff. Una retta usata su dati non lineari ha bias alto e produce underfitting: sbaglia sia sul training sia sul test.

La varianza misura quanto l'ipotesi cambia al variare del training set. Un polinomio di grado 12 addestrato su due campioni diversi della stessa ff dà curve molto diverse, perché insegue il rumore dello specifico campione: errore quasi nullo sul training e alto sul test, cioè overfitting.

Si usano per diagnosticare il modello e per scegliere la complessità. Un modello semplice ha bias alto e varianza bassa, uno complesso il contrario: l'errore di generalizzazione è circa bias al quadrato più varianza più rumore, e il minimo sta a una complessità intermedia (rasoio di Ockham: a parità di errore si preferisce l'ipotesi più semplice). Per cercarlo si usano il validation set o la cross-validation a kk fold per scegliere gli iperparametri, la regolarizzazione (ridge, LASSO) e i metodi ensemble: il bagging riduce la varianza. Sintomi: errore alto su training e test indica bias alto; errore basso su training e alto su test indica varianza alta.

Verifica numerica

f(x)=sin⁡2πxf(x)=\sin 2\pi x, 30 punti con rumore gaussiano di deviazione 0,30{,}3, polinomi di grado 1, 3, 9 addestrati su 300 campioni diversi; si media la previsione su 200 punti di test.

python
import numpy as np
rng = np.random.default_rng(1)
xs = np.linspace(0, 1, 30); xt = np.linspace(0, 1, 200); f = lambda x: np.sin(2*np.pi*x)
for grado in (1, 3, 9):
    pred = np.array([np.polyval(np.polyfit(xs, f(xs) + rng.normal(0, .3, 30), grado), xt)
                     for _ in range(300)])
    media = pred.mean(0)
    print(grado, ((media - f(xt))**2).mean().round(4), pred.var(0).mean().round(4))
grado bias al quadrato varianza
1 0,20210{,}2021 0,00590{,}0059
3 0,00490{,}0049 0,01020{,}0102
9 0,00010{,}0001 0,02680{,}0268

Più cresce il grado, più il bias scende e la varianza sale. Il grado 3 ha la somma più bassa (0,01510{,}0151, contro 0,20800{,}2080 e 0,02690{,}0269).

Errori tipici nella risposta: confondere bias e varianza con "errore sul training" ed "errore sul test"; non dire a che cosa servono (scegliere la complessità, diagnosticare underfitting e overfitting); dimenticare che la valutazione va fatta su dati non usati per l'addestramento.

Versione ripasso

Teoria: Apprendimento automatico nell'IA - supervisionato, SVM e valutazioneQuadro del machine learning nel corso di IA. Tre forme di apprendimento: supervisionato (coppie ingresso-uscita, classificazione se l'uscita è discreta e regressione se è un numero), non supervisionato (pattern senza feedback, per esempio clustering) e per rinforzo (ricompense). Un'ipotesi h approssima la funzione vera f e si valuta sul test set, non sul training set: un modello troppo semplice ha bias alto (underfitting), uno troppo complesso varianza alta (overfitting). Servono training, validation e test set; con pochi dati si usa la k-fold cross-validation. Alberi di decisione: si sceglie l'attributo con massimo guadagno d'informazione Gain = B(p/(p+n)) - somma (Nk/N) B(pk/Nk), si pota con il test del chi quadro (Delta > Delta*), si riduce la varianza con bagging e random forest. Perdita L1 e L2, regressione lineare e discesa del gradiente w <- w - alpha dL/dw. SVM: separatore a margine massimo, vettori di supporto, kernel trick con K(xj,xk). Pipeline scikit-learn del laboratorio 10: load_digits, train_test_split, SVC(C, kernel, gamma), fit, predict, classification_report, confusion_matrix, cross_val_score.Apprendimento automatico nell'IA - supervisionato, SVM e valutazione →, Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →.

  • Bias: deviazione sistematica dal valore atteso mediando su training set diversi; spazio delle ipotesi troppo povero, retta su dati non lineari: underfitting (errore alto su training e test).
  • Varianza: quanto hh cambia con il training set; polinomio di grado 12 che insegue il rumore: overfitting (errore basso su training, alto su test).
  • A che servono: diagnosticare il modello e scegliere la complessità; errore di generalizzazione circa bias2^2 + varianza + rumore, minimo a complessità intermedia (rasoio di Ockham). Si valuta su test set; si sceglie con validation o cross-validation a kk fold; si riduce la varianza con regolarizzazione e bagging.
  • Verifica: gradi 1, 3, 9 danno bias2^2 0,2021; 0,0049; 0,00010{,}2021;\ 0{,}0049;\ 0{,}0001 e varianza 0,0059; 0,0102; 0,02680{,}0059;\ 0{,}0102;\ 0{,}0268.

Errori tipici: confondere bias e varianza con errore su training e su test; dimenticare di dire a che cosa servono.

Teoria collegata