Salta al contenuto
Note per Studenti Formulario · Machine Learning

FormularioMachine Learning: definizioni, teoremi e formule delle note, in ordine di capitolo

In questa pagina 8

1. Introduzione e dati

Introduzione al machine learning

Definizione (machine learning). Il machine learning è l'insieme dei metodi con cui un programma ricava dai dati la regola che collega ingressi e uscite, invece di riceverla scritta da un programmatore.

Esempio. Per riconoscere lo spam si potrebbe scrivere a mano la regola «se compare la parola premio allora è spam» (approccio basato su regole) oppure mostrare al modello migliaia di messaggi già etichettati e lasciare che sia lui a trovare quali parole e combinazioni contano (approccio guidato dai dati, cioè ML). Oggi quasi tutte le tecnologie di AI importanti sono di questo secondo tipo.

Definizione (apprendimento supervisionato). Setup: osservazione dell'ambiente. Dati: coppie (x,y)(x,y), cioè un ingresso xx e l'uscita desiderata yy (l'etichetta, label). Compito: imparare una funzione che dagli ingressi xx produca le uscite yy.

Esempio. xx = metri quadri di un appartamento, yy = prezzo. I dati sono coppie (metri quadri, prezzo) di appartamenti venduti; il compito è prevedere il prezzo di un appartamento nuovo.

Definizione (apprendimento non supervisionato). Dati: solo gli ingressi xx, senza etichette. Compito: imparare strutture (pattern) nei dati di ingresso, per esempio gruppi di osservazioni simili.

Definizione (apprendimento per rinforzo). Setup: interazione con l'ambiente. Dati: triplette (stato, azione, ricompensa). Compito: imparare una politica (policy) che massimizzi la ricompensa totale.

Esempio. Un robot che impara a camminare: lo stato è la posizione dei suoi giunti, l'azione è il movimento, la ricompensa è la distanza percorsa senza cadere. Il rinforzo non si approfondisce in questo corso.

Formula (regressione lineare con una variabile). y^=b+w x\hat y = b + w\,x, con ww pendenza e bb valore in x=0x=0.

Esempio. Con b=50 000b=50\,000 € e w=2 000w=2\,000 € al metro quadro, un appartamento di 80 m280\ \text{m}^2 ha predizione y^=50 000+2 000⋅80=210 000\hat y = 50\,000 + 2\,000\cdot 80 = 210\,000 €.

Statistica per il machine learning

Definizione (matrice di progetto o design matrix). I dati tabulari si organizzano in una matrice XX con nn righe e pp colonne:

  • ogni riga è un'osservazione (o campione, sample): una volta in cui il fenomeno da descrivere compare nei dati storici, quindi nn è il numero di osservazioni;
  • ogni colonna è un attributo (o variabile, o feature): una grandezza potenzialmente legata al fenomeno, quindi pp è il numero di variabili.

Esempio. Per prevedere il prezzo delle case, ogni riga è una casa venduta e le colonne sono metri quadri, numero di stanze, anno di costruzione: con 1 000 case e 3 attributi, XX ha n=1000n=1000 righe e p=3p=3 colonne.

Definizione (momento di ordine kk). Per una variabile aleatoria XX il momento di ordine kk è E[Xk]E[X^k] (valore atteso: Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →; momenti e varianza: Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →): μk=∫−∞+∞xkf(x) dx  (continua),μk=∑xxk P(X=x)  (discreta).\mu_k=\int_{-\infty}^{+\infty}x^k f(x)\,dx\ \ \text{(continua)},\qquad \mu_k=\sum_x x^k\,P(X=x)\ \ \text{(discreta)}.

Formula (indicatori teorici).

  • Media: E[X]=μE[X]=\mu (tendenza centrale).
  • Varianza: Var⁡(X)=E[(X−μ)2]=σ2\operatorname{Var}(X)=E[(X-\mu)^2]=\sigma^2 (dispersione).
  • Asimmetria (skewness): Skew⁡(X)=E[(X−μ)3]/σ3\operatorname{Skew}(X)=E[(X-\mu)^3]/\sigma^3.
  • Curtosi (kurtosis): Kurt⁡(X)=E[(X−μ)4]/σ4\operatorname{Kurt}(X)=E[(X-\mu)^4]/\sigma^4.

Formula (momenti campionari). Con X1,…,XnX_1,\dots,X_n i valori osservati: μ^k=1n∑i=1nXik,μ=1n∑iXi,σ2=1n∑i(Xi−μ)2,\hat\mu_k=\frac1n\sum_{i=1}^nX_i^k,\qquad \mu=\frac{1}{n}\sum_i X_i,\qquad \sigma^2=\frac{1}{n}\sum_i(X_i-\mu)^2, Skew⁡=∑i(Xi−μ)3n σ3,Kurt⁡=∑i(Xi−μ)4n σ4.\operatorname{Skew}=\frac{\sum_i(X_i-\mu)^3}{n\,\sigma^3},\qquad \operatorname{Kurt}=\frac{\sum_i(X_i-\mu)^4}{n\,\sigma^4}.

Esempio. X=[10,15,20,25,30,35,40,45,50,55]X=[10,15,20,25,30,35,40,45,50,55], n=10n=10. Media: μ=325/10=32,5\mu=325/10=32{,}5. Scarti dalla media: −22,5, −17,5, …, 22,5-22{,}5,\,-17{,}5,\,\dots,\,22{,}5.

Definizione (quartili). Dividono i dati ordinati in quattro parti con lo stesso numero di osservazioni:

  • Q1Q_1 (25%): valore sotto cui cade il 25% dei dati;
  • Q2Q_2 (50%): la mediana, che divide i dati in due metà;
  • Q3Q_3 (75%): valore sotto cui cade il 75% dei dati;
  • scarto interquartile IQR=Q3−Q1\mathrm{IQR}=Q_3-Q_1: ampiezza dell'intervallo che contiene il 50% centrale dei dati.

Esempio. Con n=11n=11 dati X=[5,10,…,55]X=[5,10,\dots,55]: Q1=15Q_1=15, Q2=30Q_2=30, Q3=45Q_3=45, IQR=45−15=30\mathrm{IQR}=45-15=30.

Definizione (moda). Il valore che compare più spesso nei dati. È importante per le variabili categoriche, per le quali media e mediana non hanno senso.

Esempio. X=[1,2,2,3,4,7,9,10,10,10,12]X=[1,2,2,3,4,7,9,10,10,10,12]: media =70/11≈6,36=70/11\approx6{,}36, mediana =7=7, moda =10=10.

Formula (z-score). z=x−μσz=\dfrac{x-\mu}{\sigma}, con μ\mu e σ\sigma media e deviazione standard della variabile (la stessa standardizzazione delle variabili gaussiane: Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →).

Esempio (dalle slide). X=[10,12,14,16,18]X=[10,12,14,16,18]: μ=14\mu=14, σ=3,162\sigma=3{,}162 (con divisore n−1n-1, come fa pandas); gli z-score sono −1,265, −0,632, 0, 0,632, 1,265-1{,}265,\ -0{,}632,\ 0,\ 0{,}632,\ 1{,}265. Con il divisore nn si avrebbe σ=2,828\sigma=2{,}828 e valori −1,414,…,1,414-1{,}414,\dots,1{,}414: le slide usano n−1n-1.

Grafico interattivo: Normale standard e distribuzione più appuntita con la stessa media e varianza: la seconda ha curtosi maggiore di 3 (code più pesanti e picco più alto)

Correlazione e visualizzazione dei dati

Definizione (correlazione). Misura statistica del grado con cui due variabili si muovono una rispetto all'altra: ne quantifica forza e direzione. I suoi valori stanno tra −1-1 e 11:

  • +1+1: correlazione positiva perfetta (se una variabile cresce, l'altra cresce in proporzione);
  • 00: nessuna correlazione (nessuna relazione, almeno lineare);
  • −1-1: correlazione negativa perfetta (se una cresce, l'altra decresce in proporzione).

Formula (coefficiente di correlazione di Pearson). Per due variabili X,YX,Y osservate su nn campioni, con medie Xˉ,Yˉ\bar X,\bar Y: r=∑i=1n(Xi−Xˉ)(Yi−Yˉ)∑i=1n(Xi−Xˉ)2 ⋅ ∑i=1n(Yi−Yˉ)2.r=\frac{\sum_{i=1}^n (X_i-\bar X)(Y_i-\bar Y)}{\sqrt{\sum_{i=1}^n (X_i-\bar X)^2}\ \cdot\ \sqrt{\sum_{i=1}^n (Y_i-\bar Y)^2}}. Il numeratore rappresenta la covarianza (a meno del fattore 1/n1/n) tra XX e YY (Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →); il denominatore è il prodotto delle deviazioni standard (a meno degli stessi fattori). Misura la relazione lineare.

Esempio. X=[1,0,2]X=[1,0,2], Y=[2,−1,5]Y=[2,-1,5]. Medie: Xˉ=1\bar X=1, Yˉ=2\bar Y=2. Scarti: Xi−Xˉ=[0,−1,1]X_i-\bar X=[0,-1,1], Yi−Yˉ=[0,−3,3]Y_i-\bar Y=[0,-3,3]. Numeratore: 0⋅0+(−1)(−3)+1⋅3=60\cdot0+(-1)(-3)+1\cdot3=6. Somme dei quadrati: 0+1+1=20+1+1=2 e 0+9+9=180+9+9=18. Allora r=62 18=636=1r=\dfrac{6}{\sqrt2\,\sqrt{18}}=\dfrac{6}{\sqrt{36}}=1.

Grafico interattivo: X = [0, 1, 2, 5] e Y = [4, 1, 3, 0]: i quattro punti e la retta dei minimi quadrati y = 3,29 − 0,64 x, con r ≈ −0,76 (relazione decrescente, non perfetta)

Analisi delle componenti principali (PCA)

Definizione (autovalore di una componente). λk=SS(distances per PCk)n−1\lambda_k=\dfrac{SS(\text{distances per PC}_k)}{n-1}, cioè la varianza dei dati proiettati sulla componente kk. La radice quadrata di SS(distances)SS(\text{distances}) si chiama valore singolare. In forma matriciale λk\lambda_k è l'autovalore della matrice di covarianza.

Formula (varianza spiegata). frazione spiegata dalla PCk=λk∑j=1pλj.\text{frazione spiegata dalla PC}_k=\dfrac{\lambda_k}{\sum_{j=1}^p\lambda_j}. La frazione cumulata fino alla componente kk si calcola sommando.

Esempio (dati dei topi, due geni). La matrice di covarianza dei dati è S=(18,976,496,493,13)S=\begin{pmatrix}18{,}97&6{,}49\\6{,}49&3{,}13\end{pmatrix}. Gli autovalori sono le radici di λ2−tr⁡(S)λ+det⁡S=0\lambda^2-\operatorname{tr}(S)\lambda+\det S=0, cioè λ2−22,09λ+17,23=0\lambda^2-22{,}09\lambda+17{,}23=0, e valgono λ1=21,28\lambda_1=21{,}28 e λ2=0,81\lambda_2=0{,}81. PC1 spiega 21,28/22,09≈96,3%21{,}28/22{,}09\approx96{,}3\% della varianza, PC2 il 3,7%3{,}7\%. L'autovettore di λ1\lambda_1 risolve (18,97−21,28)v1+6,49 v2=0(18{,}97-21{,}28)v_1+6{,}49\,v_2=0, cioè v2=0,357 v1v_2=0{,}357\,v_1: normalizzato dà (0,942; 0,336)(0{,}942;\,0{,}336).

Grafico interattivo: Dati dei topi (geni 1 e 2) centrati: PC1 (rossa) è la retta che passa più vicino ai punti e lungo cui la varianza è massima (96 % del totale), PC2 (tratteggiata) è perpendicolare

Teorema (perché gli autovettori). Tra tutti i vettori unitari uu (uTu=1u^Tu=1), la varianza dei dati proiettati Z=XcuZ=X_cu è Var⁡(Z)=uTSu\operatorname{Var}(Z)=u^TSu, ed è massima quando uu è l'autovettore di SS con autovalore più grande; il massimo vale λ1\lambda_1.

Esempio. Per S=(2001)S=\begin{pmatrix}2&0\\0&1\end{pmatrix} e u=(cos⁡θ,sin⁡θ)u=(\cos\theta,\sin\theta): uTSu=2cos⁡2θ+sin⁡2θ=1+cos⁡2θu^TSu=2\cos^2\theta+\sin^2\theta=1+\cos^2\theta, massimo 2=λ12=\lambda_1 per θ=0\theta=0 (l'autovettore (1,0)(1,0)).

2. Regressione

Regressione lineare

Definizione (compito supervisionato). Si dispone di dati storici (x(i),y(i))(x^{(i)},y^{(i)}) con i=1,…,ni=1,\dots,n: xx è l'ingresso (input, il vettore delle feature x=[x1,…,xp]x=[x_1,\dots,x_p]) e yy l'uscita (output, la risposta da prevedere). L'obiettivo è imparare una funzione F(x)F(x) che, ricevendo un xx nuovo, fornisca una stima di yy.

Formula (modello lineare). Fβ(x)=β0+β1x1+β2x2+⋯+βpxpF_\beta(x)=\beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p. I numeri β0,…,βp\beta_0,\dots,\beta_p sono i parametri (o coefficienti); β0\beta_0 è l'intercetta, il coefficiente della costante.

Esempio (dalle slide). Prezzo (in USD) =150 000+10 000⋅[n. bagni]+⋯−1 000⋅[etaˋ della casa]=150\,000+10\,000\cdot[\text{n. bagni}]+\dots-1\,000\cdot[\text{età della casa}]: ogni bagno in più aumenta la stima di 10 00010\,000 USD e ogni anno di età la riduce di 1 0001\,000 USD, a parità delle altre variabili. Il coefficiente βj\beta_j dice di quanto cambia la stima per un'unità in più della feature xjx_j, tenendo ferme le altre.

Formula (MSE e RMSE). MSE=1n∑i=1n[y(i)−Fβ(x(i))]2,RMSE=MSE.\mathrm{MSE}=\frac1n\sum_{i=1}^n\big[y^{(i)}-F_\beta(x^{(i)})\big]^2,\qquad \mathrm{RMSE}=\sqrt{\mathrm{MSE}}. MSE\mathrm{MSE} è l'errore quadratico medio (mean squared error); la radice RMSE\mathrm{RMSE} ha la stessa unità di yy ed è di più facile lettura.

Esempio. Previsioni [2,3; 3,1; 3,9; 4,7][2{,}3;\,3{,}1;\,3{,}9;\,4{,}7] per valori veri [2; 3; 5; 4][2;\,3;\,5;\,4]: errori [−0,3; −0,1; 1,1; −0,7][-0{,}3;\,-0{,}1;\,1{,}1;\,-0{,}7], quadrati [0,09; 0,01; 1,21; 0,49][0{,}09;\,0{,}01;\,1{,}21;\,0{,}49] con somma 1,81{,}8, MSE=1,8/4=0,45\mathrm{MSE}=1{,}8/4=0{,}45, RMSE=0,45≈0,671\mathrm{RMSE}=\sqrt{0{,}45}\approx0{,}671.

Proprietà (convessità). Nei modelli di regressione lineare la funzione di costo è convessa nello spazio dei parametri: il segmento che unisce due punti qualunque del grafico non sta mai sotto il grafico. Quindi non ci sono minimi locali spuri: c'è un unico insieme di parametri ottimi, indicato con β^\hat\beta.

Grafico interattivo: MSE in funzione della pendenza β₁ (con β₀ = 1,5 fisso) per i quattro punti (1;2), (2;3), (3;5), (4;4): è una parabola convessa con minimo 0,45 in β₁ = 0,8

Teorema (soluzione dei minimi quadrati ordinari). Se XTXX^TX è invertibile, β^=(XTX)−1XTy.\hat\beta=(X^TX)^{-1}X^Ty.

Esempio completo. Dati x=[1,2,3,4]x=[1,2,3,4], y=[2,3,5,4]y=[2,3,5,4]. La matrice con la colonna di uni è X=[11121314]X=\begin{bmatrix}1&1\\1&2\\1&3\\1&4\end{bmatrix}. Allora XTX=[4101030],XTy=[2+3+5+42+6+15+16]=[1439].X^TX=\begin{bmatrix}4&10\\10&30\end{bmatrix},\qquad X^Ty=\begin{bmatrix}2+3+5+4\\ 2+6+15+16\end{bmatrix}=\begin{bmatrix}14\\39\end{bmatrix}. Il determinante è 4⋅30−10⋅10=204\cdot30-10\cdot10=20 e l'inversa è 120[30−10−104]\frac1{20}\begin{bmatrix}30&-10\\-10&4\end{bmatrix}. Perciò β^=120[30⋅14−10⋅39−10⋅14+4⋅39]=120[3016]=[1,50,8].\hat\beta=\frac1{20}\begin{bmatrix}30\cdot14-10\cdot39\\-10\cdot14+4\cdot39\end{bmatrix}=\frac1{20}\begin{bmatrix}30\\16\end{bmatrix}=\begin{bmatrix}1{,}5\\0{,}8\end{bmatrix}. La retta è y^=1,5+0,8x\hat y=1{,}5+0{,}8x, con previsioni 2,3; 3,1; 3,9; 4,72{,}3;\ 3{,}1;\ 3{,}9;\ 4{,}7 (MSE=0,45\mathrm{MSE}=0{,}45 come sopra).

Grafico interattivo: I quattro punti e la retta dei minimi quadrati ŷ = 1,5 + 0,8 x: i segmenti sono i residui (−0,3; −0,1; +1,1; −0,7), la cui somma dei quadrati 1,8 è la minima possibile

Formula (coefficiente di determinazione). R2=1−SSresSStot,SSres=∑i(yi−y^i)2,SStot=∑i(yi−yˉ)2.R^2=1-\frac{SS_{res}}{SS_{tot}},\qquad SS_{res}=\sum_i(y_i-\hat y_i)^2,\qquad SS_{tot}=\sum_i(y_i-\bar y)^2. SSresSS_{res} (somma dei quadrati dei residui) misura l'errore del modello; SStotSS_{tot} misura la variabilità totale di yy rispetto alla media, cioè l'errore di un «modello» che prevede sempre yˉ\bar y.

Esempio. Per y=[2,3,5,4]y=[2,3,5,4]: SStot=(−1,5)2+(−0,5)2+1,52+0,52=5SS_{tot}=(-1{,}5)^2+(-0{,}5)^2+1{,}5^2+0{,}5^2=5 e SSres=1,8SS_{res}=1{,}8, quindi R2=1−1,8/5=0,64R^2=1-1{,}8/5=0{,}64: la retta spiega il 64%64\% della variabilità di yy.

Overfitting, ridge regression e cross-validation

Definizione (K-fold cross-validation). Si mescolano i dati e si dividono in kk parti (fold) di uguale dimensione. Per i=1,…,ki=1,\dots,k: si usa il fold ii come insieme di valutazione e i restanti k−1k-1 per addestrare il modello; si calcola la metrica (per esempio l'MSE) MSEi\mathrm{MSE}_i sul fold ii. La stima finale è la media MSE‾=1k∑i=1kMSEi\overline{\mathrm{MSE}}=\frac1k\sum_{i=1}^k\mathrm{MSE}_i.

Esempio. Con n=20n=20 dati e k=5k=5 si formano 5 fold da 4 dati (dati 1-4, 5-8, 9-12, 13-16, 17-20 dopo il mescolamento): a ogni giro si addestra su 16 dati e si valuta su 4. Per il polinomio quadratico dell'esempio del laboratorio gli MSE dei 5 fold sono 0,0106; 0,0219; 0,0204; 0,0194; 0,02430{,}0106;\ 0{,}0219;\ 0{,}0204;\ 0{,}0194;\ 0{,}0243 e la media vale 0,0106+0,0219+0,0204+0,0194+0,02435=0,09665=0,0193\frac{0{,}0106+0{,}0219+0{,}0204+0{,}0194+0{,}0243}{5}=\frac{0{,}0966}{5}=0{,}0193.

Definizione (MCCV). Si ripete kk volte: divisione casuale del dataset in training e test, con una frazione fissata qq di dati nel test; addestramento; calcolo di MSEi\mathrm{MSE}_i. Si media: 1k∑iMSEi\frac1k\sum_i\mathrm{MSE}_i. Le scelte di progetto sono due: il numero di ripetizioni kk e la quota di test qq.

Definizione (bias). L'incapacità di un metodo di cogliere la vera relazione tra ingresso e uscita. Un modello troppo semplice (la retta quando i dati seguono una parabola) ha bias alto e non la catturerà mai, per quanti dati si abbiano.

Definizione (varianza). La sensibilità del modello ai dati di addestramento: se, cambiando il campione di training, le previsioni cambiano molto, la varianza è alta. Un modello molto flessibile (polinomio con 20 coefficienti) ha bias basso sul training ma varianza alta.

Teorema (decomposizione bias-varianza). Sia y=f(x)+εy=f(x)+\varepsilon con rumore E[ε]=0E[\varepsilon]=0, Var⁡(ε)=σ2\operatorname{Var}(\varepsilon)=\sigma^2, indipendente dal training. Per un punto fissato xx e un modello f^\hat f addestrato su un campione casuale: E[(y−f^(x))2]=(f(x)−E[f^(x)])2⏟bias2+E[(f^(x)−E[f^(x)])2]⏟varianza+σ2.E\big[(y-\hat f(x))^2\big]=\underbrace{\big(f(x)-E[\hat f(x)]\big)^2}_{\text{bias}^2}+\underbrace{E\big[(\hat f(x)-E[\hat f(x)])^2\big]}_{\text{varianza}}+\sigma^2.

Esempio. Se per un punto f=3f=3, la media delle previsioni su molti campioni è Ef^=2,5E\hat f=2{,}5 con varianza 0,040{,}04 e σ2=0,01\sigma^2=0{,}01, l'errore quadratico atteso è (3−2,5)2+0,04+0,01=0,25+0,04+0,01=0,30(3-2{,}5)^2+0{,}04+0{,}01=0{,}25+0{,}04+0{,}01=0{,}30.

Grafico interattivo: Andamento qualitativo al crescere della complessità del modello: l'errore sul training scende sempre, quello su dati nuovi scende e poi risale (overfitting); il minimo (circa a 6) è il buon compromesso tra bias e varianza

Definizione (regolarizzazione). Tecnica per prevenire l'overfitting aggiungendo alla funzione di costo un termine di penalità sulla complessità del modello: si minimizza J=∑i=1n[yi−y^i]2+γ R,J=\sum_{i=1}^n\big[y_i-\hat y_i\big]^2+\gamma\,R, dove RR misura la complessità e γ≥0\gamma\ge0 è il parametro di regolarizzazione, un iperparametro (un valore che si sceglie prima dell'addestramento e che non è appreso dai dati). Se γ=0\gamma=0 non c'è regolarizzazione; per γ\gamma grande conta quasi solo la penalità.

Definizione (ridge regression, penalità L2L_2). Con R=∑j=1pβj2R=\sum_{j=1}^p\beta_j^2 (somma dei quadrati dei coefficienti, senza β0\beta_0) si minimizza J(β)=∑i=1n(yi−β0−∑j=1pβjxij)2+λ∑j=1pβj2.J(\beta)=\sum_{i=1}^n\big(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\big)^2+\lambda\sum_{j=1}^p\beta_j^2 .

Formula (ridge regression). β^ridge=(XTX+λI~)−1XTy\hat\beta_{\text{ridge}}=(X^TX+\lambda\tilde I)^{-1}X^Ty. Per λ=0\lambda=0 coincide con l'OLS; al crescere di λ\lambda i coefficienti si riducono (shrinkage) verso zero.

Esempio (una sola feature). Dati x=[−1,5;−0,5;0,5;1,5]x=[-1{,}5;-0{,}5;0{,}5;1{,}5] (centrata) e yc=[−1,5;−0,5;1,5;0,5]y_c=[-1{,}5;-0{,}5;1{,}5;0{,}5] (y=[2,3,5,4]y=[2,3,5,4] meno la media 3,53{,}5): XTX=2,25+0,25+0,25+2,25=5X^TX=2{,}25+0{,}25+0{,}25+2{,}25=5 e XTyc=2,25+0,25+0,75+0,75=4X^Ty_c=2{,}25+0{,}25+0{,}75+0{,}75=4. Con λ=0\lambda=0: β^=4/5=0,8\hat\beta=4/5=0{,}8 (l'OLS). Con λ=1\lambda=1: 4/(5+1)=0,6674/(5+1)=0{,}667; con λ=5\lambda=5: 4/10=0,44/10=0{,}4; con λ=20\lambda=20: 4/25=0,164/25=0{,}16; per λ→∞\lambda\to\infty: β^→0\hat\beta\to0. Il trace plot (coefficienti in funzione di λ\lambda) mostra questa discesa.

Grafico interattivo: Trace plot nel caso di una feature: il coefficiente ridge 4/(5+λ) parte dal valore OLS 0,8 per λ = 0 e tende a 0 al crescere di λ (shrinkage)

LASSO e discesa del gradiente

Definizione (LASSO). Least Absolute Shrinkage and Selection Operator: penalità L1L_1, somma dei valori assoluti dei coefficienti, J(β)=∑i=1n(yi−β0−∑j=1pβjxij)2+λ∑j=1p∣βj∣,J(\beta)=\sum_{i=1}^n\Big(y_i-\beta_0-\sum_{j=1}^p\beta_jx_{ij}\Big)^2+\lambda\sum_{j=1}^p|\beta_j|, con β0\beta_0 non penalizzato (come nella ridge) e feature standardizzate (Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →). In forma matriciale, con XX comprensiva della colonna di uni: J(β)=∥y−Xβ∥2+λ∑j≥1∣βj∣J(\beta)=\lVert y-X\beta\rVert^2+\lambda\sum_{j\ge1}|\beta_j|.

Esempio. Con β=(β0,β1,β2)=(3; 2; −0,5)\beta=(\beta_0,\beta_1,\beta_2)=(3;\,2;\,-0{,}5) e λ=4\lambda=4 la penalità vale 4 (∣2∣+∣−0,5∣)=4⋅2,5=104\,(|2|+|-0{,}5|)=4\cdot2{,}5=10, mentre la ridge con lo stesso λ\lambda varrebbe 4 (4+0,25)=174\,(4+0{,}25)=17 (il valore assoluto penalizza di più i coefficienti piccoli, il quadrato quelli grandi).

Formula (discesa del gradiente, gradient descent). Partendo da un WW iniziale, si ripete W←W−η ∇J(W),W\leftarrow W-\eta\,\nabla J(W), dove η>0\eta>0 è il passo (learning rate), fino a convergenza (per esempio finché ∥Wnuovo−W∥<tol\lVert W_{\text{nuovo}}-W\rVert<\text{tol} o dopo un numero massimo di iterazioni).

Esempio in una variabile. J(w)=w2J(w)=w^2 ha gradiente 2w2w e minimo in w=0w=0. L'aggiornamento è w←w−η⋅2w=(1−2η)ww\leftarrow w-\eta\cdot2w=(1-2\eta)w. Partendo da w0=4w_0=4:

Grafico interattivo: Discesa del gradiente su J(w) = w² partendo da w = 4: con η = 0,1 si scende lentamente verso il minimo, con η = 1,1 i passi saltano da un lato all'altro della parabola e si allontanano

Formula (subgradiente del LASSO). ∇βJ=2XT(Xβ−y)+λ[0sign⁡(β1)⋮sign⁡(βp)],\nabla_\beta J=2X^T(X\beta-y)+\lambda\begin{bmatrix}0\\ \operatorname{sign}(\beta_1)\\ \vdots\\ \operatorname{sign}(\beta_p)\end{bmatrix}, con 00 al posto di sign⁡(β0)\operatorname{sign}(\beta_0) perché l'intercetta non si penalizza.

Esempio. Con λ=1\lambda=1, β=(0,5; −2; 0)\beta=(0{,}5;\ -2;\ 0) e componente dell'errore 2XT(Xβ−y)=(1; 3; −4)2X^T(X\beta-y)=(1;\ 3;\ -4): il subgradiente è (1+0; 3+1⋅(−1); −4+1⋅0)=(1; 2; −4)(1+0;\ 3+1\cdot(-1);\ -4+1\cdot0)=(1;\ 2;\ -4).

3. Classificazione

Classificazione e k-nearest neighbors

Definizione (classificazione). Problema supervisionato in cui l'uscita yy è una variabile categorica: ogni osservazione appartiene a una di CC classi. Se C=2C=2 la classificazione è binaria (per esempio spam o non spam); se C>2C>2 è multiclasse (per esempio C=3C=3 per le specie di iris: setosa, versicolor, virginica).

Esempio. Iris: ingressi xx = lunghezza e larghezza di sepali e petali; uscita y∈{setosa,versicolor,virginica}y\in\{\text{setosa},\text{versicolor},\text{virginica}\}. Un caso estremo è Shazam: riconoscere una canzone da 3-4 secondi di audio, con C≈108C\approx10^8 classi; la soluzione è diventata possibile grazie a un forte lavoro di feature engineering (un'«impronta digitale» xx del segnale).

Definizione (k-NN). «Una nuova osservazione viene assegnata alla classe più frequente tra i suoi kk vicini più prossimi nel training.» Algoritmo:

  1. si sceglie il numero di vicini kk;
  2. si calcola la distanza tra il nuovo punto e tutti i punti del training (di solito la distanza euclidea);
  3. si selezionano i kk punti più vicini;
  4. si predice: per la classificazione la classe più frequente tra i kk (voto di maggioranza); per la regressione la media (o la media pesata) dei valori yy dei kk vicini.

Esempio. Si abbiano 8 punti nel piano: classe R in (0,5; 0)(0{,}5;\,0), (0; 0,8)(0;\,0{,}8), (3; 3)(3;\,3), (−3; 2)(-3;\,2); classe B in (−1; 0)(-1;\,0), (0; −1,2)(0;\,-1{,}2), (1,3; 0)(1{,}3;\,0), (−2; −3)(-2;\,-3). Il nuovo punto è q=(0,0)q=(0,0). Le distanze euclidee dai primi cinque punti più vicini sono: (0,5;0)→0,5(0{,}5;0)\to0{,}5 (R), (0;0,8)→0,8(0;0{,}8)\to0{,}8 (R), (−1;0)→1(-1;0)\to1 (B), (0;−1,2)→1,2(0;-1{,}2)\to1{,}2 (B), (1,3;0)→1,3(1{,}3;0)\to1{,}3 (B). Quindi: con k=1k=1 il vicino è R e qq è R; con k=3k=3 i vicini sono R, R, B e vince R (2 voti contro 1); con k=5k=5 sono R, R, B, B, B e vince B (3 contro 2). Il risultato dipende da kk.

Grafico interattivo: Esempio con q = (0, 0): i cerchi tratteggiati contengono i 3 e i 5 vicini più prossimi. Con k = 1 e k = 3 vince la classe rossa (R), con k = 5 la classe blu (B)

Definizione (curse of dimensionality). L'insieme dei problemi che compaiono in spazi con molte dimensioni: aumentando il numero di feature i dati si comportano in modo inatteso e molti metodi diventano meno efficienti.

Regressione logistica e softmax

Definizione (funzione logistica o sigmoide). σ(z)=11+e−z\displaystyle\sigma(z)=\frac1{1+e^{-z}} (esponenziale: Esponenziale e logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →). Ha valori in (0,1)(0,1), è crescente, vale 0,50{,}5 in z=0z=0, tende a 00 per z→−∞z\to-\infty e a 11 per z→+∞z\to+\infty.

Esempio (dalle slide). σ(−10)=4,5⋅10−5≈0\sigma(-10)=4{,}5\cdot10^{-5}\approx0; σ(0)=0,5\sigma(0)=0{,}5; σ(5)=0,9933≈0,99\sigma(5)=0{,}9933\approx0{,}99. Inoltre σ(2)=0,881\sigma(2)=0{,}881 e σ(−2)=0,119=1−σ(2)\sigma(-2)=0{,}119=1-\sigma(2): vale la simmetria σ(−z)=1−σ(z)\sigma(-z)=1-\sigma(z).

Grafico interattivo: Sigmoide σ(z) = 1/(1 + e^(−z)): trasforma qualunque numero reale in un valore in (0, 1); σ(0) = 0,5 è la soglia di decisione, σ(5) = 0,99

Definizione (regressione logistica). Si prende la combinazione lineare delle feature xTβ=β0+β1x1+⋯+βpxpx^T\beta=\beta_0+\beta_1x_1+\dots+\beta_px_p (come nella Regressione lineareNell'apprendimento supervisionato si impara una funzione $F(x)$ dagli esempi $(x,y)$: regressione se $y$ è continua, classificazione se è categorica. Il modello lineare è $F_\beta(x)=\beta_0+\beta_1x_1+\dots+\beta_px_p=X\beta$ (con una colonna di uni per $\beta_0$) e i parametri si scelgono minimizzando l'errore quadratico medio $\mathrm{MSE}=\frac1n\sum_i(y_i-F_\beta(x_i))^2$, funzione convessa dei parametri. Annullando il gradiente di $J(\beta)=|y-X\beta|^2$ si ottengono le equazioni normali $X^TX\beta=X^Ty$ e la soluzione dei minimi quadrati ordinari $\beta=(X^TX)^{-1}X^Ty$. Il coefficiente di determinazione $R^2=1-SS_{res}/SS_{tot}$ misura la qualità del fit (0 = come la media, negativo = peggio della media). Un modello va valutato su un test set mai usato per addestrare: l'errore sul training è ottimistico e un polinomio di grado alto lo azzera senza generalizzare.Regressione lineare →, con la colonna di uni) e la si trasforma con la sigmoide: y^i=σ(xiTβ)=11+e−xiTβ,P(yi=1∣xi)=σ(xiTβ),P(yi=0∣xi)=1−σ(xiTβ).\hat y_i=\sigma(x_i^T\beta)=\frac1{1+e^{-x_i^T\beta}},\qquad P(y_i=1\mid x_i)=\sigma(x_i^T\beta),\quad P(y_i=0\mid x_i)=1-\sigma(x_i^T\beta). La classe predetta è 11 se σ(xiTβ)≥0,5\sigma(x_i^T\beta)\ge0{,}5, altrimenti 00.

Esempio. Se β=(−3; 1; 1)\beta=(-3;\,1;\,1) e x=(2; 2)x=(2;\,2): z=−3+2+2=1z=-3+2+2=1, y^=σ(1)=0,731\hat y=\sigma(1)=0{,}731: classe 11 con probabilità 73%73\%. Per x=(0; 1)x=(0;\,1): z=−2z=-2, y^=0,119\hat y=0{,}119, classe 00.

Grafico interattivo: Con β = (−3; 1; 1) il bordo di decisione è la retta x₁ + x₂ = 3 (probabilità 0,5); le rette parallele x₁ + x₂ = 3 ± 2,2 sono le curve di probabilità 0,9 e 0,1: la probabilità varia solo nella direzione perpendicolare al bordo

Definizione (log-verosimiglianza negativa o cross-entropia binaria). L(β)=−∑i=1n[yilog⁡σ(xiTβ)+(1−yi)log⁡(1−σ(xiTβ))].\mathcal L(\beta)=-\sum_{i=1}^n\Big[y_i\log\sigma(x_i^T\beta)+(1-y_i)\log\big(1-\sigma(x_i^T\beta)\big)\Big]. Spesso si usa la media 1nL\frac1n\mathcal L.

Esempio. Per y=1y=1 e y^=0,9\hat y=0{,}9: costo −ln⁡0,9=0,105-\ln0{,}9=0{,}105; per y^=0,1\hat y=0{,}1: −ln⁡0,1=2,303-\ln0{,}1=2{,}303; per y^=0,5\hat y=0{,}5 (modello indeciso): ln⁡2=0,693\ln2=0{,}693. Con β=0\beta=0 tutte le previsioni valgono 0,50{,}5 e la media della perdita è ln⁡2=0,693\ln2=0{,}693 qualunque siano i dati.

Grafico interattivo: Costo per un esempio con y = 1 in funzione di z = xᵀβ: l'errore quadratico (1 − σ(z))² si appiattisce a sinistra (gradiente quasi nullo anche se l'errore è massimo), la log-verosimiglianza −log σ(z) = log(1 + e^(−z)) cresce linearmente per z molto negativo e fornisce sempre un gradiente utile

Formula (gradiente della log-verosimiglianza negativa). ∇βL=XT(y^−y),oppure, con la media,∇β(1nL)=XT(y^−y)n.\nabla_\beta\mathcal L=X^T(\hat y-y),\qquad\text{oppure, con la media,}\quad\nabla_\beta\Big(\tfrac1n\mathcal L\Big)=\frac{X^T(\hat y-y)}{n}. Qui XX include la colonna di uni, y^=σ(Xβ)\hat y=\sigma(X\beta) e yy sono vettori n×1n\times1.

Esempio completo. Dati x=[1,2,3,4,5,6]x=[1,2,3,4,5,6], y=[0,0,1,0,1,1]y=[0,0,1,0,1,1], X=[11⋮⋮16]X=\begin{bmatrix}1&1\\\vdots&\vdots\\1&6\end{bmatrix}. Partendo da β=(0,0)\beta=(0,0) tutte le previsioni sono 0,50{,}5 e l'errore y^−y=[0,5;0,5;−0,5;0,5;−0,5;−0,5]\hat y-y=[0{,}5;0{,}5;-0{,}5;0{,}5;-0{,}5;-0{,}5]. Gradiente: la prima componente è 16(0,5+0,5−0,5+0,5−0,5−0,5)=0\frac16(0{,}5+0{,}5-0{,}5+0{,}5-0{,}5-0{,}5)=0; la seconda è 16(0,5⋅1+0,5⋅2−0,5⋅3+0,5⋅4−0,5⋅5−0,5⋅6)=16(−3,5)=−0,583\frac16(0{,}5\cdot1+0{,}5\cdot2-0{,}5\cdot3+0{,}5\cdot4-0{,}5\cdot5-0{,}5\cdot6)=\frac16(-3{,}5)=-0{,}583. Con η=0,1\eta=0{,}1: β=(0; 0,0583)\beta=(0;\ 0{,}0583). Le previsioni diventano σ(0,0583x)=0,515; 0,529; … ; 0,587\sigma(0{,}0583x)=0{,}515;\,0{,}529;\,\dots;\,0{,}587; secondo gradiente (0,0507; −0,364)(0{,}0507;\,-0{,}364), quindi β=(−0,0051; 0,0947)\beta=(-0{,}0051;\ 0{,}0947); terzo passo β=(−0,0131; 0,1182)\beta=(-0{,}0131;\ 0{,}1182). A convergenza (verificata con il metodo di Newton e con scikit-learn senza penalità) β≈(−4,249; 1,214)\beta\approx(-4{,}249;\ 1{,}214), con perdita media 0,4130{,}413 (era 0,6930{,}693): il bordo −4,249+1,214x=0-4{,}249+1{,}214x=0 cade in x=3,5x=3{,}5 e le probabilità previste sono 0,046; 0,139; 0,353; 0,647; 0,861; 0,9540{,}046;\ 0{,}139;\ 0{,}353;\ 0{,}647;\ 0{,}861;\ 0{,}954.

Grafico interattivo: Sei dati (y = 0 per x = 1, 2, 4 e y = 1 per x = 3, 5, 6) e curva logistica σ(−4,249 + 1,214 x): supera 0,5 in x = 3,5, il bordo di decisione

Metriche di classificazione

Definizione (matrice di confusione). Tabella che incrocia la classe vera (actual, righe) con la classe prevista (predicted, colonne). Ogni cella conta quante osservazioni hanno quella combinazione; la diagonale contiene le previsioni corrette.

Esempio. Con etichette vere [1,1,1,1,0,0,0,1,1,1][1,1,1,1,0,0,0,1,1,1] e previste [1,1,1,1,0,0,1,0,0,0][1,1,1,1,0,0,1,0,0,0]: TP =4=4 (le prime quattro), TN =2=2 (posizioni 5 e 6), FP =1=1 (posizione 7: vero 00, previsto 11), FN =3=3 (posizioni 8, 9, 10: vero 11, previsto 00).

Formula (accuracy, specificità, precision, recall). accuracy=TP+TNTP+TN+FP+FN,specificitaˋ=TNTN+FP,\text{accuracy}=\frac{TP+TN}{TP+TN+FP+FN},\qquad\text{specificità}=\frac{TN}{TN+FP}, precision=TPTP+FP,recall (sensibilitaˋ, TPR)=TPTP+FN.\text{precision}=\frac{TP}{TP+FP},\qquad\text{recall (sensibilità, TPR)}=\frac{TP}{TP+FN}.

Esempio (stessi dati). Accuracy =4+210=0,6=\frac{4+2}{10}=0{,}6; specificità =22+1=0,667=\frac{2}{2+1}=0{,}667; precision =44+1=0,8=\frac{4}{4+1}=0{,}8; recall =44+3=0,571=\frac{4}{4+3}=0{,}571. Il modello è quindi affidabile quando dice «positivo» (0,80{,}8) ma trova solo il 57%57\% dei positivi.

Definizione (curva ROC). Per ogni soglia tt (si predice positivo se punteggio ≥t\ge t) si calcolano il tasso di veri positivi TPR=TPTP+FN\text{TPR}=\frac{TP}{TP+FN} (la recall) e il tasso di falsi positivi FPR=FPFP+TN=1−specificitaˋ\text{FPR}=\frac{FP}{FP+TN}=1-\text{specificità}; la curva ROC (receiver operating characteristic) riporta TPR contro FPR. L'area sotto la curva si chiama AUC: 11 per un classificatore perfetto, 0,50{,}5 per uno casuale (la diagonale). Un buon classificatore ha la curva vicina all'angolo in alto a sinistra.

Esempio. Etichette y=[0,0,1,1]y=[0,0,1,1] e punteggi [0,1; 0,4; 0,35; 0,8][0{,}1;\,0{,}4;\,0{,}35;\,0{,}8]. Soglia 0,80{,}8: previsti positivi solo il punteggio 0,80{,}8 (vero positivo): TPR =1/2=1/2, FPR =0=0, punto (0; 0,5)(0;\,0{,}5). Soglia 0,40{,}4: positivi i punteggi 0,80{,}8 e 0,40{,}4 (quest'ultimo è un negativo): TP =1=1, FP =1=1, punto (0,5; 0,5)(0{,}5;\,0{,}5). Soglia 0,350{,}35: TP =2=2, FP =1=1, punto (0,5; 1)(0{,}5;\,1). Soglia 0,10{,}1: tutti positivi, punto (1; 1)(1;\,1). Area per rettangoli: 0,5⋅0,50{,}5\cdot0{,}5 (tra FPR=0\text{FPR}=0 e 0,50{,}5 a quota 0,50{,}5) + 0,5⋅1+\ 0{,}5\cdot1 (tra 0,50{,}5 e 11 a quota 11) =0,25+0,5=0,75=0{,}25+0{,}5=0{,}75. Lo stesso valore si ottiene contando le coppie (positivo, negativo) in cui il positivo ha punteggio più alto: 33 su 44 ⇒0,75\Rightarrow0{,}75: l'AUC è la probabilità che un positivo preso a caso abbia un punteggio maggiore di un negativo preso a caso.

Grafico interattivo: Curva ROC dell'esempio (punteggi 0,1; 0,4; 0,35; 0,8 con classi 0, 0, 1, 1): passa per (0; 0,5), (0,5; 0,5), (0,5; 1); l'area è 0,75. La diagonale è il classificatore casuale (AUC = 0,5)

Halfspace e Perceptron

Definizione (halfspace). La classe di funzioni hw,b(x)=sign⁡(wTx+b),w∈Rp, b∈R,h_{w,b}(x)=\operatorname{sign}\big(w^Tx+b\big),\qquad w\in\mathbb R^p,\ b\in\mathbb R, con sign⁡(z)=+1\operatorname{sign}(z)=+1 per z>0z>0 e −1-1 per z<0z<0 (per z=0z=0 si sceglie una convenzione, per esempio +1+1). Il vettore dei pesi ww e il bias bb sono i parametri.

Esempio. In R2\mathbb R^2 con w=(1,1)w=(1,1) e b=−3b=-3: h(x)=sign⁡(x1+x2−3)h(x)=\operatorname{sign}(x_1+x_2-3). Il punto (2,3)(2,3) dà 2+3−3=2>0⇒+12+3-3=2>0\Rightarrow+1; il punto (0,1)(0,1) dà −2<0⇒−1-2<0\Rightarrow-1.

Definizione (separabilità lineare). Un insieme di esempi (xi,yi)(x_i,y_i) è linearmente separabile se esistono w,bw,b con yi(wTxi+b)>0y_i(w^Tx_i+b)>0 per ogni ii, cioè se un halfspace li classifica tutti correttamente. Il margine di un tale piano è la distanza minima dei punti dal piano.

Definizione (algoritmo del Perceptron). Dati (xi,yi)(x_i,y_i) con yi∈{−1,+1}y_i\in\{-1,+1\} e xix_i aumentati con la costante 11:

  1. si inizializza w=0w=0;
  2. si scorrono gli esempi; per un esempio sbagliato, cioè con yi wTxi≤0y_i\,w^Tx_i\le0, si aggiorna w←w+yi xi;w\leftarrow w+y_i\,x_i;
  3. si ripete finché in un'intera passata non ci sono errori.

Esempio completo (verificato). Dati x0=(2,3)x_0=(2,3) con y=+1y=+1, x1=(3,1)x_1=(3,1) con +1+1, x2=(0,1)x_2=(0,1) con −1-1, x3=(1,−1)x_3=(1,-1) con −1-1; con la costante x~=(x1,x2,1)\tilde x=(x_1,x_2,1) e w=(0,0,0)w=(0,0,0):

Grafico interattivo: Esempio del Perceptron: i punti positivi (rossi) e negativi (blu) e l'iperpiano finale x₁ + x₂ = 3, ottenuto con w = (1, 1) e b = −3; il vettore w (freccia) è perpendicolare alla retta e punta verso il semispazio positivo

Teorema (convergenza del Perceptron, Novikoff). Siano ∥xi∥≤R\lVert x_i\rVert\le R per ogni ii, e sia w∗w^\ast con ∥w∗∥=1\lVert w^\ast\rVert=1 tale che yi w∗Txi≥γ>0y_i\,w^{\ast T}x_i\ge\gamma>0 per ogni ii (esiste un iperpiano con margine γ\gamma). Allora il Perceptron commette al più (R/γ)2(R/\gamma)^2 errori (aggiornamenti) prima di classificare correttamente tutti gli esempi.

Esempio. Nell'esempio precedente w∗=(1,1,−3)/11w^\ast=(1,1,-3)/\sqrt{11} ha margini yiw∗Tx~i=[2,1,2,3]/11y_iw^{\ast T}\tilde x_i=[2,1,2,3]/\sqrt{11}, quindi γ=1/11=0,302\gamma=1/\sqrt{11}=0{,}302; il vettore aumentato più lungo è (2,3,1)(2,3,1) con R=14=3,74R=\sqrt{14}=3{,}74. Il teorema garantisce t≤R2/γ2=14⋅11=154t\le R^2/\gamma^2=14\cdot11=154 errori; ne sono occorsi 55 (il limite è largo ma vale per ogni ordine degli esempi).

4. Alberi e metodi ensemble

Alberi di decisione

Definizione (albero di decisione). Struttura ad albero in cui

  • ogni nodo interno rappresenta una regola basata su una feature (per esempio «umidità = alta» oppure «x3≤1,9x_3\le1{,}9»);
  • ogni ramo è l'esito della regola;
  • ogni foglia è una predizione: tipicamente la classe più frequente tra i campioni che arrivano in quella foglia (in regressione, la media dei loro valori).

Definizione (entropia). (Logaritmo in base 2: Esponenziale e logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →.) Per un insieme SS di campioni con cc classi, di proporzioni p1,…,pcp_1,\dots,p_c, H(S)=−∑i=1cpilog⁡2pi(con 0log⁡20=0).H(S)=-\sum_{i=1}^cp_i\log_2p_i\qquad(\text{con }0\log_20=0). H=0H=0: l'insieme è puro (una sola classe); HH più alta: classi più mescolate, maggiore incertezza. Con due classi il massimo è 11 per p=12p=\tfrac12.

Definizione (guadagno d'informazione). Dividere SS secondo i valori vv dell'attributo AA in sottoinsiemi SvS_v riduce l'entropia di IG(S,A)=H(S)−∑v∈Valori(A)∣Sv∣∣S∣ H(Sv).IG(S,A)=H(S)-\sum_{v\in\text{Valori}(A)}\frac{|S_v|}{|S|}\,H(S_v). IGIG alto: la divisione riduce molto l'incertezza (buona scelta); IGIG basso: l'attributo non aiuta a separare le classi.

Esempio (dataset del tennis, Mitchell 1997). Dati di 14 giorni per prevedere se l'amico gioca a tennis:

Definizione (indice di Gini o impurità di Gini). Gini⁡(S)=1−∑i=1cpi2.\displaystyle\operatorname{Gini}(S)=1-\sum_{i=1}^cp_i^2. Vale 00 per un insieme puro, e il massimo 1−1c1-\tfrac1c per classi equiprobabili. Per una divisione in sinistra/destra: Gini⁡split=nsxnGini⁡(sx)+ndxnGini⁡(dx).\operatorname{Gini}_{\text{split}}=\frac{n_{\text{sx}}}{n}\operatorname{Gini}(\text{sx})+\frac{n_{\text{dx}}}{n}\operatorname{Gini}(\text{dx}). Si sceglie la divisione con Gini⁡split\operatorname{Gini}_{\text{split}} minimo (cioè con la massima riduzione di impurità).

Esempio. Sul tennis, Gini⁡(S)=1−(914)2−(514)2=1−0,413−0,128=0,459\operatorname{Gini}(S)=1-(\tfrac9{14})^2-(\tfrac5{14})^2=1-0{,}413-0{,}128=0{,}459. Split su Outlook: Sunny 1−(0,4)2−(0,6)2=0,481-(0{,}4)^2-(0{,}6)^2=0{,}48, Overcast 00, Rain 0,480{,}48, quindi Gini⁡split=5140,48+0+5140,48=0,343\operatorname{Gini}_{\text{split}}=\tfrac5{14}0{,}48+0+\tfrac5{14}0{,}48=0{,}343 (riduzione 0,1160{,}116); Humidity: 0,3670{,}367; Wind: 0,4290{,}429; Temperature: 0,4400{,}440. Anche con Gini la scelta migliore è Outlook.

Grafico interattivo: Misure di impurità per due classi in funzione della proporzione p di una classe: entropia (normalizzata a 1 in p = 0,5), indice di Gini 2p(1 − p) e errore di classificazione min(p, 1 − p). Tutte valgono 0 per un nodo puro e sono massime per p = 0,5

Formula (criteri per la regressione). Per una divisione in sinistra/destra con nL,nRn_L,n_R campioni (n=nL+nRn=n_L+n_R): MSEsplit=nLnMSEL+nRnMSER,riduzione di varianza=Var⁡(genitore)−(nLnVar⁡L+nRnVar⁡R),\mathrm{MSE}_{\text{split}}=\frac{n_L}{n}\mathrm{MSE}_L+\frac{n_R}{n}\mathrm{MSE}_R,\qquad\text{riduzione di varianza}=\operatorname{Var}(\text{genitore})-\Big(\frac{n_L}{n}\operatorname{Var}_L+\frac{n_R}{n}\operatorname{Var}_R\Big), con Var⁡(y)=1n∑(yi−yˉ)2\operatorname{Var}(y)=\frac1n\sum(y_i-\bar y)^2 (Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →). Poiché in ogni nodo la previsione è la media (e quindi l'MSE del nodo è la sua varianza), massimizzare la riduzione di varianza equivale a minimizzare l'MSE. Ogni foglia restituisce la media del target dei suoi campioni.

Esempio. x=[1,2,3,4,5,6]x=[1,2,3,4,5,6], y=[1,2,3,10,11,12]y=[1,2,3,10,11,12]: varianza del genitore 20,9220{,}92. Per t=2,5t=2{,}5: sinistra [1,2][1,2] (varianza 0,250{,}25), destra [3,10,11,12][3,10,11,12] (media 99, varianza 36+1+4+94=12,5\tfrac{36+1+4+9}4=12{,}5): MSE ponderato 26⋅0,25+46⋅12,5=0,083+8,333=8,42\tfrac26\cdot0{,}25+\tfrac46\cdot12{,}5=0{,}083+8{,}333=8{,}42. Ripetendo per tutte le soglie si ottiene 14,87; 8,42; 0,67; 8,42; 14,8714{,}87;\ 8{,}42;\ \mathbf{0{,}67};\ 8{,}42;\ 14{,}87 per t=1,5; 2,5; 3,5; 4,5; 5,5t=1{,}5;\ 2{,}5;\ 3{,}5;\ 4{,}5;\ 5{,}5: la migliore è t=3,5t=3{,}5 (sinistra [1,2,3][1,2,3] con media 22 e varianza 23\tfrac23; destra [10,11,12][10,11,12] con media 1111 e varianza 23\tfrac23), con riduzione di varianza 20,92−0,67=20,2520{,}92-0{,}67=20{,}25. Le predizioni sono 22 per x≤3,5x\le3{,}5 e 1111 per x>3,5x>3{,}5: una funzione costante a tratti.

Metodi ensemble - bagging, random forest e boosting

Definizione (bagging, bootstrap aggregating). Per costruire una foresta di TT alberi: per ciascun albero si estrae dal training di nn campioni un campione bootstrap, cioè nn campioni con rimpiazzo (ogni estratto è rimesso nell'urna prima della successiva); si addestra un albero su ciascun campione; per classificare si fa il voto di maggioranza (la moda), per la regressione la media.

Esempio di voto. Con T=4T=4 alberi che predicono [2,2,1,2][2,2,1,2] per un campione: classe 22 con 33 voti su 44, «confidenza» 0,750{,}75 (la frazione di voti per la classe vincente). Nel laboratorio (dataset wine, T=4T=4 alberi di profondità 2) l'accuracy sul test è 0,9190{,}919 e gli errori hanno confidenza 0,750{,}75 o 0,50{,}5.

Definizione (random forest). Bagging in più: a ogni split di ogni albero, invece di valutare tutte le feature se ne estrae a caso un sottoinsieme (tipicamente p\sqrt p, con pp feature) e si sceglie lo split migliore solo tra queste (feature bagging).

Esempio (laboratorio, wine, feature bagging, T=10T=10). Accuracy sul test 0,9730{,}973 con profondità 2 e 4 e 1,01{,}0 con profondità 10; un solo albero di profondità 2-3 dava 0,9460{,}946-0,9730{,}973.

Definizione (importanza di una feature). La misura di quanto una feature è utile alle previsioni, basata su quanto riduce l'impurità quando è usata per dividere. È un approccio «globale» di intelligenza artificiale spiegabile (Explainable AI (XAI)approfondimento: non nel programma di Telecomunicazioni. L'interpretabilità è l'arte di produrre descrizioni di un modello abbastanza semplici da essere capite da un umano; la spiegabilità aggiunge la completezza (permettere di anticipare la previsione). I metodi si classificano in intrinseci o post-hoc, agnostici o specifici del modello, globali o locali. Modelli intrinsecamente interpretabili: regressione lineare (pesi $\beta_j$, intervalli di confidenza, LASSO per la sparsità), regressione logistica ($\log\frac y{1-y}=\beta_0+\sum\beta_jx_j$), alberi. Importanza nelle foreste: MDI $=\sum_{\text{nodi}}\frac{n_p}{n_{TOT}}\Delta Gini$ (con feature selection bias). Metodi agnostici: permutation importance (aumento dell'errore dopo aver mescolato una feature), PDP $\hat f_S(x_S)=\frac1n\sum_if(x_S,x_C^{(i)})$ (media delle curve ICE), LIME (modello semplice locale pesato sui punti perturbati), SHAP (valori di Shapley: media dei contributi marginali su tutti gli ordini, somma $=f(x)-f(\text{base})$). Per le reti profonde: mappe di salienza, Grad-CAM, occlusione. Valutazione: livello applicativo, umano, funzionale. Lab: cardiopatia AHD con logistica, LASSO, random forest, ICE, PDP, SHAP.Explainable AI (XAI) →): dà informazioni sull'intero modello.

Esempio (iris, albero di profondità 3). Nodi: radice (150 campioni) con la larghezza del petalo: 150150⋅0,3333=0,3333\frac{150}{150}\cdot0{,}3333=0{,}3333; nodo «larghezza >0,8>0{,}8» (100 campioni, di nuovo larghezza): 100150⋅0,3897=0,2598\frac{100}{150}\cdot0{,}3897=0{,}2598; due nodi con la lunghezza del petalo: 54150⋅0,0824=0,0297\frac{54}{150}\cdot0{,}0824=0{,}0297 e 46150⋅0,0135=0,0042\frac{46}{150}\cdot0{,}0135=0{,}0042. Importanza grezza: larghezza 0,3333+0,2598=0,59310{,}3333+0{,}2598=0{,}5931, lunghezza 0,0297+0,0042=0,03390{,}0297+0{,}0042=0{,}0339; normalizzando (divisione per la somma 0,62700{,}6270): 0,9460{,}946 e 0,0540{,}054 (coincide con feature_importances_ di scikit-learn). Sul dataset wine le feature più importanti sono proline, intensità del colore e flavonoidi.

Definizione (boosting). Si costruisce un modello forte (strong learner) combinando in sequenza molti modelli deboli (alberi con pochi split); ciascun nuovo modello cerca di correggere gli errori dei precedenti. La combinazione è una somma pesata.

Formula (gradient boosting). F0=yˉF_0=\bar y,  ri=yi−Fm(xi)\ r_i=y_i-F_{m}(x_i),  Fm+1(x)=Fm(x)+η hm(x)\ F_{m+1}(x)=F_m(x)+\eta\,h_m(x). Predizione finale: FM(x)=F0+η∑mhm(x)F_M(x)=F_0+\eta\sum_mh_m(x).

Esempio (dalle slide). Pesi osservati y=[88,76,56,73,77,57]y=[88,76,56,73,77,57] (altezza, colore preferito, genere come feature). Predizione iniziale: la media 71,271{,}2 (esattamente 71,1771{,}17). Residui: [16,8; 4,8; −15,2; 1,8; 5,8; −14,2][16{,}8;\ 4{,}8;\ -15{,}2;\ 1{,}8;\ 5{,}8;\ -14{,}2]. Primo albero con 4 foglie: {−14,2,−15,2}→−14,7\{-14{,}2,-15{,}2\}\to-14{,}7 (media), {4,8}→4,8\{4{,}8\}\to4{,}8, {1,8,5,8}→3,8\{1{,}8,5{,}8\}\to3{,}8, {16,8}→16,8\{16{,}8\}\to16{,}8. Con η=0,1\eta=0{,}1 la prima osservazione passa da 71,271{,}2 a 71,2+0,1⋅16,8=72,8871{,}2+0{,}1\cdot16{,}8=72{,}88 e il nuovo residuo è 88−72,88=15,1288-72{,}88=15{,}12 (prima 16,816{,}8: ha fatto un «piccolo passo» nella direzione giusta). Residui dopo il primo albero: [15,1; 4,3; −13,7; 1,4; 5,4; −12,7][15{,}1;\ 4{,}3;\ -13{,}7;\ 1{,}4;\ 5{,}4;\ -12{,}7]. Secondo albero: foglie −13,2-13{,}2, 4,34{,}3, 3,43{,}4, 15,115{,}1; residui dopo il secondo: [13,6; 3,9; −12,4; 1,1; 5,1; −11,4][13{,}6;\ 3{,}9;\ -12{,}4;\ 1{,}1;\ 5{,}1;\ -11{,}4]. Ad ogni albero i residui si riducono (l'errore quadratico medio sul training passa da 129129 a circa 105105 e 8585).

Formula (similarity score, gain, output). Con λ\lambda parametro di regolarizzazione: Similarity=(∑residui)2Nresidui+λ,Gain=Simsx+Simdx−Simgenitore,Output=∑residuiNresidui+λ.\text{Similarity}=\frac{\big(\sum\text{residui}\big)^2}{N_{\text{residui}}+\lambda},\qquad \text{Gain}=\text{Sim}_{\text{sx}}+\text{Sim}_{\text{dx}}-\text{Sim}_{\text{genitore}},\qquad \text{Output}=\frac{\sum\text{residui}}{N_{\text{residui}}+\lambda}. Attenzione: nell'output la somma non è al quadrato.

Esempio (dalle slide). Dosaggi [10,20,25,35][10,20,25,35] mg, efficacia [−10,7,8,−7][-10,7,8,-7], predizione iniziale 0,50{,}5: residui [−10,5; 6,5; 7,5; −7,5][-10{,}5;\ 6{,}5;\ 7{,}5;\ -7{,}5], con λ=0\lambda=0. Radice: somma =−4=-4, similarità (−4)24=4\frac{(-4)^2}{4}=4. Soglia «dosaggio <15<15»: sinistra {−10,5}\{-10{,}5\}: 110,251=110,25\frac{110{,}25}{1}=110{,}25; destra {6,5; 7,5; −7,5}\{6{,}5;\ 7{,}5;\ -7{,}5\} (somma 6,56{,}5): 42,253=14,08\frac{42{,}25}{3}=14{,}08; gain =110,25+14,08−4=120,33=110{,}25+14{,}08-4=\mathbf{120{,}33}. Soglia «<22,5<22{,}5»: sinistra {−10,5; 6,5}\{-10{,}5;\ 6{,}5\} (somma −4-4): 162=8\frac{16}{2}=8; destra {7,5; −7,5}\{7{,}5;\ -7{,}5\} (somma 0): 00; gain =8+0−4=4=8+0-4=4. Soglia «<30<30»: sinistra (somma 3,53{,}5): 12,253=4,08\frac{12{,}25}{3}=4{,}08; destra {−7,5}\{-7{,}5\}: 56,2556{,}25; gain =4,08+56,25−4=56,33=4{,}08+56{,}25-4=56{,}33. Si sceglie «dosaggio <15<15». Il ramo destro {6,5;7,5;−7,5}\{6{,}5;7{,}5;-7{,}5\} si divide ancora con «<30<30»: sinistra {6,5;7,5}\{6{,}5;7{,}5\} (somma 14): 1962=98\frac{196}2=98; destra {−7,5}\{-7{,}5\}: 56,2556{,}25; gain =98+56,25−14,08=140,17=98+56{,}25-14{,}08=140{,}17 (profondità massima 2 nell'esempio; in pratica 6).

5. Apprendimento non supervisionato

Anomaly detection

Definizione (anomalia o outlier). «Un outlier è un'osservazione che si discosta così tanto dalle altre da destare il sospetto di essere stata generata da un meccanismo diverso» (Hawkins, 1980). In un dataset, per definizione, gli outlier dovrebbero essere pochi.

Esempio. Un sensore di temperatura che segna 20002000 gradi invece di 200200 per un guasto del sensore.

Definizione (statistica T2T^2 di Hotelling). Per pp variabili, con media campionaria xˉ\bar x e matrice di covarianza S=1n−1∑i(xi−xˉ)(xi−xˉ)TS=\frac1{n-1}\sum_i(x_i-\bar x)(x_i-\bar x)^T: T2(x)=(x−xˉ)T S−1 (x−xˉ).T^2(x)=(x-\bar x)^T\,S^{-1}\,(x-\bar x). È uno z-score multivariato: misura quanto un'osservazione è lontana dalla media tenendo conto delle correlazioni. Un punto è un outlier multivariato se T2>UCLT^2>\mathrm{UCL}.

Esempio. Quantili: per p=1p=1 e α=0,05\alpha=0{,}05, χ2=3,841\chi^2=3{,}841 (uguale a 1,9621{,}96^2); per p=2p=2: 5,9915{,}991 (α=0,05\alpha=0{,}05) e 9,2109{,}210 (α=0,01\alpha=0{,}01); per p=3p=3: 7,8157{,}815. Caso univariato: con media xˉ\bar x e varianza s2s^2 la statistica è (x−xˉ)2/s2(x-\bar x)^2/s^2: nel laboratorio, per 100100 valori da N(0,1)N(0,1) il punto x=5x=5 ha T2≈24T^2\approx24, ben oltre 3,8413{,}841: anomalo.

Grafico interattivo: Con correlazione 0,8 e varianze 1, la regione «normale» T² ≤ 5,99 (α = 0,05) è un'ellisse allungata lungo la diagonale: il punto (1, −1) è fuori (T² = 10) anche se ogni coordinata è entro 1σ; il punto (2, 2) è dentro (T² = 4,4) anche se ogni coordinata è a 2σ

Clustering e k-means

Definizione (k-means). Se si conoscessero i centroidi (i centri) di KK gruppi, basterebbe assegnare ogni punto al centroide più vicino. L'algoritmo li trova insieme alle assegnazioni:

  1. Scegliere KK (iperparametro): il numero di cluster.
  2. Inizializzare i centroidi: si scelgono a caso KK dei punti dati come centri iniziali.
  3. Assegnare ogni punto al centroide più vicino (distanza euclidea o altra).
  4. Aggiornare ogni centroide alla media dei punti assegnati al suo cluster.
  5. Ripetere 3-4 fino a convergenza (i centroidi non cambiano più, o cambiano meno di una tolleranza, o si è raggiunto il numero massimo di iterazioni).

Definizione (clustering gerarchico). Costruisce un albero di cluster, il dendrogramma, in due modi:

  • agglomerativo (bottom-up): ogni punto parte come cluster a sé e si fondono cluster passo dopo passo;
  • divisivo (top-down): si parte da un unico cluster che contiene tutto e lo si divide passo dopo passo.

Esempio svolto (average e single linkage). Sei punti P0=(1,2)P_0=(1,2), P1=(5,8)P_1=(5,8), P2=(1,1)P_2=(1,1), P3=(2,3)P_3=(2,3), P4=(1,5;1,8)P_4=(1{,}5;1{,}8), P5=(5;6,5)P_5=(5;6{,}5) e distanza euclidea. Ordine delle fusioni con average linkage (distanza di fusione tra parentesi): {P0,P4}\{P_0,P_4\} (0,539)(0{,}539); poi {P0,P4}\{P_0,P_4\} con P2P_2 (0,972)(0{,}972); {P1,P5}\{P_1,P_5\} (1,50)(1{,}50); {P0,P4,P2}\{P_0,P_4,P_2\} con P3P_3 (1,65)(1{,}65); infine i due gruppi {P0,P2,P3,P4}\{P_0,P_2,P_3,P_4\} e {P1,P5}\{P_1,P_5\} (6,44)(6{,}44). Con single linkage le distanze sono 0,539; 0,943; 1,30; 1,50; 4,610{,}539;\ 0{,}943;\ 1{,}30;\ 1{,}50;\ 4{,}61: stessi gruppi, altezze diverse. Il salto grande nell'ultima fusione indica che due cluster sono la scelta naturale.

6. Support vector machines

Support vector machines e metodi kernel

Definizione (margine). Il margine è la distanza tra il bordo di decisione e le osservazioni di ciascuna classe più vicine ad esso. Il classificatore a margine massimo (maximal margin classifier) è il classificatore lineare che sceglie l'iperpiano per cui questa distanza è la più grande possibile.

Formula (distanza di un punto dall'iperpiano). d(x0)=∣w⋅x0+b∣∥w∥.d(x_0)=\frac{|w\cdot x_0+b|}{\|w\|}.

Esempio. Piano x1+x2−4=0x_1+x_2-4=0, quindi w=(1,1)w=(1,1), b=−4b=-4, ∥w∥=2\|w\|=\sqrt2. Il punto (3,3)(3,3) dista ∣3+3−4∣/2=2/2=2≈1,41|3+3-4|/\sqrt2=2/\sqrt2=\sqrt2\approx1{,}41.

Formula (larghezza del margine). Con la normalizzazione precedente, la distanza dal piano centrale a ciascun piano parallelo è 1/∥w∥1/\|w\| e il margine totale è larghezza=2∥w∥.\text{larghezza}=\frac{2}{\|w\|}.

Esempio. Con w=(0,5;0,5)w=(0{,}5;0{,}5) si ha ∥w∥=0,52≈0,707\|w\|=0{,}5\sqrt2\approx0{,}707, quindi un margine di 1/0,707≈1,411/0{,}707\approx1{,}41 per lato e 2,832{,}83 in totale.

Formula (SVM a margine rigido, hard margin). min⁡w,b 12∥w∥2soggetto ayi(w⋅xi+b)≥1,  i=1,…,n.\min_{w,b}\ \frac12\|w\|^2\qquad\text{soggetto a}\quad y_i(w\cdot x_i+b)\ge1,\ \ i=1,\dots,n.

Formula (forma duale). max⁡α≥0 ∑iαi−12∑i,jαiαjyiyj (xi⋅xj)con∑iαiyi=0.\max_{\alpha\ge0}\ \sum_i\alpha_i-\frac12\sum_{i,j}\alpha_i\alpha_jy_iy_j\,(x_i\cdot x_j)\qquad\text{con}\quad\sum_i\alpha_iy_i=0. Il classificatore è y^(x)=sign⁡ ⁣(∑iαiyi (xi⋅x)+b)\hat y(x)=\operatorname{sign}\!\Big(\sum_i\alpha_iy_i\,(x_i\cdot x)+b\Big), perché w⋅x=∑iαiyi (xi⋅x)w\cdot x=\sum_i\alpha_iy_i\,(x_i\cdot x).

Esempio. Nell'esempio i vettori di supporto sono due, con α1=α2=α\alpha_1=\alpha_2=\alpha per ∑αiyi=0\sum\alpha_iy_i=0. Da w=α (3,3)−α (1,1)=α (2,2)=(0,5;0,5)w=\alpha\,(3,3)-\alpha\,(1,1)=\alpha\,(2,2)=(0{,}5;0{,}5) si ricava α=0,25\alpha=0{,}25; gli altri quattro punti hanno α=0\alpha=0. Si controlla che il valore del duale ∑αi−12∑αiαjyiyjxi⋅xj=0,5−12⋅0,252⋅(2+18−2⋅6)=0,5−0,25=0,25\sum\alpha_i-\frac12\sum\alpha_i\alpha_jy_iy_jx_i\cdot x_j=0{,}5-\frac12\cdot0{,}25^2\cdot(2+18-2\cdot6)=0{,}5-0{,}25=0{,}25 coincide con il valore del primale 12∥w∥2=0,25\frac12\|w\|^2=0{,}25.

Formula (SVM a margine morbido). min⁡w,b,ξ 12∥w∥2+C∑i=1nξisoggetto ayi(w⋅xi+b)≥1−ξi,  ξi≥0.\min_{w,b,\xi}\ \frac12\|w\|^2+C\sum_{i=1}^n\xi_i\qquad\text{soggetto a}\quad y_i(w\cdot x_i+b)\ge1-\xi_i,\ \ \xi_i\ge0.

Esempio. Con w=(0,5;0,5)w=(0{,}5;0{,}5), b=−2b=-2 e un punto di classe +1+1 in (2,5;2)(2{,}5;2): m=0,5⋅4,5−2=0,25m=0{,}5\cdot4{,}5-2=0{,}25, quindi ξ=0,75\xi=0{,}75 (dentro il margine, ma dal lato corretto). Un punto di classe +1+1 in (3;0,5)(3;0{,}5) ha m=0,5⋅3,5−2=−0,25m=0{,}5\cdot3{,}5-2=-0{,}25 e ξ=1,25\xi=1{,}25: mal classificato.

Grafico interattivo: Margine morbido: lo stesso piano con due punti di classe +1 che violano il margine. (2,5; 2) è dentro il margine (ξ = 0,75), (3; 0,5) è dal lato sbagliato (ξ = 1,25)

Definizione (kernel). Una funzione K(x,x′)K(x,x') è un kernel se vale K(x,x′)=⟨ϕ(x),ϕ(x′)⟩K(x,x')=\langle\phi(x),\phi(x')\rangle per una certa mappa ϕ\phi. Misura la «somiglianza» di xx e x′x': grande per punti simili, piccola per punti dissimili. Una SVM (Support Vector Machine) è un SVC in cui xi⋅xjx_i\cdot x_j è sostituito dal kernel: y^(x)=sign⁡(∑iαiyi K(xi,x)+b).\hat y(x)=\operatorname{sign}\Big(\sum_i\alpha_iy_i\,K(x_i,x)+b\Big).

Esempio (kernel polinomiale di grado 2). Con ϕ\phi del paragrafo precedente si dimostra ⟨ϕ(x),ϕ(z)⟩=(x⋅z+1)2\langle\phi(x),\phi(z)\rangle=(x\cdot z+1)^2: si espande il quadrato, (x1z1+x2z2+1)2=x12z12+x22z22+2x1x2z1z2+2x1z1+2x2z2+1(x_1z_1+x_2z_2+1)^2=x_1^2z_1^2+x_2^2z_2^2+2x_1x_2z_1z_2+2x_1z_1+2x_2z_2+1, e si osserva che i sei addendi sono i prodotti delle sei componenti corrispondenti di ϕ(x)\phi(x) e ϕ(z)\phi(z) (per esempio 2x1x2⋅2z1z2=2x1x2z1z2\sqrt2x_1x_2\cdot\sqrt2z_1z_2=2x_1x_2z_1z_2); da qui il fattore 2\sqrt2 nella mappa. Numericamente, per x=(1,2)x=(1,2), z=(3,1)z=(3,1): ϕ(x)=[1,4,22,2,22,1]\phi(x)=[1,4,2\sqrt2,\sqrt2,2\sqrt2,1], ϕ(z)=[9,1,32,32,2,1]\phi(z)=[9,1,3\sqrt2,3\sqrt2,\sqrt2,1] e ⟨ϕ(x),ϕ(z)⟩=9+4+12+6+4+1=36\langle\phi(x),\phi(z)\rangle=9+4+12+6+4+1=36. Con il kernel: x⋅z=3+2=5x\cdot z=3+2=5 e (5+1)2=36(5+1)^2=36. Stesso risultato con un solo prodotto scalare in R2\mathbb R^2 invece di uno in R6\mathbb R^6.

Formula (SVR). min⁡w,b,ξ,ξ∗ 12∥w∥2+C∑i(ξi+ξi∗)conyi−w⋅xi−b≤ε+ξi,  w⋅xi+b−yi≤ε+ξi∗,  ξi,ξi∗≥0.\min_{w,b,\xi,\xi^*}\ \frac12\|w\|^2+C\sum_i(\xi_i+\xi_i^*)\quad\text{con}\quad y_i-w\cdot x_i-b\le\varepsilon+\xi_i,\ \ w\cdot x_i+b-y_i\le\varepsilon+\xi_i^*,\ \ \xi_i,\xi_i^*\ge0.

7. Reti neurali e deep learning

Reti neurali - neuroni e funzioni di attivazione

Definizione (neurone artificiale). Dato un vettore di ingressi x=[x1,…,xm]⊤x=[x_1,\dots,x_m]^\top, pesi w=[w1,…,wm]⊤w=[w_1,\dots,w_m]^\top, bias w0w_0 e una funzione di attivazione gg (non lineare) il neurone calcola y^=g(w0+x⊤w),z=w0+x⊤w  (pre-attivazione),  a=g(z)  (attivazione).\hat y=g\big(w_0+x^\top w\big),\qquad z=w_0+x^\top w\ \text{ (pre-attivazione)},\ \ a=g(z)\ \text{ (attivazione)}.

Esempio. x=(2,1)x=(2,1), w=(1,−0,5)w=(1,-0{,}5), w0=−0,2w_0=-0{,}2, g=σg=\sigma: z=2−0,5−0,2=1,3z=2-0{,}5-0{,}2=1{,}3 e y^=σ(1,3)=1/(1+e−1,3)≈0,786\hat y=\sigma(1{,}3)=1/(1+e^{-1{,}3})\approx0{,}786.

Formula (attivazioni principali). Le quattro funzioni usate negli strati nascosti, con la derivata (serve alla backpropagation):

Esempio. σ(0)=0,5\sigma(0)=0{,}5, σ(2)=0,881\sigma(2)=0{,}881, σ(−2)=0,119\sigma(-2)=0{,}119; σ′(0)=0,25\sigma'(0)=0{,}25 (massimo), σ′(5)=0,0066\sigma'(5)=0{,}0066. tanh⁡(1)=0,762\tanh(1)=0{,}762 e tanh⁡′(1)=1−0,7622=0,42\tanh'(1)=1-0{,}762^2=0{,}42.

Grafico interattivo: Funzioni di attivazione: sigmoide e tanh saturano, ReLU e Leaky ReLU (α = 0,1) no

Formula (forma matriciale). Con a(0)=xa^{(0)}=x e, per ogni strato k=1,…,Lk=1,\dots,L, z(k)=W(k)a(k−1)+b(k),a(k)=g(k)(z(k)),y^=a(L).z^{(k)}=W^{(k)}a^{(k-1)}+b^{(k)},\qquad a^{(k)}=g^{(k)}\big(z^{(k)}\big),\qquad \hat y=a^{(L)}. W(k)W^{(k)} ha dimensione dk×dk−1d_k\times d_{k-1}, b(k)b^{(k)} ha dkd_k componenti.

Teorema (approssimazione universale). Una rete con un solo strato nascosto (sufficientemente largo) e attivazione non lineare può approssimare qualsiasi funzione continua su un insieme compatto con precisione arbitraria.

Formula (softmax). Trasforma i punteggi grezzi (logits) z1,…,zKz_1,\dots,z_K in probabilità: softmax⁡(z)i=ezi∑j=1Kezj.\operatorname{softmax}(z)_i=\frac{e^{z_i}}{\sum_{j=1}^Ke^{z_j}}. Ogni uscita sta in (0,1)(0,1) e la somma è 11 (il numeratore è positivo ed è una parte del denominatore, che è la somma di tutti i numeratori). Si usa l'esponenziale (Esponenziale e logaritmoLa funzione esponenziale a^x (base positiva diversa da 1) e la sua inversa, il logaritmo in base a, con grafici e proprietà.Esponenziale e logaritmo →) perché è positivo, monotono (ordine dei punteggi conservato) e derivabile. Si veda Regressione logistica e softmaxLa regressione lineare non è adatta alla classificazione (valori fuori da [0,1], retta tirata dai punti lontani). La regressione logistica passa il predittore lineare dalla sigmoide $\sigma(z)=1/(1+e^{-z})$ e interpreta $\hat y=\sigma(x^T\beta)$ come $P(y=1\mid x)$: si predice la classe 1 se $\hat y\ge0{,}5$, cioè $x^T\beta\ge0$ (bordo lineare). L'errore quadratico dà una funzione non convessa; si usa la log-verosimiglianza negativa $-\sum[y\log\hat y+(1-y)\log(1-\hat y)]$, convessa, con gradiente $X^T(\hat y-y)$ e nessuna formula chiusa (discesa del gradiente). Per più classi: one-vs-one ($C(C-1)/2$ classificatori, voto), one-vs-all ($C$ classificatori, massima probabilità), o la softmax $p_c=e^{z_c}/\sum_ke^{z_k}$ con cross-entropia. Si può regolarizzare (ridge, LASSO, Elastic Net) e la cross-validation si fa stratificata. Approfondimento: non nel programma di Telecomunicazioni.Regressione logistica e softmax →.

Esempio. z=(2,1,0)z=(2,1,0): gli esponenziali sono 7,389; 2,718; 17{,}389;\ 2{,}718;\ 1, somma 11,10711{,}107, quindi probabilità (0,665; 0,245; 0,090)(0{,}665;\ 0{,}245;\ 0{,}090).

Formula (cross-entropy). Con yiy_i la distribuzione vera (one-hot) e pip_i quella predetta, la perdita di un campione è −∑iyilog⁡pi-\sum_iy_i\log p_i; nel caso binario −[ ylog⁡p+(1−y)log⁡(1−p) ]-[\,y\log p+(1-y)\log(1-p)\,]. Penalizza molto una previsione sbagliata con alta confidenza. Su un campione di classe vera 22 con probabilità predetta 0,2450{,}245 la perdita è −log⁡0,245=1,41-\log0{,}245=1{,}41.

Addestramento delle reti neurali - backpropagation e ottimizzatori

Definizione (loss e loss empirica). La loss L(f(x(i);W),y(i))\mathcal L(f(x^{(i)};W),y^{(i)}) è il costo associato alla previsione f(x(i);W)f(x^{(i)};W) quando il valore vero è y(i)y^{(i)}. La loss empirica (detta anche funzione obiettivo, funzione di costo, rischio empirico) è la media sul dataset: J(W)=1n∑i=1nL(f(x(i);W), y(i)).J(W)=\frac1n\sum_{i=1}^{n}\mathcal L\big(f(x^{(i)};W),\,y^{(i)}\big).

Esempio. Tre campioni con probabilità predette f=(0,1; 0,8; 0,6)f=(0{,}1;\ 0{,}8;\ 0{,}6) ed etichette y=(1,0,1)y=(1,0,1): le perdite individuali sono −log⁡0,1=2,303-\log0{,}1=2{,}303, −log⁡(1−0,8)=1,609-\log(1-0{,}8)=1{,}609, −log⁡0,6=0,511-\log0{,}6=0{,}511 e la loss empirica vale (2,303+1,609+0,511)/3=1,474(2{,}303+1{,}609+0{,}511)/3=1{,}474. Il primo campione, classificato male con alta confidenza, pesa da solo metà della perdita.

Formula (discesa del gradiente).

  1. Inizializza i pesi a caso, W∼N(0,σ2)W\sim\mathcal N(0,\sigma^2).
  2. Ripeti fino a convergenza: calcola ∂J(W)∂W\dfrac{\partial J(W)}{\partial W} e aggiorna W←W−η ∂J(W)∂WW\leftarrow W-\eta\,\dfrac{\partial J(W)}{\partial W}.
  3. Restituisci WW.

Esempio (una sola variabile). J(w)=(w−3)2J(w)=(w-3)^2, derivata 2(w−3)2(w-3), partenza w0=0w_0=0, η=0,1\eta=0{,}1. Ogni passo è w←w−0,1⋅2(w−3)=0,8 w+0,6w\leftarrow w-0{,}1\cdot2(w-3)=0{,}8\,w+0{,}6: 0→0,6→1,08→1,464→1,771→2,017→…0\to0{,}6\to1{,}08\to1{,}464\to1{,}771\to2{,}017\to\dots, che tende a 33 con JJ che scende 9→5,76→3,69→2,36→1,51→0,979\to5{,}76\to3{,}69\to2{,}36\to1{,}51\to0{,}97. Con η=1,1\eta=1{,}1 invece il passo è w←w−2,2(w−3)=−1,2w+6,6w\leftarrow w-2{,}2(w-3)=-1{,}2w+6{,}6: 0→6,6→−1,32→8,18→−3,22…0\to6{,}6\to-1{,}32\to8{,}18\to-3{,}22\dots oscilla e diverge. Un η\eta troppo piccolo è lentissimo, troppo grande diverge: è l'iperparametro più importante.

Grafico interattivo: Learning rate troppo piccolo (η = 0,01): partendo da w = 0 i passi sono minuscoli (w = 0, 0,06, 0,119, 0,177)

Formula (mini-batch). ∂J(W)∂W≈1B∑k=1B∂Jk(W)∂W,W←W−η ∂J(W)∂W.\dfrac{\partial J(W)}{\partial W}\approx\dfrac1B\sum_{k=1}^{B}\dfrac{\partial J_k(W)}{\partial W},\qquad W\leftarrow W-\eta\,\dfrac{\partial J(W)}{\partial W}.

Esempio. MNIST: 60 00060\,000 immagini, B=32B=32: 1 8751\,875 iterazioni per epoca. Con validation_split=0.1 il training scende a 54 00054\,000 e Keras mostra 1 6881\,688 iterazioni (⌈54 000/32⌉\lceil54\,000/32\rceil).

Teorema (regola della catena). Se y=f(u)y=f(u) e u=g(x)u=g(x) allora dydx=dfdu⋅dudx\dfrac{dy}{dx}=\dfrac{df}{du}\cdot\dfrac{du}{dx} (Regole di derivazioneDerivate delle funzioni elementari e delle loro inverse (arcsin, arctan, settcosh...) e regole di calcolo: linearità, prodotto (Leibniz), quoziente, funzione composta (regola della catena), funzione inversa, f(x)^g(x).Regole di derivazione →). Con più variabili intermedie y=f(u1,…,uk)y=f(u_1,\dots,u_k) e ui=ui(x)u_i=u_i(x) si sommano i contributi di ciascun percorso: dydx=∑i∂f∂uiduidx\dfrac{dy}{dx}=\sum_i\dfrac{\partial f}{\partial u_i}\dfrac{du_i}{dx} (Regola della catena in più variabiliSe x(t) è una curva derivabile e f è differenziabile in x(t₀), allora (f∘x)'(t₀) = ∇f(x(t₀))·x'(t₀) = Σ ∂ᵢf(x(t₀)) xᵢ'(t₀): la variazione di f lungo il moto è il gradiente per la velocità. Serve per derivare composte come f(2t, t²), per ricavare il gradiente da informazioni lungo curve, per le derivate di f(g(s,t)) e per provare che il gradiente è ortogonale alle curve di livello.Regola della catena in più variabili →, Matrice jacobiana e derivata delle funzioni compostePer F: Rn → Rm, F = (f1, …, fm), la matrice jacobiana JF è la matrice m × n con (JF)ij = ∂fi/∂xj: la riga i è il gradiente di fi. Regola della catena: J(f∘g)(x) = Jf(g(x)) · Jg(x); casi frequenti d/dt f(γ(t)) = ∇f(γ(t))·γ'(t) e ∂f/∂x = f_u u_x + f_v v_x. Se det JF(x0) ≠ 0, F è invertibile vicino a x0 e J(F⁻¹) = (JF)⁻¹. Coordinate polari: det J = ρ.Matrice jacobiana e derivata delle funzioni composte →).

Formula (backpropagation). Con z(l)=W(l)a(l−1)+b(l)z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)} e a(l)=g(z(l))a^{(l)}=g(z^{(l)}): δ(L)=∂J∂a(L)⊙g′(z(L)),δ(l)=(W(l+1)⊤δ(l+1))⊙g′(z(l)),\delta^{(L)}=\frac{\partial J}{\partial a^{(L)}}\odot g'\big(z^{(L)}\big),\qquad \delta^{(l)}=\Big(W^{(l+1)\top}\delta^{(l+1)}\Big)\odot g'\big(z^{(l)}\big), ∂J∂W(l)=δ(l) a(l−1)⊤,∂J∂b(l)=δ(l).\frac{\partial J}{\partial W^{(l)}}=\delta^{(l)}\,a^{(l-1)\top},\qquad \frac{\partial J}{\partial b^{(l)}}=\delta^{(l)}. (⊙\odot = prodotto componente per componente.)

Formula (inizializzazioni).

  • Glorot / Xavier (per tanh e sigmoide): Var⁡(W)=2nin+nout\operatorname{Var}(W)=\dfrac2{n_{in}+n_{out}} (media tra la condizione in avanti 1/nin1/n_{in} e quella all'indietro 1/nout1/n_{out}).
  • He (per ReLU): Var⁡(W)=2nin\operatorname{Var}(W)=\dfrac2{n_{in}}. La ReLU azzera metà degli ingressi, dimezzando la varianza: si raddoppia per compensare.

Esempio. Strato 784→512784\to512: Xavier dà deviazione standard 2/(784+512)=0,039\sqrt{2/(784+512)}=0{,}039; per uno strato ReLU 512→512512\to512 He dà 2/512=0,0625\sqrt{2/512}=0{,}0625. Keras usa Glorot uniforme di default; con ReLU conviene kernel_initializer="he_normal".

Formula (batch normalization). μB=1m∑ixi,σB2=1m∑i(xi−μB)2,x^i=xi−μBσB2+ε,yi=γx^i+β.\mu_{\mathcal B}=\frac1m\sum_ix_i,\qquad\sigma^2_{\mathcal B}=\frac1m\sum_i(x_i-\mu_{\mathcal B})^2,\qquad\hat x_i=\frac{x_i-\mu_{\mathcal B}}{\sqrt{\sigma^2_{\mathcal B}+\varepsilon}},\qquad y_i=\gamma\hat x_i+\beta. γ\gamma (scala) e β\beta (traslazione) sono parametri appresi per ogni strato; ε\varepsilon evita la divisione per zero.

Esempio. Batch {2,4,6,8}\{2,4,6,8\}: μ=5\mu=5, σ2=5\sigma^2=5, quindi x^=(−1,342; −0,447; 0,447; 1,342)\hat x=(-1{,}342;\ -0{,}447;\ 0{,}447;\ 1{,}342). Con γ=2\gamma=2, β=1\beta=1: y=(−1,683; 0,106; 1,894; 3,683)y=(-1{,}683;\ 0{,}106;\ 1{,}894;\ 3{,}683). Al momento dell'inferenza media e varianza del batch non esistono: si usano medie mobili calcolate durante l'addestramento (Keras lo fa da solo).

Regolarizzazione delle reti neurali

Formula (regolarizzazione ℓ2\ell_2 e ℓ1\ell_1). Con λ≥0\lambda\ge0 forza della penalità: Jℓ2(W)=J(W)+λ∑kwk2,Jℓ1(W)=J(W)+λ∑k∣wk∣.J_{\ell_2}(W)=J(W)+\lambda\sum_k w_k^2,\qquad J_{\ell_1}(W)=J(W)+\lambda\sum_k|w_k|.

Esempio. w=2w=2, ∇J=0\nabla J=0 (solo penalità), η=0,1\eta=0{,}1, λ=0,01\lambda=0{,}01. Con ℓ2\ell_2: w←(1−0,002)⋅2=1,996w\leftarrow(1-0{,}002)\cdot2=1{,}996 per passo. Con ℓ1\ell_1: w←2−0,1⋅0,01=1,999w\leftarrow2-0{,}1\cdot0{,}01=1{,}999 per passo, ma lo stesso passo vale per w=0,001w=0{,}001, che quindi in pochi passi arriva a 00.

Grafico interattivo: Le due penalità su un singolo peso: w² (ℓ2) è piatta vicino a 0 e ripida lontano, |w| (ℓ1) ha pendenza costante e un angolo in 0

Definizione (early stopping). Si monitora una metrica di validazione (monitor, tipicamente val_loss). Se non migliora per patience epoche consecutive l'addestramento si interrompe; con restore_best_weights=True si ripristinano i pesi dell'epoca migliore.

Definizione (dropout). Durante l'addestramento, a ogni passo e per ogni neurone di uno strato, con probabilità pp (la rate) l'uscita viene posta a 00. Gli altri neuroni sono riscalati per 1/(1−p)1/(1-p). In inferenza il dropout è spento e si usano tutti i neuroni.

Esempio. Attivazioni a=(0,8; 1,2; 0,5; 2,0)a=(0{,}8;\ 1{,}2;\ 0{,}5;\ 2{,}0), p=0,5p=0{,}5, maschera estratta (1,0,1,0)(1,0,1,0): l'uscita in training è (0,8; 0; 0,5; 0)/0,5=(1,6; 0; 1,0; 0)(0{,}8;\ 0;\ 0{,}5;\ 0)/0{,}5=(1{,}6;\ 0;\ 1{,}0;\ 0). La riscalatura fa sì che il valore atteso (Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →) di ogni attivazione sia lo stesso con e senza dropout (la maschera vale 11 con probabilità 1−p1-p e 00 con probabilità pp): E=(1−p)⋅a1−p+p⋅0=aE=(1-p)\cdot\frac{a}{1-p}+p\cdot0=a. Per questo in inferenza non serve correggere nulla (versione «inverted dropout» usata da Keras e PyTorch).

Reti neurali convolutive (CNN)

Definizione (convoluzione 2D discreta). Dati un'immagine xx e un filtro hh, y[n,m]=∑j∑ix[i,j]  h[n−i, m−j].y[n,m]=\sum_j\sum_ix[i,j]\;h[n-i,\,m-j]. Si moltiplicano elemento per elemento l'immagine e il filtro posizionato in (n,m)(n,m) e si sommano i risultati (una combinazione lineare locale).

Formula (dimensione dell'uscita). Con ingresso di lato WW, filtro di lato KK, padding PP, stride SS: O=⌊W−K+2PS⌋+1.O=\Big\lfloor\frac{W-K+2P}{S}\Big\rfloor+1.

Esempio. W=28W=28, K=3K=3, P=0P=0, S=1S=1: O=25+1=26O=25+1=26. Con P=1P=1: O=(28−3+2)/1+1=28O=(28-3+2)/1+1=28 (padding «same»: la dimensione si conserva). AlexNet: ingresso 227227, filtro 1111, stride 44: O=(227−11)/4+1=55O=(227-11)/4+1=55.

Formula (parametri di uno strato convolutivo). Con CinC_{in} canali in ingresso e CoutC_{out} filtri K×KK\times K: K2 Cin Cout+Cout.K^2\,C_{in}\,C_{out}+C_{out}. Ogni filtro ha K⋅K⋅CinK\cdot K\cdot C_{in} pesi (si estende in profondità a tutti i canali) più un bias.

Autoencoder

Definizione (autoencoder). Un autoencoder è una rete deterministica addestrata con la backpropagation (Addestramento delle reti neurali - backpropagation e ottimizzatoriAddestrare una rete significa minimizzare la loss empirica $J(W)=\frac1n\sum_i\mathcal L(f(x^{(i)};W),y^{(i)})$ con la discesa del gradiente $W\leftarrow W-\eta,\partial J/\partial W$; in pratica a mini-batch (SGD). Il gradiente di tutti i pesi si ottiene con la backpropagation, cioè la regola della catena applicata all'indietro: $\delta^{(L)}=\partial J/\partial a^{(L)}\odot g'(z^{(L)})$, $\delta^{(l)}=(W^{(l+1)\top}\delta^{(l+1)})\odot g'(z^{(l)})$, $\partial J/\partial W^{(l)}=\delta^{(l)}a^{(l-1)\top}$ (con sigmoide e cross-entropy $\delta=\hat y-y$). Per far funzionare reti profonde: attivazioni ReLU, inizializzazione di Xavier o He (varianza $2/(n_{in}+n_{out})$ e $2/n_{in}$), batch normalization, ottimizzatori con momento o adattivi (Momentum, AdaGrad, RMSProp, Adam con $\beta_1=0{,}9$, $\beta_2=0{,}999$, lr $10^{-3}$) e un learning rate che varia nel tempo (a gradini, coseno). Si addestra tenendo d'occhio la loss di training e di validazione.Addestramento delle reti neurali - backpropagation e ottimizzatori →) in cui l'uscita deve coincidere con l'ingresso. Per non imparare l'identità, il segnale passa per un collo di bottiglia (bottleneck, codice) di dimensione limitata.

  • L'encoder ee mappa xx in una rappresentazione a bassa dimensione z=e(x)z=e(x) (il vettore latente);
  • il decoder dd ricostruisce x^=d(z)\hat x=d(z) a partire da zz.

Formula (loss di ricostruzione). loss=∥x−x^∥2=∥x−d(z)∥2=∥x−d(e(x))∥2,\text{loss}=\|x-\hat x\|^2=\|x-d(z)\|^2=\|x-d(e(x))\|^2, mediata sul training set; ∥v∥2=∑kvk2\|v\|^2=\sum_kv_k^2 è l'errore quadratico (Prodotto scalare, norma e angoliIl prodotto scalare aggiunge a uno spazio vettoriale lunghezze e angoli: norma, disuguaglianza di Cauchy-Schwarz, angolo tra vettori in R^n, ortogonalità, proiezione su una retta, aree e volumi con il determinante della matrice dei prodotti scalari.Prodotto scalare, norma e angoli →). Se l'ingresso è binario o in [0,1][0,1] si usa spesso la cross-entropy binaria per pixel.

Esempio (conteggio dei parametri). Autoencoder denso 784→128→32→128→784784\to128\to32\to128\to784 con ReLU (e sigmoide in uscita): 784⋅128+128=100 480784\cdot128+128=100\,480; 128⋅32+32=4 128128\cdot32+32=4\,128; 32⋅128+128=4 22432\cdot128+128=4\,224; 128⋅784+784=101 136128\cdot784+784=101\,136; in tutto 209 968209\,968 parametri. Il codice ha 3232 numeri per rappresentare 784784 pixel: compressione di 784/32=24,5784/32=24{,}5 volte.

Formula (regola di decisione). Con MSE(x,x′)=1p∑k(xk−xk′)2\text{MSE}(x,x')=\frac1p\sum_k(x_k-x'_k)^2 e una soglia θ\theta: normale se MSE≤θ\text{MSE}\le\theta, anomalo se MSE>θ\text{MSE}>\theta.

Esempio. Errori di ricostruzione sul training: media 0,0150{,}015, deviazione standard 0,0040{,}004, quindi θ=0,015+3⋅0,004=0,027\theta=0{,}015+3\cdot0{,}004=0{,}027. Cinque nuovi campioni hanno errori 0,010; 0,022; 0,015; 0,200; 0,0310{,}010;\ 0{,}022;\ 0{,}015;\ 0{,}200;\ 0{,}031: sono anomali il quarto (0,200>0,0270{,}200>0{,}027) e il quinto (0,031>0,0270{,}031>0{,}027).

Grafico interattivo: Densità schematiche dell'errore di ricostruzione: i dati normali stanno sotto la soglia θ = 0,027, le anomalie sopra

Formula (loss del VAE). loss=∥x−d(z)∥2+KL[N(μx,σx) ∥ N(0,I)],z∼N(μx,σx).\text{loss}=\|x-d(z)\|^2+KL\big[\mathcal N(\mu_x,\sigma_x)\,\big\|\,\mathcal N(0,I)\big],\qquad z\sim\mathcal N(\mu_x,\sigma_x). Il primo termine è l'errore di ricostruzione; il secondo è la divergenza di Kullback-Leibler tra la distribuzione stimata e quella standard. Spesso il primo termine è moltiplicato per una costante CC che ne regola il peso.

Definizione (divergenza KL). Per due densità PP e QQ, DKL(P ∥ Q)=∫P(x)log⁡P(x)Q(x) dx=EP[log⁡PQ] ≥0,D_{KL}(P\,\|\,Q)=\int P(x)\log\frac{P(x)}{Q(x)}\,dx=E_P\Big[\log\frac P Q\Big]\ \ge0, e vale 00 se e solo se P=QP=Q (disuguaglianza di Jensen, Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →). Misura quanto PP è diversa da QQ (non è simmetrica).

Esempio. μ=(1,0)\mu=(1,0), σ=(1;0,5)\sigma=(1;0{,}5): componente 11: 12(1+1−1−0)=0,5\frac12(1+1-1-0)=0{,}5; componente 22: 12(0+0,25−1−ln⁡0,25)=12(−0,75+1,386)=0,318\frac12(0+0{,}25-1-\ln0{,}25)=\frac12(-0{,}75+1{,}386)=0{,}318. KL=0,818KL=0{,}818.

Grafico interattivo: KL(N(μ,σ²) ‖ N(0,1)) al variare di σ con μ = 0: minimo 0 in σ = 1; con μ ≠ 0 si aggiunge μ²/2

Formula (reparametrization trick). z=μx+σx⊙ζ,ζ∼N(0,I)z=\mu_x+\sigma_x\odot\zeta,\qquad\zeta\sim\mathcal N(0,I) (nelle slide z=h(x)ζ+g(x)z=h(x)\zeta+g(x) con g(x)=μxg(x)=\mu_x e h(x)=σxh(x)=\sigma_x prodotti dall'encoder).

Esempio. μ=0,5\mu=0{,}5, σ=2\sigma=2, ζ=−0,3\zeta=-0{,}3 estratto: z=0,5+2⋅(−0,3)=−0,1z=0{,}5+2\cdot(-0{,}3)=-0{,}1.

Cenni a reinforcement learning e reti per sequenze

Definizione (reinforcement learning, RL). Area del ML e paradigma di apprendimento che si occupa di imparare a controllare un sistema (con molti elementi sconosciuti) interagendo con esso, per massimizzare una misura numerica di prestazione. I dati si raccolgono durante l'interazione con l'ambiente.

Esempio (dal film «Ricomincio da capo»). Phil, intrappolato in un ciclo temporale, è l'agente; le azioni sono comportarsi in vari modi (gentile, divertente...) a partire da stati diversi (al ristorante, al parco); l'ambiente è la città con i suoi abitanti; iterando raccoglie dati e impara come massimizzare la ricompensa (far innamorare Rita).

Formula (obiettivo del RL). Si cerca la politica ottima π∗=arg⁡max⁡π E[G]\pi^*=\arg\max_\pi\,E[G]. A differenza del ML supervisionato, dove si minimizza una loss, qui si massimizza il ritorno.

8. Fairness ed explainability

Fairness nel machine learning

Definizione (fairness). Nell'AI/ML, assenza di bias, discriminazione o favoritismo nei confronti di individui o gruppi nei risultati, nelle decisioni e nei processi del sistema. Le decisioni non devono produrre esiti ingiusti o pregiudizievoli in base ad attributi sensibili come razza, genere, età, religione, stato socioeconomico.

Definizione (attributi sensibili o protetti). Caratteristiche degli individui sulle quali, per legge o per etica, il trattamento ingiusto va evitato (razza, etnia, genere, età, disabilità, religione, orientamento sessuale, nazionalità, stato civile, background socioeconomico). Sono «sensibili» perché storicamente alla base di disuguaglianze.

Definizione (fairness through unawareness). Un algoritmo è giusto se gli attributi protetti non sono usati esplicitamente nel processo decisionale: Y^=f(X)\hat Y=f(X) con A∉XA\notin X. È apprezzata dai giuristi (il GDPR vieta di trattare categorie particolari di dati, salvo eccezioni): un sistema non può discriminare in base a un attributo che non vede.

Definizione (variabile proxy). Una variabile che non è sensibile ma è fortemente correlata a un attributo sensibile. Anche senza race, il modello può ricostruirla dal proxy e discriminare lo stesso.

Formula (Demographic Parity, parità demografica). Usata dove un esito positivo è desiderabile per tutti (selezione del personale, prestiti): la previsione dovrebbe essere indipendente dall'attributo sensibile, cioè la probabilità di un esito positivo uguale nei gruppi. DP=P(Y^=1∣A=a)−P(Y^=1∣A=d),ideale DP=0.DP=P(\hat Y=1\mid A=a)-P(\hat Y=1\mid A=d),\qquad\text{ideale }DP=0.

Formula (Equality of Opportunity, pari opportunità). Usata quando l'esito deve poter dipendere dal gruppo (in medicina la frequenza di certe patologie dipende da sesso o etnia): non si chiede lo stesso tasso di esiti positivi ma lo stesso tasso di veri positivi (TPR, Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →), cioè la stessa probabilità di essere riconosciuto positivo tra chi lo è davvero. EO=P(Y^=1∣A=a,Y=1)−P(Y^=1∣A=d,Y=1),ideale EO=0.EO=P(\hat Y=1\mid A=a,Y=1)-P(\hat Y=1\mid A=d,Y=1),\qquad\text{ideale }EO=0.

Esempio. Gruppo aa: 100100 persone, 5050 con Y=1Y=1, previsione positiva per 6060 (di cui 4545 con Y=1Y=1). Gruppo dd: 100100 persone, 4040 con Y=1Y=1, previsione positiva per 3030 (di cui 2424 con Y=1Y=1). Allora P(Y^=1∣a)=60/100=0,60P(\hat Y=1|a)=60/100=0{,}60 e P(Y^=1∣d)=30/100=0,30P(\hat Y=1|d)=30/100=0{,}30: DP=0,30DP=0{,}30. I TPR sono 45/50=0,9045/50=0{,}90 e 24/40=0,6024/40=0{,}60: EO=0,30EO=0{,}30. Il gruppo dd è penalizzato sia nella quota di accettati sia nella probabilità di essere riconosciuto quando merita.

Explainable AI (XAI)

Definizione (interpretabilità). La scienza (o arte) di produrre descrizioni di un modello abbastanza semplici da essere comprese da un essere umano.

Definizione (spiegabilità). Interpretabilità più completezza: una spiegazione è completa quando permette di anticipare la previsione del modello.

Formula (Gini e Information Gain). Per un nodo con classi di probabilità p1,…,pcp_1,\dots,p_c: Gini=1−∑ipi2Gini=1-\sum_ip_i^2; entropia −∑ipilog⁡2pi-\sum_ip_i\log_2p_i. Lo split in due figli ha Ginisplit=nleftnGini(left)+nrightnGini(right)Gini_{split}=\frac{n_{left}}{n}Gini(left)+\frac{n_{right}}{n}Gini(right). La riduzione di impurità (Mean Decrease in Impurity, MDI) di uno split è ΔGini=Gini(parent)−(nleftnpGini(left)+nrightnpGini(right)).\Delta Gini=Gini(parent)-\Big(\frac{n_{left}}{n_p}Gini(left)+\frac{n_{right}}{n_p}Gini(right)\Big).

Esempio. Nodo con 1010 campioni, 66 di classe A e 44 di B: Gini=1−0,62−0,42=0,48Gini=1-0{,}6^2-0{,}4^2=0{,}48. Uno split manda 55 campioni (tutti A) a sinistra, impurità 00, e 55 (1 A e 4 B) a destra, Gini=1−0,22−0,82=0,32Gini=1-0{,}2^2-0{,}8^2=0{,}32. Pesata: 510⋅0+510⋅0,32=0,16\frac5{10}\cdot0+\frac5{10}\cdot0{,}32=0{,}16 e ΔGini=0,48−0,16=0,32\Delta Gini=0{,}48-0{,}16=0{,}32.

Grafico interattivo: Impurità di un nodo a due classi in funzione della frazione p di una classe: massima in p = 1/2 (nodo più misto), zero per nodi puri

Formula (importanza MDI, Gini importance). L'importanza di una feature è la somma delle riduzioni di impurità di tutti i nodi in cui essa è usata per lo split, pesate per la quota di campioni del nodo: Imp(f)=∑nodi che usano fnpnTOT ΔGini,normalizzata: Imp(f)∑gImp(g).\text{Imp}(f)=\sum_{\text{nodi che usano }f}\frac{n_p}{n_{TOT}}\,\Delta Gini,\qquad\text{normalizzata: }\frac{\text{Imp}(f)}{\sum_g\text{Imp}(g)}.

Definizione (permutation importance). Metodo post-hoc, agnostico, globale. Si valuta il modello (errore su un insieme di dati); poi si mescola a caso una feature su tutti i punti, rompendo il suo legame con il target, e si rivaluta. L'importanza è l'aumento dell'errore.

Esempio (slide). Cinque dati con x1=(3,4; 2,7; 3,5; 1,5; 1,8)x_1=(3{,}4;\ 2{,}7;\ 3{,}5;\ 1{,}5;\ 1{,}8), x2=(7,5; 7,7; 6,9; 6,3; 6,4)x_2=(7{,}5;\ 7{,}7;\ 6{,}9;\ 6{,}3;\ 6{,}4), etichette vere (0,1,1,0,1)(0,1,1,0,1), predizioni originali (1,1,1,0,1)(1,1,1,0,1): un errore su cinque, errore 20%20\%. Dopo aver mescolato x1x_1 le predizioni sono (1,1,0,0,1)(1,1,0,0,1): differiscono dalle etichette in posizione 11 e 33, errore 40%40\%. Dopo aver mescolato x2x_2 sono (1,0,1,1,0)(1,0,1,1,0): sbagliate in posizione 1,2,4,51,2,4,5, errore 80%80\%. Importanza x1=40%−20%=20x_1=40\%-20\%=20 punti, x2=80%−20%=60x_2=80\%-20\%=60 punti: x2x_2 conta molto di più.

Definizione (PDP, grafico di dipendenza parziale). Effetto marginale medio di un sottoinsieme SS di feature (di solito una o due) sulla previsione, ottenuto marginalizzando le altre feature CC: f^S(xS)=ExC[f^(xS,xC)]≈1n∑i=1nf^(xS, xC(i)).\hat f_S(x_S)=E_{x_C}\big[\hat f(x_S,x_C)\big]\approx\frac1n\sum_{i=1}^n\hat f\big(x_S,\,x_C^{(i)}\big). Il PDP è la media delle curve ICE (valore atteso come media sui dati, Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →).

Esempio. f(x1,x2)=x1+x1x2=x1(1+x2)f(x_1,x_2)=x_1+x_1x_2=x_1(1+x_2) e tre dati con x2=0,1,2x_2=0,1,2. Per un valore x1x_1 fissato le tre ICE valgono x1, 2x1, 3x1x_1,\ 2x_1,\ 3x_1 e il PDP =13(x1+2x1+3x1)=2x1=\frac13(x_1+2x_1+3x_1)=2x_1: la media nasconde che per un campione la pendenza è 11 e per un altro 33. Il PDP si legge per capire se il legame è lineare, monotono o più complesso; con due feature si disegna una mappa di contorno (laboratorio: età e frequenza cardiaca massima).

Grafico interattivo: ICE e PDP per il modello f = x1 + x1·x2 con x2 ∈ {0,1,2}: le tre curve ICE (pendenze 1, 2, 3) hanno medie diverse, il PDP (pendenza 2) le riassume e nasconde l'eterogeneità

Definizione (LIME, Local Interpretable Model-agnostic Explanations). Spiega una singola previsione con un modello semplice che approssima il black-box vicino a quel punto.

Definizione (valore di Shapley, SHAP). Dalla teoria dei giochi cooperativi: la previsione è un «pagamento» da distribuire tra le feature («giocatrici»). Il valore di Shapley φi\varphi_i della feature ii è la media del suo contributo marginale su tutti gli ordini in cui le feature possono essere aggiunte: φi=∑S⊆F∖{i}∣S∣! (∣F∣−∣S∣−1)!∣F∣![v(S∪{i})−v(S)],\varphi_i=\sum_{S\subseteq F\setminus\{i\}}\frac{|S|!\,(|F|-|S|-1)!}{|F|!}\Big[v(S\cup\{i\})-v(S)\Big], con v(S)v(S) la previsione quando solo le feature in SS hanno il valore osservato e le altre un valore di riferimento (la media sul dataset di sfondo).

Esempio. f(x)=2x1+x1x2+x3f(x)=2x_1+x_1x_2+x_3, riferimento (0,0,0)(0,0,0), istanza x=(1,2,3)x=(1,2,3), f(x)=2+2+3=7f(x)=2+2+3=7. Valori di vv: v(∅)=0v(\emptyset)=0, v(1)=2v(1)=2, v(2)=0v(2)=0, v(3)=3v(3)=3, v(12)=2+2=4v(12)=2+2=4, v(13)=5v(13)=5, v(23)=3v(23)=3, v(123)=7v(123)=7. Per x1x_1: 13(2−0)+16(4−0)+16(5−3)+13(7−3)=23+23+13+43=3\frac13(2-0)+\frac16(4-0)+\frac16(5-3)+\frac13(7-3)=\frac23+\frac23+\frac13+\frac43=3. Per x2x_2: 13(0)+16(4−2)+16(3−3)+13(7−5)=13+23=1\frac13(0)+\frac16(4-2)+\frac16(3-3)+\frac13(7-5)=\frac13+\frac23=1. Per x3x_3: 33. Somma 3+1+3=7=f(x)−f(0)3+1+3=7=f(x)-f(0). Si noti che il prodotto x1x2=2x_1x_2=2 è diviso a metà tra x1x_1 e x2x_2 (ma x2x_2 ottiene solo 11 perché da solo non vale nulla, v(2)=0v(2)=0).