Tránh rơi vào điểm cực tiểu cục bộ
Bài trước cho thấy việc mắc kẹt ở các cực tiểu cục bộ dễ như thế nào. Ta có một bài toán tối ưu đơn giản với một biến nhưng gradient descent vẫn không tìm được cực tiểu toàn cục khi phải đi qua các cực tiểu cục bộ trước. Một cách để tránh vấn đề này là dùng momentum, giúp optimizer “vượt qua” các cực tiểu cục bộ. Bạn sẽ tiếp tục dùng hàm loss từ bài trước, đã được định nghĩa sẵn và có sẵn cho bạn dưới tên loss_function().

Nhiều optimizer trong tensorflow có tham số momentum, bao gồm SGD và RMSprop. Trong bài này, bạn sẽ dùng RMSprop. Lưu ý lần này x_1 và x_2 đều được khởi tạo cùng một giá trị. Ngoài ra, keras.optimizers.RMSprop() cũng đã được import sẵn từ tensorflow cho bạn.
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
- Thiết lập toán tử
opt_1với learning rate 0.01 và momentum 0.99. - Thiết lập
opt_2dùng optimizer root mean square propagation (RMS) với learning rate 0.01 và momentum 0.00. - Định nghĩa thao tác tối ưu hóa (minimization) cho
opt_2. - In
x_1vàx_2dưới dạng mảngnumpy.
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.
# Initialize x_1 and x_2
x_1 = Variable(0.05,float32)
x_2 = Variable(0.05,float32)
# Define the optimization operation for opt_1 and opt_2
opt_1 = keras.optimizers.RMSprop(learning_rate=____, momentum=____)
opt_2 = ____
for j in range(100):
opt_1.minimize(lambda: loss_function(x_1), var_list=[x_1])
# Define the minimization operation for opt_2
____
# Print x_1 and x_2 as numpy arrays
print(____, ____)