Tối ưu hóa với gradient
Bạn được cho một hàm mất mát, \(y = x^{2}\), và mục tiêu là tối thiểu hóa nó. Bạn có thể làm điều này bằng cách tính hệ số góc (slope) bằng thao tác GradientTape() tại các giá trị khác nhau của x. Nếu slope dương, bạn có thể giảm mất mát bằng cách giảm x. Nếu slope âm, bạn có thể giảm mất mát bằng cách tăng x. Đây chính là cách gradient descent hoạt động.

Trong thực tế, bạn sẽ dùng một thao tác cấp cao của tensorflow để thực hiện gradient descent tự động. Tuy nhiên, trong bài này, bạn sẽ tự tính slope tại các giá trị x là -1, 1 và 0. Các thao tác sau có sẵn: GradientTape(), multiply(), và Variable().
Bài tập này là một phần của khóa học
Nhập môn TensorFlow bằng Python
Hướng dẫn bài tập
- Định nghĩa
xlà một biến với giá trị khởi tạox0. - Thiết lập hàm mất mát
ybằngxnhân vớix. Không sử dụng operator overloading. - Thiết lập hàm trả về gradient của
ytheox.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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))