Vai al contenuto
Calcolo Numerico

Approssimazione ai minimi quadrati e regressione

Il problema dei minimi quadrati, equazioni normali, calibrazione di un sensore, forma matriciale e QR, modelli lineari nei parametri, residui e overfitting.

Le misure reali sono affette da rumore: costringere una curva a passare per ogni punto, come fa l’interpolazione, vuol dire seguire anche gli errori. Il metodo dei minimi quadrati, inventato da Gauss e Legendre all’inizio dell’Ottocento per calcolare le orbite dei pianeti, cerca invece la curva di una forma data che passa più vicino possibile a tutti i punti insieme. È il metodo con cui si calibrano i sensori, si stimano i parametri dei modelli e si costruisce la retta di tendenza di qualsiasi grafico.

Il problema

Dati m punti (x_i, y_i), si cerca una funzione di una famiglia scelta, per esempio una retta y = c_0 + c_1x, che renda minima la somma dei quadrati degli scarti:

    \[ S(c_0, c_1) = \sum_{i=1}^{m}\big(y_i - c_0 - c_1x_i\big)^2 \]

Retta dei minimi quadrati tra punti sperimentali con gli scarti verticali
I punti misurati (neri) non stanno su una retta. La retta dei minimi quadrati (blu) rende minima la somma dei quadrati degli scarti verticali r_i (rossi tratteggiati).

Perché i quadrati e non i valori assoluti? Perché la funzione da minimizzare diventa liscia, il minimo si trova con le derivate e porta a un sistema lineare; e perché, se gli errori di misura sono gaussiani, la soluzione è anche la stima più probabile dei parametri.

Le equazioni normali

Ponendo a zero le derivate parziali (lezione di Analisi 2 sui massimi e minimi):

    \[ \frac{\partial S}{\partial c_0} = -2\sum(y_i - c_0 - c_1x_i) = 0,\qquad \frac{\partial S}{\partial c_1} = -2\sum x_i(y_i - c_0 - c_1x_i) = 0 \]

cioè

    \[ \begin{cases} m\,c_0 + \left(\sum x_i\right)c_1 = \sum y_i\\ \left(\sum x_i\right)c_0 + \left(\sum x_i^2\right)c_1 = \sum x_iy_i \end{cases} \]

con soluzione

    \[ c_1 = \frac{\sum(x_i - \bar x)(y_i - \bar y)}{\sum(x_i - \bar x)^2},\qquad c_0 = \bar y - c_1\bar x \]

dove \bar x e \bar y sono le medie. La retta passa sempre per il baricentro dei punti (\bar x, \bar y).

Esempio: calibrazione di un sensore. Un sensore di temperatura dà le tensioni 0,52; 0,71; 0,88; 1,11; 1,29 V a 0, 20, 40, 60, 80 °C. Le medie sono ar x = 40 °C e ar y = 0{,}902 V. Gli scarti dalle medie sono -40, -20, 0, 20, 40 per le temperature e -0{,}382; -0{,}192; -0{,}022; 0{,}208; 0{,}388 per le tensioni, quindi \sum(x_i - ar x)(y_i - ar y) = 15{,}28 + 3{,}84 + 0 + 4{,}16 + 15{,}52 = 38{,}8 e \sum(x_i - ar x)^2 = 4000. La sensibilità è c_1 = 38{,}8/4000 = 0{,}0097 V/°C, cioè 9,7 mV/°C, e l’offset c_0 = 0{,}902 - 0{,}0097\cdot 40 = 0{,}514 V. Il modello dà 0,514; 0,708; 0,902; 1,096; 1,290 V: gli scarti dalle misure sono di pochi millivolt, il più grande 22 mV a 40 °C.

La forma matriciale

Il problema si scrive A\mathbf c \approx \mathbf y, dove A ha una riga per ogni misura e una colonna per ogni parametro (per la retta, le colonne sono tutti 1 e gli x_i). È un sistema con più equazioni che incognite, in generale senza soluzione esatta. La soluzione ai minimi quadrati soddisfa le equazioni normali

    \[ A^T A\,\mathbf c = A^T\mathbf y \]

e, come visto in Geometria e Algebra, A\mathbf c è la proiezione ortogonale di \mathbf y sullo spazio delle colonne di A: il vettore dei residui è perpendicolare a tutte le colonne.

Attenzione numerica. Formare A^TA eleva al quadrato il numero di condizionamento: se K(A) = 10^6, K(A^TA) = 10^{12}, e si perdono 12 cifre invece di 6. Le librerie usano invece la fattorizzazione QR, A = QR con Q a colonne ortonormali, che porta al sistema triangolare R\mathbf c = Q^T\mathbf y senza peggiorare il condizionamento. Per i problemi più difficili si usa la decomposizione ai valori singolari (SVD).

Non solo rette

Il metodo funziona con qualsiasi modello lineare nei parametri, anche se non lineare in x:

  • polinomi c_0 + c_1x + c_2x^2 + \dots (con grado basso, per non ricadere nelle oscillazioni di Runge);
  • combinazioni di funzioni note, come c_1\sin\omega t + c_2\cos\omega t, per stimare ampiezza e fase di un segnale di frequenza nota;
  • modelli che diventano lineari con una trasformazione: y = ae^{bx} diventa \ln y = \ln a + bx. Così si stima la costante di tempo di una scarica RC da una serie di misure di tensione.

Per i modelli davvero non lineari nei parametri (per esempio la caratteristica di un diodo con la resistenza serie) si usano metodi iterativi come Gauss-Newton e Levenberg-Marquardt, che linearizzano il modello a ogni passo, come Newton per le equazioni.

Quanto è buono il fit

  • I residui r_i non devono mostrare un andamento: se formano una curva, il modello è sbagliato (per esempio una retta su dati quadratici).
  • Il coefficiente di determinazione R^2 = 1 - \frac{\sum r_i^2}{\sum(y_i - \bar y)^2} indica la frazione di variabilità spiegata dal modello: 1 è perfetto, 0 vuol dire che il modello non spiega nulla più della media.
  • Aggiungere parametri riduce sempre i residui, ma oltre un certo punto il modello segue il rumore invece del fenomeno (overfitting): con m punti, un polinomio di grado m - 1 ha residui nulli e non serve a niente.

Lo stesso principio, minimizzare un errore quadratico su molti dati, è alla base dell’addestramento delle reti neurali: i “pesi” sono i parametri, e il gradiente dell’errore guida la loro correzione.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x