Оптимізація за допомогою градієнтів
У вас є функція втрат y = x^{2}, яку потрібно мінімізувати. Це можна зробити, обчислюючи нахил за допомогою операції GradientTape() для різних значень x. Якщо нахил додатний, втрати зменшаться, якщо зменшити x. Якщо відʼємний — зменшаться, якщо збільшити x. Саме так працює градієнтний спуск.

На практиці ви використовуватимете високорівневу операцію tensorflow, щоб виконувати градієнтний спуск автоматично. У цій вправі ви обчислите нахил для значень x −1, 1 і 0. Доступні такі операції: GradientTape(), multiply() і Variable().
Ця вправа є частиною курсу
Вступ до TensorFlow на Python
Інструкції до вправи
- Оголосіть
xяк змінну з початковим значеннямx0. - Задайте функцію втрат
yякx, помножене наx. Не використовуйте перевантаження операторів. - Нехай функція повертає градієнт
yзаx.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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))