Descente de gradient

Introduction au Deep Learning en Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Descente de gradient

ch2_2.003.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.004.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.005.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.006.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.008.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.009.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.010.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.011.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.012.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.013.png

Introduction au Deep Learning en Python

Descente de gradient

ch2_2.014.png

Introduction au Deep Learning en Python

Descente de gradient

  • Si la pente est positive :
    • Aller dans le sens opposé à la pente signifie se déplacer vers des chiffres plus bas
    • Soustraire la pente de la valeur actuelle
    • Un pas trop grand pourrait nous induire en erreur
  • Solution : taux d'apprentissage
    • Mettre à jour chaque poids en soustrayant taux d'apprentissage * pente
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.022.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.028.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.029.png

  • Pente de la fonction de perte quadratique moyenne par rapport à la prédiction :
    • 2 (valeur prévue - valeur réelle) = 2 erreur
    • 2 * -4
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.033.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.035.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.037.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.038.png

  • Pour calculer la pente d'un poids, il est nécessaire de multiplier :
    • Pente de la fonction de perte par rapport à la valeur au niveau du nœud que nous alimentons
    • La valeur du nœud qui alimente notre poids
    • Pente de la fonction d'activation par rapport à la valeur que nous introduisons
Introduction au Deep Learning en Python

Exemple de calcul de pente

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Si le taux d'apprentissage est de 0.01, le nouveau poids serait
  • 2 - 0.01(-24) = 2.24
Introduction au Deep Learning en Python

Réseau avec deux entrées influençant la prédiction

ch2_2.045.png

Introduction au Deep Learning en Python

Code permettant de calculer les pentes et de mettre à jour les poids

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
Introduction au Deep Learning en Python

Code permettant de calculer les pentes et de mettre à jour les poids

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
Introduction au Deep Learning en Python

Passons à la pratique !

Introduction au Deep Learning en Python

Preparing Video For Download...