Un calcolatore di discesa del gradiente per il modello di regressione lineare \(y = ax + b\) è presentato. I valori dei coefficienti \(a\) e \(b\) sono confrontati con quelli calcolati utilizzando il metodo analitico basato sull' adattamento dei minimi quadrati lineari . I confronti dei risultati sono presentati anche a scopo didattico.
Supponiamo di avere un set di dati di \( n \) punti \( (x_i , y_i) \) e di dover trovare un modello lineare della forma \(y = ax + b\) minimizzando la somma
\[ \Sigma^{n}_{i=1}(y_i - (a \cdot x_i + b))^2 \]
che è la somma delle distanze tra i punti dati e i punti sul modello lineare come mostrato di seguito.
Nota che la somma dei quadrati è utilizzata invece del valore assoluto per ragioni pratiche durante il calcolo delle derivate parziali e altre operazioni analitiche.
Ora presentiamo due metodi per calcolare i coefficienti \( a \) e \( b \) inclusi nel modello lineare.
La discesa del gradiente è un algoritmo di ottimizzazione iterativo che trova i parametri \(a\) e \(b\) minimizzando la funzione di costo definita da:
\[ J(a, b) = (1/2n) \Sigma^{n}_{i=1}(y_i - (a \cdot x_i + b))^2 \] Le cui derivate parziali sono necessarie nelle regole di aggiornamento e sono date da: \[ \dfrac{\partial J}{\partial a} = (1/n) \Sigma^{n}_{i=1}(- x_i (y_i - (a x_i + b))) \] \[ \dfrac{\partial J}{\partial b} = (1/n) \Sigma^{n}_{i=1}(-(y_i - (a x_i + b ))) \]Le regole di aggiornamento per i parametri \( a \) e \( b \) sono:
\[ a_{k+1} = a_k - r \dfrac{\partial J}{\partial a}|_{a=a_k,b=b_k} = a_k - r (1/n) \Sigma^{n}_{i=1}(-x_i (y_i - (a_k * x_i + b_k))) \] \[ b_{k+1} = b_k - r \dfrac{\partial J}{\partial b}|_{a=a_k,b=b_k} = b_k - r (1/n) \Sigma^{n}_{i=1}(-(y_i - (a_k x_i + b_k))) \] DoveIl metodo analitico basato sull'adattamento dei minimi quadrati lineari utilizza formule in forma chiusa derivate dalla minimizzazione della somma degli errori al quadrato. Le formule per i parametri \(a\) e \(b\) sono:
\[ a = \dfrac{(n \cdot \displaystyle \Sigma^{n}_{i=1} (x_i \cdot y_i) - \Sigma^{n}_{i=1} x_i \cdot \Sigma^{n}_{i=1} y_i)}{ (n \cdot \Sigma^{n}_{i=1} (x_i^2) - (\Sigma^{n}_{i=1}x_i)^2) } \] \[ b = \dfrac{(\Sigma^{n}_{i=1}y_i - a \cdot \Sigma^{n}_{i=1}x_i) }{ n } \]Inserire il numero di punti:
\( n = \)
\( \dfrac{\partial J}{\partial a} \) =
\( \dfrac{\partial J}{\partial b} \) =
Risultati del Metodo di Discesa del Gradiente\(a = \)
\(b = \)
Risultati del Metodo dei Minimi Quadrati Lineari (Utilizzando le formule per \( a \) e \( b \) sopra)\(a = \)
\(b = \)
Valore Minimo della funzione di costo \( J(a, b) \):
Legenda del Grafico: Blu per discesa del gradiente Verde per il metodo dei minimi quadrati lineari.