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

Gradient Descent: cos’è? | Deep Learning & Neural Networks

Gradient Descent: cos’è? | Deep Learning & Neural Networks

Cos’è il Gradient Descent (Discesa del gradiente) ? Il Gradient Descent è un optimization algorithm (algoritmo di ottimizzazione) capace d’individuare il valore minimo di una cost function, consentendoti di sviluppare un modello dalle accurate previsioni.

Allineiamoci un attimo.

Oversimplifying… Una rete neurale sviluppa una funzione che mappa gli input agli output e viene generato un modello utile a fare previsioni.

Quella funzione contiene differenti parametri il cui valore deve essere in qualche modo appreso.

Dude, dov’è finito il vostro linguaggio forbito?

Siamo data scientst. Siamo mucche viola. Il nostro codice etico reclama un linguaggio forbito.

Prima di arrivare a una spiegazione tecnica, dobbiamo comprendere il concetto intuitivamente.

Dunque.

Calcolare valori randomici a ogni epoca, o iterazione, con il solo obiettivo di generare quelli perfetti è il modo stupido di procedere. Non ci piace.

In realtà conserviamo il metodo randomico per inizializzare i parametri.

Ora però dobbiamo valutare in che modo la loro variazione cambi la previsione finale.

Ci serve quindi una funzione che determini quanto il nostro modello sia bravo, o meno, a effettuare le previsioni: entra in gioco la cost function.

Piccola nota: loss function e cost function sono concetti differenti. In breve, senza scendere troppo nel tecnico, la loss function è relativa alle singole previsioni, quindi calcolata su ciascuna osservazione del dataset; la cost function è definita globalmente.

Quindi ora abbiamo:

  • Una funzione con il compito di mappare gli input e gli output: il nostro modello, con differenti parametri i weights.
  • Una cost function che calcola quale sia l’errore del modello per i parametri che lo definiscono.

Ecco la strada per arrivare in vetta: dobbiamo minimizzare la cost function, cioè trovare quei valori del modello, quei weights, tali per cui la cost function abbia il valore minimo.

Come facciamo?

Ancora una volta entra in gioco la matematica e come sempre con una soluzione brillante: optimization algorithm, ovvero gli algoritmi di ottimizzazione.

Abbiamo definito cosa siano, e chiuso la nostra introduzione con una carrellata di algoritmi.

“In realtà erano 4”

Abbiamo definito cosa siano, e chiuso la nostra introduzione con un cestino di algoritmi.

Honest

Gradient Descent algorithm

Finalmente iniziamo a parlare di Gradient Descent.

Ripetendoci, ma principalmente per motivi estetici:

Gradient Descent (Discesa del gradiente) è un optimization algorithm (algoritmo di ottimizzazione) generico capace d’individuare il valore minimo di una cost function, consentendoti di sviluppare un modello dalle accurate previsioni.

Gradient descent definition

Il cliché vuole che per descriverne il funzionamento si usi la metafora della montagna con la nebbia.

Ormai mucche viola al pascolo, un po’ di nebbia in montagna può farci solo che bene.

Nel problema della montagna vogliamo raggiungere il punto più basso, la valle. La difficoltà è data dall’impossibilità di vedere il tragitto. Quindi decidiamo di procedere a tentativi testando il terreno e la sua pendenza.

Quando inizieremo a salire, la nostra discesa sarà terminata e avremo raggiunto il punto di minimo.

fonte: medium

Come accennato poco fa, la best practice prevede l’inizializziazione in modo randomico dei weights ad un valore prossimo allo zero, ma non zero. (random initialization)

Ora introduciamo un termine: il gradiente.

Il gradiente indica la direzione di salita, quindi è nostro interesse ottenere un gradiente negativo, perché vogliamo scendere, vogliamo raggiungere il punto di minimo.

Quindi aggiorneremo (update) i weights nella direzione negativa del gradiente (negative gradient direction) per minimizzare la perdita (to minimize the loss).

