Calcolatore di Discesa del Gradiente

Indice dei Contenuti

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. Modello Lineare 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.

Metodo di Discesa del Gradiente

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))) \] Dove

Adattamento dei Minimi Quadrati Lineari

Il 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 } \]

Uso del Calcolatore

L'obiettivo di questo calcolatore è indagare gli effetti del tasso di apprendimento \( r \) e dei valori iniziali dei coefficienti \( a \) e \( b \) sulla convergenza del processo iterativo basato sull'algoritmo (formule di aggiornamento) della discesa del gradiente.
Inserire il numero di punti \( n \) e fare clic su "Genera Punti" che genererà casualmente \( n \) punti, indagare per valori diversi di \( r \), \( a_0 \) e \( b_0 \)
Il processo iterativo converge verso le soluzioni se le derivate parziali \( \dfrac{\partial J}{\partial a} \) e \( \dfrac{\partial J}{\partial b} \) si avvicinano a zero.
Il numero massimo di iterazioni può anche essere aumentato se necessario, ma i calcoli potrebbero richiedere tempo.
Grafico a dispersione (rosso) dei punti dati così come il grafico di \( y = a x + b \) in blu per il metodo della discesa del gradiente e verde per il metodo dei minimi quadrati lineari.

Inserire il numero di punti: \( n = \)

Epoche (numero massimo di iterazioni) :
Tasso di Apprendimento \( r \):
Valore iniziale di \( a \): \(a_0 = \)
Valore iniziale di \( b \): \(b_0 = \)

Risultati

\( \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.