Optimización con gradientes
Tienes una función de pérdida, \(y = x^{2}\), que quieres minimizar. Puedes hacerlo calculando la pendiente con la operación GradientTape() en distintos valores de x. Si la pendiente es positiva, puedes reducir la pérdida disminuyendo x. Si es negativa, puedes reducirla aumentando x. Así es como funciona el descenso por gradiente.

En la práctica, usarás una operación de alto nivel de tensorflow para realizar el descenso por gradiente de forma automática. En este ejercicio, sin embargo, calcularás la pendiente en los valores de x -1, 1 y 0. Están disponibles las siguientes operaciones: GradientTape(), multiply(), y Variable().
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones del ejercicio
- Define
xcomo una variable con el valor inicialx0. - Define la función de pérdida,
y, comoxmultiplicado porx. No uses sobrecarga de operadores. - Haz que la función devuelva el gradiente de
ycon respecto ax.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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))