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

Quy tắc cập nhật Expected SARSA

Trong bài tập này, bạn sẽ hiện thực quy tắc cập nhật Expected SARSA, một thuật toán model-free RL dựa trên sai khác theo thời gian (temporal difference). Expected SARSA ước lượng giá trị kỳ vọng của chính sách hiện tại bằng cách lấy trung bình trên tất cả các hành động có thể, nhờ đó cung cấp mục tiêu cập nhật ổn định hơn so với SARSA. Các công thức dùng trong Expected SARSA được hiển thị bên dưới.

Image showing the mathematical formula of the expected SARSA update rule.

Thư viện numpy đã được import với tên np.

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

  • Tính Q-value kỳ vọng cho next_state.
  • Cập nhật Q-value cho stateaction hiện tại bằng công thức Expected SARSA.
  • Cập nhật Q-table Q giả sử tác tử thực hiện hành động 1 ở trạng thái 2 và chuyển sang trạng thái 3, nhận phần thưởng là 5.

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 update_q_table(state, action, next_state, reward):
  	# Calculate the expected Q-value for the next state
    expected_q = ____
    # Update the Q-value for the current state and action
    Q[state, action] = ____
    
Q = np.random.rand(5, 2)
print("Old Q:\n", Q)
alpha = 0.1
gamma = 0.99

# Update the Q-table
update_q_table(____, ____, ____, ____)
print("Updated Q:\n", Q)
Chỉnh sửa và Chạy Mã