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

Cài đặt quy tắc cập nhật Q-learning

Q-learning là một thuật toán off-policy trong reinforcement learning (RL) nhằm tìm hành động tốt nhất cần thực hiện tại trạng thái hiện tại. Khác với SARSA, vốn xét đến hành động tiếp theo thực sự được thực hiện, Q-learning cập nhật các giá trị Q bằng phần thưởng tương lai lớn nhất, không phụ thuộc vào hành động đã chọn. Sự khác biệt này cho phép Q-learning học được chính sách tối ưu ngay cả khi đang theo một chính sách khám phá, thậm chí ngẫu nhiên. Nhiệm vụ của bạn là cài đặt một hàm cập nhật Q-table theo quy tắc Q-learning dưới đây.

Thư viện NumPy đã được nhập với bí danh np.

Image showing the mathematical formula of the Q-learning update rule.

Bài tập này là một phần của khóa học

Reinforcement Learning với Gymnasium trong Python

Xem khóa học

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

  • Lấy giá trị Q hiện tại cho cặp trạng thái–hành động đã cho.
  • Xác định giá trị Q lớn nhất cho trạng thái tiếp theo trên tất cả các hành động khả dĩ trong actions.
  • Cập nhật giá trị Q cho cặp trạng thái–hành động hiện tại bằng công thức Q-learning.
  • Cập nhật Q-table Q, giả sử agent thực hiện hành động 0 ở trạng thái 0, nhận phần thưởng 5, và chuyển sang trạng thái 1.

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.

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
Chỉnh sửa và Chạy Mã