Di quanto deve essere aggiornato il valore?

Lo stabilisce il learning rate.

In soldoni, Il learning rate è un hyperparameter che influenza il cambiamento dei weights in funzione del gradiente.

Approfondiremo insieme questo concetto in un altro post.

Ti basta sapere che il learning rate gestisce lo step di cambiamento dei parametri a ogni iterazione, e viene generalmente indicato con la lettera greca α :

  • Per α troppo piccolo, il tempo di convergenza (convergence) è grande, quindi la determinazione del punto di minimo impiega parecchie risorse computazionali.
  • Per α grande, potrebbe fallire la convergenza, superando il minimo, o arrivando persino a divergere mancando la determinazione della soluzione.
fonte

Minimo locale o globale?

Non tutte le funzioni di costo sono semplici archi.

Questo rende l’individuazione del minimo piuttosto complessa.

In merito alla metafora della montagna, potresti infatti obiettare affermando che la “valle” identificata, sia un minimo locale, ben lontana dal nostro ideale minimo globale.

fonte: medium

La nostra amata montagna ci tende un trabocchetto e la valle che crediamo di aver raggiunto è in realtà un ampio terreno pianeggiante: siamo ancora in alta quota, la pianura è altrove.

Prendiamo un esempio pratico.

La Mean Squared Error, una cost function spesso impiegata nel modello di Linear Regression, è una funzione convessa (convex function).

Una convex function ci piace per tre motivi:

  • Ha un minimo globale, senza alcun minimo locale
  • La random initialization non compromette la convergenza
  • È una funzione continua, questo implica che la sua derivata sia una funzione Lipshitziana.

Queste qualità, unite a un learning rate non troppo alto, garantiscono la convergenza al minimo globale. (dopo un tempo sufficiente).

In generale però, come può il gradient descent riconosce un minimo locale da uno globale?

Short answer non può.

Long answer lo rendiamo possibile.

Esistono infatti metodi alternativi per ovviare a questa insidiosa problematica.

Vediamoli nel prossimo post!

Un caldo abbraccio, Andrea.

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

You Might Also Like

No Free Lunch theorem (NFL) in Italiano

Settembre 15, 2019
federated-averaging-optimizer-federated-learning-privacy-preserving-deep-learning-machine-learning-data-science-machine-learning

Federated Averaging Optimizer | Federated Learning

Giugno 10, 2020
aws-applied-ai-data-science-enterprise-solution-applied-ai-machine-learning-aws-example-solution-ai-business-case-study-ai-ideas

AWS for Applied AI: 4 usi pratici

Dicembre 1, 2019
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • 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
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TensorFlow Extended (TFX) | Production Machine Learning Pipeline

    Dicembre 6, 2020
  • mean-shift-clustering-guida-italiano-spiegazione-semplice-algoritmo-di-clustering-esempio Data Science

    Mean-Shift Clustering

    Dicembre 3, 2020
  • data-minimization-principle-gdpr-principio-minimizzazione-dati-personali-gdpr-italia-consulenza-spiegazione-semplice Data Science, GDPR Compliant

    GDPR: Principio di minimizzazione dei dati (Data minimization)

    Dicembre 1, 2020
  • machine-learning-for-finance-trading-online-data-science-deep-learning-intelligenza-artificiale AI, machine-learning

    FinTech: Machine Learning for Finance (FinML) | Guide e Risorse di qualità

    Novembre 29, 2020
  • gdpr-principio-di-limitazione-della-finalita-machine-learning-data-science-guida-prupose-limitation-gdpr Data Science, GDPR Compliant

    GDPR: Principio di Limitazione della finalità | Purpose Limitation

    Novembre 26, 2020
  • machine-learning-engineer-lavoro-stipendio-responsabilità-come-diventare AI, Business, machine-learning

    Machine Learning Engineer

    Novembre 23, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino