• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
AI, machine-learning

Stochastic Gradient Descent, Batch Gradient Descent Algorithm

Stochastic Gradient Descent, Batch Gradient Descent Algorithm

Lo Stochastic Gradient Descent algorithm, il Batch Gradient Descent algorithm e il Mini-Batch Gradient Descent algorithm sono algoritmi di ottimizzazione.

Abbiamo definito cosa siano e compreso il principio della “discesa del gradiente“ e come si questo si collochi all’interno di una rete neurale.

Ora è giunto il momento di analizzare le differenti varianti del gradient descent!

Le differenze riguardano due aspetti:

  • Numero di dati richiesti per il calcolo del gradiente a ogni iterazione.
  • Accuracy-Time Complexity Trade-Off, ovvero il compromesso tra l’accuratezza del gradiente e il time complexity vale a dire il tempo richiesto dall’algoritmo per l’update dei parametri: è il learning rate.

Batch Gradient Descent

Il Batch Gradient Descent esegue una sommatoria di tutte le osservazioni a ogni iterazione e aggiorna di conseguenza i parametri.

Quando il numero di istanze del dataset aumenta a svariate milioni o miliardi, passare in rassegna l’intero dataset per ogni iterazione diviene un’attività computazionale sconsiderata.

Perché sceglierlo? Per diverse ragioni.

Innanzitutto evita la necessità di cambiare il learning rate, potendo scegliere di mantenerlo fisso. Niente learning rate decay, che approfondiremo nel post dedicato al learning rate.

In più ci assicura convergenza a un minimo globale, qualora la cost function fosse convessa, e a un minimo locale in caso contrario.

Inoltre all’aumentare delle dimensioni del dataset, l’errore standard diminuisce: il gradiente è stimato senza bias.

Non mancano certo gli svantaggi, che si concentrano principalmente sul sistema di funzionamento: l’iterazione sull’intero dataset a ogni epoca. Questo genera problemi di lentezza di convergenza.

Mini-batch gradient Descent

Contrariamente al suo fratello maggiore, questa variante del gradient descent considera un sottoinsieme del dataset per operare il calcolo del gradiente.

La dimensione del sottoinsieme è gestita dal batch size.

È fondamentale rimescolare (shuffle) il dataset, per massimizzare le prestazioni dell’algoritmo.

A livello di funzionamento, per completezza, è interessante sapere che qualora il batch size scelto non fosse un divisore della dimensione del dataset, la porzione rimanente costituirebbe un batch a sé stante.

Generalmente i valori scelti per il batch size sono potenze di 2: 32, 64, 128, 256, 512, etc. Questo perché le operazioni di calcolo sono quasi sempre svolte dalle GPU, che raggiungono risultati migliori proprio con potenze di 2.

I vantaggi più degni di nota sono:

  • velocità di esecuzione maggiore del batch version
  • selezione randomica dei samples

Gli svantaggi da considerare invece:

  • Nessuna convergenza. A ogni epoca il learning step aumenterà o diminuirà a causa del rumore: saremo vicini al minimo ma non lo raggiungeremo mai.
  • La presenza di rumore genera oscillazioni e richiede l’impostazione di un learning-decay in modo che il learning rate diminuisca all’avvicinamento del punto di minimo
fonte

È interessante notare come a settaggio di un batch size pari alla dimensione del dataset (b = m) il Mini-batch gradient descent diventa un batch gradient descent algorithm.

Stochastic Gradient Descent

Noto anche come SGD, lo Stochastic Gradient Descent calcola il gradiente aggiornandolo dopo ogni osservazione, a differenza delle varianti precedenti che calcolavano la sommatoria.

Anche lo Stochastic Gradient Descent necessita del rimescolamento del dataset affinché possa funzionare al meglio.

Inoltre, poiché viene considerata una sola osservazione alla volta, il rumore del percorso è superiore a quello del Batch Gradient Descent, quindi più randomico. Si tratta di un’informazione utile al solo scopo conoscitivo, tenuto presente il nostro unico interesse sia il raggiungimento del punto di minimo nel minor tempo possibile.

Un caldo abbraccio, Andrea

No, questo contenuto è riservato.
Non ci puoi accedere

E’ destinato a una ristretta lista di persone motivate e intraprendenti.

E’ diritto esclusivo di sognatori e curiosi.

Come? Pensi di essere una di loro?

Dimostramelo…

accetto i noiosi termini e le condizioni

Written by Andrea Provino - Ottobre 29, 2019
Tags | deep learning, neural network, teoria

You Might Also Like

No Big Data? Handling small data | Consigli

Giugno 28, 2019
come-funziona-deep-learning-machine-learning-data-science-blog-italia-spiegazione-in-italiano

Come funziona Deep Learning

Settembre 22, 2020
pate-framework-private-aggregation-of-teacher-ensambles-italia

PATE framework: Private Aggregation of Teacher Ensembles

Maggio 17, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • fully-homomorphic-encryption-crittografia-completamente-omomorfica Privacy Preserving

    Cos’è la Crittografia Omomorfica | Homomorphic Encryption (HE)

    Marzo 4, 2021
  • data-science-for-finance-machine-learning-deep-learning-data-science-use-cases-use-cases Business, Data Science, machine-learning

    Data Science for Finance | Use Cases per il Data Scientist

    Febbraio 13, 2021
  • differential-privacy-example-privacy-differenziale-esempio-italiano-applicazioni-reali Business, Data Science, Privacy Preserving

    Differential Privacy Example | Esempi di privacy differenziale

    Febbraio 10, 2021
  • privacy-enhancing-technologies-techniques-machine-learning-data-science-pets-guida-italiano-spiegazione-semplice Business, Data Science, machine-learning, Privacy Preserving

    Cosa sono le Privacy-enhancing technologies o techniques (PETs)

    Febbraio 7, 2021
  • condivisione-dati-finance-fintech-problems-machine-learning-for-finance-data-science-deep-learning-case-study Business

    Problemi della condivisione dati in finanza | Finance data sharing problems

    Febbraio 4, 2021
  • finance-privacy-settore-finanziario-dati-privacy-enhancing-technologies-ai Business

    Il legame tra Privacy Dati AI nel settore finanziario

    Febbraio 1, 2021
  • rust-react-webassembly-privacy-preserving-machine-learning Logs

    Rust, WebAssembly, React e un MVP

    Dicembre 21, 2020
  • diffie-hellman-key-exchange-protocol-scambio-di-chiavi-diffie-hellman Data Science, Privacy Preserving

    Cos’è lo scambio di chiavi Diffie-Hellman (DH)? | Privacy Preserving

    Dicembre 15, 2020
  • principio-di-esattezza-data-science-machine-learning-gdpr-data-accuracy Data Science, GDPR Compliant

    GDPR: Principio di esattezza dei dati (Data Accuracy)

    Dicembre 12, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TFX: come funziona Tensorflow Extended?

    Dicembre 9, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino