Discesa del gradiente

Introduzione al Deep Learning in Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Discesa del gradiente

ch2_2.003.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.004.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.005.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.006.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.008.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.009.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.010.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.011.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.012.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.013.png

Introduzione al Deep Learning in Python

Discesa del gradiente

ch2_2.014.png

Introduzione al Deep Learning in Python

Discesa del gradiente

  • Se la pendenza è positiva:
    • Andare in direzione opposta vuol dire scendere
    • Sottrai la pendenza dal valore attuale
    • Un passo troppo grande può sviare
  • Soluzione: tasso di apprendimento
    • Aggiorna ogni peso sottraendo tasso di apprendimento * pendenza
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.022.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Il valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.028.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Il valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.029.png

  • Pendenza della loss MSE rispetto alla previsione:
    • 2 (Valore previsto - Valore reale) = 2 Errore
    • 2 * -4
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.033.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.035.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Il valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.037.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Il valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.038.png

  • Per calcolare la pendenza di un peso, devi moltiplicare:
    • Pendenza della loss rispetto al valore nel nodo di input
    • Il valore del nodo che entra nel peso
    • Pendenza dell’attivazione rispetto al valore in input
Introduzione al Deep Learning in Python

Esempio di calcolo della pendenza

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Se il tasso di apprendimento è 0.01, il nuovo peso sarà
  • 2 - 0.01(-24) = 2.24
Introduzione al Deep Learning in Python

Rete con due input che influenzano la previsione

ch2_2.045.png

Introduzione al Deep Learning in Python

Codice per calcolare pendenze e aggiornare i pesi

import numpy as np
weights = np.array([1, 2])
input_data = np.array([3, 4])
target = 6
learning_rate = 0.01
preds = (weights * input_data).sum()
error = preds - target

print(error)
5
Introduzione al Deep Learning in Python

Codice per calcolare pendenze e aggiornare i pesi

gradient = 2 * input_data * error

gradient
array([30, 40])
weights_updated = weights - learning_rate * gradient
preds_updated = (weights_updated * input_data).sum()
error_updated = preds_updated - target

print(error_updated)
2.5
Introduzione al Deep Learning in Python

Ayo berlatih!

Introduzione al Deep Learning in Python

Preparing Video For Download...