Optimaliseren met gradiënten
Je krijgt een verliesfunctie, \(y = x^{2}\), die je wilt minimaliseren. Dat kan door de helling te berekenen met de GradientTape()-operatie bij verschillende waarden van x. Is de helling positief, dan verlaag je het verlies door x te verkleinen. Is de helling negatief, dan verlaag je het verlies door x te vergroten. Zo werkt gradient descent.

In de praktijk gebruik je een high-level tensorflow-operatie om gradient descent automatisch uit te voeren. In deze oefening bereken je echter de helling bij x-waarden -1, 1 en 0. De volgende operaties zijn beschikbaar: GradientTape(), multiply(), en Variable().
Deze oefening maakt deel uit van de cursus
Introductie tot TensorFlow in Python
Oefeninstructies
- Definieer
xals een variabele met de beginwaardex0. - Stel de verliesfunctie
ygelijk aanxvermenigvuldigd metx. Maak geen gebruik van operator overloading. - Laat de functie de gradiënt van
yten opzichte vanxretourneren.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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))