Gradient descent

Introductie tot Deep Learning in Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Gradient descent

ch2_2.003.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.004.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.005.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.006.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.008.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.009.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.010.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.011.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.012.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.013.png

Introductie tot Deep Learning in Python

Gradient descent

ch2_2.014.png

Introductie tot Deep Learning in Python

Gradient descent

  • Als de helling positief is:
    • Tegen de helling ingaan verlaagt de waarde
    • Trek de helling af van de huidige waarde
    • Een te grote stap kan ons doen verdwalen
  • Oplossing: learning rate
    • Update elk gewicht door learning rate * helling af te trekken
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.022.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.028.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.029.png

  • Helling van de mean-squared loss t.o.v. de voorspelling:
    • 2 (Voorspelling - Werkelijke waarde) = 2 Fout
    • 2 * -4
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.033.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.035.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.037.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.038.png

  • Voor de helling van een gewicht vermenigvuldig je:
    • Helling van de verliesfunctie t.o.v. de waarde bij de invoerknoop
    • De waarde van de knoop die ons gewicht invoert
    • Helling van de activatiefunctie t.o.v. de invoerwaarde
Introductie tot Deep Learning in Python

Voorbeeld hellingsberekening

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Als de learning rate 0.01 is, wordt het nieuwe gewicht
  • 2 - 0.01(-24) = 2.24
Introductie tot Deep Learning in Python

Netwerk met twee inputs die de voorspelling beïnvloeden

ch2_2.045.png

Introductie tot Deep Learning in Python

Code om hellingen te berekenen en gewichten te updaten

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
Introductie tot Deep Learning in Python

Code om hellingen te berekenen en gewichten te updaten

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
Introductie tot Deep Learning in Python

Laten we oefenen!

Introductie tot Deep Learning in Python

Preparing Video For Download...