Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

L’algoritmo di Gradient Descent e le sue variazioni (batch, stochastic, minibatch)

Il gradient descent è una tecnica utilizzata nel Machine Learning per trovare i pesi w{\bf w} di una funzione di loss nel caso in cui si abbia a che fare con un problema multidimensionale.

L’algoritmo consiste sempre nel cercare di minimizzare la funzione di loss finché non si arriva in una situazione in cui i pesi convergono a dei valori stazionari wiw\forall\,w_i\in{\bf w}.

L’algoritmo generale può essere riassunto come

wany point in the parameter spacewhile not converged dofor each wi in w dowiwiαwi[Loss(w)]\begin{aligned}&\textbf{w} \leftarrow \text{any point in the parameter space}\\ &\text{\textbf{while not} converged \textbf{do}}\\ &\qquad\textbf{for each $w_i$ in w do}\\&\qquad\qquad w_i \leftarrow w_i - \alpha\cdot\dfrac{\partial}{\partial w_i}\left[Loss(\textbf{w})\right]\end{aligned}

A parole: per tutti i punti dell’insieme di dati, ogni valore di peso wiw_i viene modificato di peso utilizzando la derivata parziale della funzione di loss nella direzione wiw_i finché non si raggiunge la stabilità, dunque la convergenza.

Nota: il parametro α\alpha viene chiamato learning rate. Maggiore è α\alpha, più velocemente l’algoritmo cerca di convergere verso il minimo. Il problema di avere valori di α\alpha grandi è però quello di avere un algoritmo che non esplora a fondo lo spazio, infatti a causa dei “grandi passi” che vengono fatti a causa di α\alpha ci si potrebbe bloccare in una situazione di minimo locale che non rappresenta effettivamente il nostro obiettivo.

Per evitare una situazione del genere si utilizzano dei valori di α\alpha variabili che in un primo momento sono piuttosto elevati mentre col tempo diminuiscono sempre di più, permettendo una prima esplorazione dello spazio più approssimativa, per poi raffinare la ricerca quando l’algoritmo ha già un’idea della zona in cui è presente il minimo.

Variazioni del Gradient Descent

  • Batch gradient descent: la tecnica del batch GD è molto costosa dal punto di vista computazionale, infatti questo tipo di gradient descent utilizza l’intero dataset per aggiornare i pesi nel corso di ogni iterazione. Viene usato quando non si è particolarmente interessati all’efficienza ma alla qualità della soluzione. Tramite questo algoritmo si è infatti certi di trovare il minimo assoluto
  • Stochastic gradient descent (SGD): il gradient descent stocastico è da preferire nel caso in cui l’efficienza sia importante, infatti tramite questo algoritmo si esplora lo spazio in maniera stocastica, dunque si procede “a tentativi” cercando di avvicinarsi il più possibile al minimo cercato. Non c’è però certezza nel trovarlo effettivamente
  • Minibatch SGD: rappresenta una tecnica intermedia tra le prime due nella quale si divide lo spazio del problema in un numero arbitrario di sottospazi sui quali si può utilizzare SGD per esplorarli in maniera veloce, riuscendo comunque ad assicurarsi che l’intero spazio venga esplorato grazie alla divisione in minibatch

In poche parole

‎‏‏‎ ‎‏‏‎✅ Il gradient descent viene usato per minimizzare una funzione di loss e trovarne i suoi pesi ottimali. L’algoritmo aggiorna iterativamente i pesi muovendosi nella direzione opposta del gradiente della funzione di loss. L’obiettivo è raggiungere un punto di convergenza in cui i pesi stabilizzano.

‎‏‏‎ ‎‏‏‎✅ Si utilizza un parametro chiamato “learning rate” per controllare la dimensione dei “passi” che l’algoritmo cerca di fare nella direzione del minimo. Valori più alti di learning rate possono accelerare il processo ma potrebbero portare a minimi locali indesiderati.

‎‏‏‎ ‎‏‏‎✅ Per evitare minimi locali, si possono utilizzare learning rates variabili che diminuiscono nel tempo, consentendo una fase iniziale di esplorazione più ampia e una fase successiva di raffinamento.

‎‏‏‎ ‎‏‏‎✅ Esistono anche varianti del gradient descent:

  • Batch gradient descent
  • Stochastic gradient descent
  • Minibatch SGD

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Se hai trovato errori o informazioni mancanti scrivi a:
giacomo.dandria@esercizistem.com

Questa pagina è stata utile?
No
Torna in alto