Gradient Descent

Einführung in Deep Learning mit Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Gradient Descent

ch2_2.003.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.004.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.005.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.006.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.008.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.009.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.010.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.011.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.012.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.013.png

Einführung in Deep Learning mit Python

Gradient Descent

ch2_2.014.png

Einführung in Deep Learning mit Python

Gradient Descent

  • Wenn die Steigung positiv ist:
    • Gegen die Steigung heißt: zu kleineren Werten gehen
    • Subtrahiere die Steigung vom aktuellen Wert
    • Zu großer Schritt kann fehlleiten
  • Lösung: Lernrate
    • Aktualisiere jedes Gewicht: aktuelles Gewicht − Lernrate * Steigung
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.022.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.028.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.029.png

  • Steigung der mittleren quadratischen Verlustfunktion bzgl. Vorhersage:
    • 2 (Vorhersage − Istwert) = 2 Fehler
    • 2 * -4
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.033.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.035.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.037.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.038.png

  • Für die Steigung eines Gewichts multiplizierst du:
    • Steigung der Verlustfunktion bzgl. des Werts am eingespeisten Knoten
    • Den Wert des Knotens, der in unser Gewicht einspeist
    • Steigung der Aktivierungsfunktion bzgl. des eingespeisten Werts
Einführung in Deep Learning mit Python

Beispiel: Steigung berechnen

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Bei Lernrate 0.01 wäre das neue Gewicht
  • 2 - 0.01(-24) = 2.24
Einführung in Deep Learning mit Python

Netz mit zwei Eingaben, die die Vorhersage beeinflussen

ch2_2.045.png

Einführung in Deep Learning mit Python

Code: Steigungen berechnen und Gewichte 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
Einführung in Deep Learning mit Python

Code: Steigungen berechnen und Gewichte 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
Einführung in Deep Learning mit Python

Lass uns üben!

Einführung in Deep Learning mit Python

Preparing Video For Download...