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

Áp dụng Double Q-learning

Bài tập này yêu cầu bạn áp dụng thuật toán Double Q-learning trong cùng môi trường tùy chỉnh mà bạn đã giải bằng Expected SARSA để so sánh sự khác biệt. Double Q-learning, bằng cách sử dụng hai Q-table, giúp giảm thiên lệch đánh giá cao vốn có trong thuật toán Q-learning truyền thống và mang lại sự ổn định cao hơn trong quá trình học so với các phương pháp sai biệt theo thời gian khác. Bạn sẽ dùng phương pháp này để di chuyển trong môi trường dạng lưới, nhắm tới phần thưởng cao nhất trong khi tránh núi để đến đích nhanh nhất có thể.

new_cust_env.png

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

  • Cập nhật các Q-table bằng hàm update_q_tables() bạn đã viết ở bài trước.
  • Kết hợp các Q-table bằng cách cộng chúng lại.

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.

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
Chỉnh sửa và Chạy Mã