Optymalizacja za pomocą gradientów
Dana jest funkcja straty \(y = x^{2}\), którą chcesz zminimalizować. Możesz to zrobić, obliczając nachylenie za pomocą operacji GradientTape() dla różnych wartości x. Jeśli nachylenie jest dodatnie, możesz zmniejszyć stratę, obniżając wartość x. Jeśli jest ujemne, możesz ją zmniejszyć, zwiększając x. Na tej zasadzie działa metoda gradientu prostego.

W praktyce do automatycznego wykonywania metody gradientu prostego będziesz używać wysokopoziomowych operacji tensorflow. W tym ćwiczeniu jednak samodzielnie obliczysz nachylenie dla wartości x równych -1, 1 i 0. Dostępne są następujące operacje: GradientTape(), multiply() oraz Variable().
To ćwiczenie jest częścią kursu
Wprowadzenie do TensorFlow w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj
xjako zmienną z wartością początkowąx0. - Ustaw funkcję straty
yjako iloczynxprzezx. Nie używaj przeciążania operatorów. - Ustaw funkcję tak, aby zwracała gradient
ywzględemx.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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))