Optimiser avec des gradients
On vous donne une fonction de perte, \(y = x^{2}\), que vous souhaitez minimiser. Vous pouvez y arriver en calculant la pente à l'aide de l'opération GradientTape() pour différentes valeurs de x. Si la pente est positive, vous pouvez réduire la perte en diminuant x. Si elle est négative, vous pouvez la réduire en augmentant x. C'est le principe de la descente de gradient.

En pratique, vous utiliserez une opération de haut niveau de tensorflow pour exécuter automatiquement la descente de gradient. Dans cet exercice toutefois, vous allez calculer la pente aux valeurs de x égales à -1, 1 et 0. Les opérations suivantes sont disponibles : GradientTape(), multiply(), et Variable().
Cette activité fait partie du cours
Introduction à TensorFlow en Python
Instructions de l’exercice
- Définissez
xcomme une variable avec la valeur initialex0. - Définissez la fonction de perte
ycommexmultiplié parx. N'utilisez pas la surcharge d'opérateurs. - Configurez la fonction pour retourner le gradient de
ypar rapport àx.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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))