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

Il Gradient Descent è l'algoritmo fondamentale dietro l'addestramento delle reti neurali, dove viene utilizzato per ottimizzare i pesi e i bias in modo che il modello possa fare previsioni accurate.


Concetto Chiave



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:

  1. 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.

  2. 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.

  3. 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