Otimização com gradientes
Você recebeu uma função de perda, \(y = x^{2}\), que deseja minimizar. Você pode fazer isso calculando a inclinação usando a operação GradientTape() em diferentes valores de x. Se a inclinação for positiva, você pode reduzir a perda diminuindo x. Se for negativa, você pode reduzi-la aumentando x. É assim que o gradient descent funciona.

Na prática, você usará uma operação de alto nível do tensorflow para executar o gradient descent automaticamente. Neste exercício, porém, você vai calcular a inclinação nos valores de x -1, 1 e 0. As seguintes operações estão disponíveis: GradientTape(), multiply(), e Variable().
Este exercício faz parte do curso
Introdução ao TensorFlow em Python
Instruções do exercício
- Defina
xcomo uma variável com o valor inicialx0. - Defina a função de perda,
y, comoxmultiplicado porx. Não use sobrecarga de operadores. - Faça a função retornar o gradiente de
yem relação ax.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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))