• 🏡 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

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

You Might Also Like

bloom-filter-spiegazione-italian

Bloom Filter

Giugno 3, 2021
deep-learning-reinforcement-learning-markov-decision-process-processes-markov-chain-example-markov-process-example-italiano-spiegazione-processo-decisionale-markov

Tutto sul Markov Decision Process (MDP) | Reinforcement Learning

Agosto 9, 2020
private-set-intersection-data-science-machne-learning-deep-learning-homorphic-encryption-italia

Private Set Intersection: cos’è? | Differential Privacy

Maggio 3, 2020

5 Comments

  • Gradient Descent: cos'è? | Deep Learning & Neural Networks - Machine Learning & Data Science Blog Novembre 26, 2019 at 19:51

    […] Risponderemo a questa meravigliosa domanda nel prossimo post! […]

    Reply
  • How to set Learning Rate Deep Learning Neural Networks | Italiano Marzo 5, 2020 at 20:20

    […] e devono invece essere determinati usando una procedura di ottimizzazione empirica chiamata discesa stocastica del gradiente (stochastic gradient […]

    Reply
  • Federated Averaging Optimizer | Federated Learning & Privacy Preserving Giugno 10, 2020 at 07:17

    […] un tipico sistema di machine learning, un algoritmo di ottimizzazione, quale può essere lo Stochastic Gradient Descent (SGD), sovente usato nelle sue varianti, opera su un grande dataset partizionato […]

    Reply
  • Tensorflow MNIST Tutorial: Semplice Tensorflow CNN - Machine Learning Settembre 9, 2020 at 21:13

    […] il momento possiamo iniziare con uno Stochastic Gradinet Descent (SGD) come ottimizzatore applicando un learning rate di […]

    Reply
  • Federated Learning - Machine Learning & Data Science Blog Ottobre 11, 2020 at 09:17

    […] comuni quali l’ausilio di un Stochastic Gradient Descent (SGD) come algoritmo di ottimizzazione non possono essere utilizzati, perché facenti affidamento a […]

    Reply
  • Please Post Your Comments & Reviews
    Annulla risposta

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

    Next Post
    Previous Post

    Una pubblicità che non vedi se usi AdBlock

    EXPAND YOUR KNOWLEDGE

    • Blockchain

      Patricia Merkle Trie

      Maggio 30, 2023
    • Artistic representation of a tree Blockchain

      Tree Data Structure: cos’è un Merkle Tree

      Maggio 26, 2023
    • Cover image for Bitcoin UTXO explanation post Blockchain

      UTXO: come funziona il modello Unspent Transaction Outputs

      Maggio 23, 2023
    • Blockchain

      Cos’è Ethereum

      Maggio 15, 2023
    • Blockchain Developer

      Circuito aritmetico

      Novembre 1, 2022
    • machine-learning

      Un nuovo inizio

      Settembre 4, 2021
    • Zero Knwoledge Proof Article Privacy Preserving

      Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

      Luglio 8, 2021
    • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

      Oblivious Transfer (OT)

      Luglio 6, 2021
    • Aleo Studio Website Preview machine-learning

      Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

      Luglio 1, 2021
    • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

      Perché il Privacy Tech è un vantaggio competitivo micidiale

      Giugno 17, 2021

    Quello che Google pensa ti possa piacere

    Prodotti che i Cookie dicono potresti trovare interessanti

    AI Blog - © 2019-2021 Andrea Provino