La discesa del gradiente stocastico (SGD) è un algoritmo di ottimizzazione comunemente utilizzato nell'apprendimento automatico e nella scienza dei dati. Si tratta di un approccio iterativo utilizzato per minimizzare una funzione, tipicamente una funzione di costo, attraverso passaggi specifici. La funzione di costo viene utilizzata per misurare quanto le previsioni del modello corrispondono ai valori effettivi. A differenza di altre tecniche di ottimizzazione, SGD utilizza solo un esempio di training (o un batch di dati) in ogni passaggio. Con SGD, vengono apportati miglioramenti al modello a ogni iterazione, avvicinando gradualmente la perdita del modello al valore desiderato.
L'algoritmo funziona compiendo piccoli passi verso la ricerca del minimo di una funzione. Ciò avviene in due fasi: in primo luogo, viene effettuata una stima del gradiente locale della funzione di costo ai valori correnti dei parametri. Questo viene poi utilizzato per aggiornare opportunamente i parametri del modello. L'idea alla base dell'SGD è quella di ripetere questi due passaggi finché i parametri non convergono (cioè raggiungono un punto in cui effettuare un ulteriore aggiornamento non comporterebbe alcun miglioramento nella perdita del modello).
Tuttavia, va notato che l'SGD è sensibile alla scelta del parametro del tasso di apprendimento. Il tasso di apprendimento determina la dimensione dei passi compiuti in ogni iterazione: se è troppo piccolo, l'ottimizzazione richiederà troppo tempo, mentre se è troppo grande, l'algoritmo potrebbe mancare il minimo. Pertanto, gli utenti devono prestare attenzione quando impostano il tasso di apprendimento, poiché un'impostazione errata potrebbe portare a risultati peggiori.
SGD è ampiamente utilizzato per l'addestramento di modelli come reti neurali e macchine a vettori di supporto. Poiché può essere facilmente adattato per essere eseguito su un computer o un cluster, è una scelta popolare per l'addestramento dei dati distribuiti. Inoltre, SGD è un modo efficiente per addestrare una varietà di modelli senza richiedere troppa memoria.
Nel complesso, la discesa del gradiente stocastico è un metodo di ottimizzazione potente ed efficiente utilizzato nella scienza dei dati e nell'apprendimento automatico. Sebbene possa essere difficile mettere a punto i parametri, le prestazioni migliorate dei modelli ottenute tramite SGD spesso ne valgono la pena.