Оптимизация с помощью градиентов
Вам дана функция потерь \(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))