Optimiser avec les gradients
On vous donne une fonction de perte, \(y = x^{2}\), que vous souhaitez minimiser. Vous pouvez y parvenir en calculant la pente avec l’opération GradientTape() pour différentes valeurs de x. Si la pente est positive, vous pouvez diminuer la perte en réduisant x. Si elle est négative, vous pouvez la diminuer en augmentant x. C’est ainsi que fonctionne la descente de gradient.

En pratique, vous utiliserez une opération de haut niveau de tensorflow pour effectuer automatiquement la descente de gradient. Dans cet exercice, toutefois, vous calculerez la pente pour des valeurs de x égales à -1, 1 et 0. Les opérations suivantes sont disponibles : GradientTape(), multiply(), et Variable().
Cet exercice fait partie du cours
Introduction à TensorFlow en Python
Instructions
- Définissez
xcomme une variable avec la valeur initialex0. - Définissez la fonction de perte
ycommexmultiplié parx. N’utilisez pas la surcharge d’opérateur. - Configurez la fonction pour renvoyer le gradient de
ypar rapport àx.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def compute_gradient(x0):
# Define x as a variable with an initial value of x0
x = ____(x0)
with GradientTape() as tape:
tape.watch(x)
# Define y using the multiply operation
y = ____
# Return the gradient of y with respect to x
return tape.gradient(____, ____).numpy()
# Compute and print gradients at x = -1, 1, and 0
print(compute_gradient(-1.0))
print(compute_gradient(1.0))
print(compute_gradient(0.0))