Gradient Descent
Gradient Descent è un algoritmo fondamentale per l'ottimizzazione in machine learning.
Funzione di costo
La funzione di costo misura la differenza tra i valori previsti e quelli reali, ed è rappresentata come una parabola con un minimo globale.
L'obiettivo è trovare il valore di w che minimizza questa funzione di costo, come nel caso in cui z = 2x.
Algoritmo di discesa del gradiente
La discesa del gradiente è un algoritmo iterativo che cerca di trovare il minimo di una funzione, muovendosi nella direzione opposta al gradiente.
Si inizia con un valore iniziale casuale di w e si calcola il gradiente per determinare la direzione e la grandezza del passo da compiere.
Scelta del tasso di apprendimento
Il tasso di apprendimento determina la dimensione dei passi: un tasso troppo alto può far saltare il minimo, mentre uno troppo basso può rendere il processo molto lento.
Attraverso iterazioni successive, il valore di w viene aggiornato fino a raggiungere un valore molto vicino al minimo della funzione di costo.


Gradient descent Algorithm :
Il Gradient Descent (discesa del gradiente) è un algoritmo di ottimizzazione di primo ordine ampiamente utilizzato nell'apprendimento automatico (machine learning) e nell'apprendimento profondo (deep learning). Il suo scopo è trovare i valori dei parametri (o pesi) di una funzione che minimizzano il costo o l'errore (chiamato anche funzione di costo o funzione di perdita).
Applicazione
Concetto Chiave
Immagina di essere su una montagna ⛰️ (la funzione di costo) e di voler raggiungere la valle più bassa 🏞️ (il minimo della funzione). Sei avvolto nella nebbia e non puoi vedere lontano, ma puoi sentire la pendenza sotto i tuoi piedi.
Il Gradient Descent opera con il principio di fare un passo nella direzione della massima pendenza negativa (la discesa più ripida) per ogni punto in cui ti trovi, fino a raggiungere il punto più basso


Ruolo del Tasso di Apprendimento ()
Il tasso di apprendimento è un iperparametro cruciale:
Tasso Troppo Grande: L'algoritmo potrebbe non convergere o potrebbe saltare completamente il minimo, rimbalzando.
Tasso Troppo Piccolo: L'algoritmo impiegherà troppo tempo per convergere, poiché i passi sono molto piccoli.
Variazioni Principali
Esistono diverse varianti del Gradient Descent, che differiscono per la quantità di dati utilizzata per calcolare il gradiente ad ogni passo:
Batch Gradient Descent (BGD):
Calcola il gradiente utilizzando tutti gli esempi di addestramento ad ogni passo.
Garantisce la convergenza (se è scelto correttamente) ma è molto lento per grandi set di dati.
Stochastic Gradient Descent (SGD):
Calcola il gradiente e aggiorna i parametri utilizzando un solo esempio di addestramento scelto casualmente ad ogni passo.
È molto più veloce, ma il percorso verso il minimo è più "rumoroso" (stocastico) a causa delle frequenti variazioni di direzione.
Mini-Batch Gradient Descent (MBGD):
È il metodo più comune. Calcola il gradiente e aggiorna i parametri utilizzando un piccolo sottoinsieme (un mini-batch) di esempi di addestramento (tipicamente 32, 64 o 128).
Offre un buon compromesso tra la stabilità del BGD e la velocità dell'SGD.
Inizio con un peso casuale :

Per capire su quale direzioni muoversi calcolo il gradiente

nel nostro caso di primo era alfa :




Last updated