Bắt đầu ngayBắt đầu miễn phí

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().

Đồ thị của một hàm một biến có nhiều cực tiểu cục bộ và một cực tiểu toàn cục.

Nhiều optimizer trong tensorflow có tham số momentum, bao gồm SGDRMSprop. Trong bài này, bạn sẽ dùng RMSprop. Lưu ý lần này x_1x_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

Xem khóa học

Hướng dẫn bài tập

  • Thiết lập toán tử opt_1 với learning rate 0.01 và momentum 0.99.
  • Thiết lập opt_2 dù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_1x_2 dưới dạng mảng numpy.

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(____, ____)
Chỉnh sửa và Chạy Mã