Optimalizace pomocí gradientů
Máš k dispozici ztrátovou funkci \(y = x^{2}\), kterou chceš minimalizovat. Toho dosáhneš výpočtem směrnice pomocí operace GradientTape() pro různé hodnoty x. Pokud je směrnice kladná, ztrátovou funkci snížíš zmenšením x. Pokud je záporná, snížíš ji zvětšením x. Přesně takto funguje gradientní sestup.

V praxi budeš k automatickému provádění gradientního sestupu používat high-level operace tensorflow. V tomto cvičení si ale sám/sama vypočítáš směrnici pro hodnoty x rovné -1, 1 a 0. Máš k dispozici tyto operace: GradientTape(), multiply() a Variable().
Toto cvičení je součástí kurzu
Úvod do TensorFlow v Pythonu
Pokyny k cvičení
- Definuj
xjako proměnnou s počáteční hodnotoux0. - Nastav ztrátovou funkci
yjako součinxkrátx. Nepoužívej přetěžování operátorů. - Nastav funkci tak, aby vracela gradient
yvzhledem kx.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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))