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

Tạo multi-armed bandit

Bài toán multi-armed bandit là ví dụ kinh điển trong reinforcement learning mô tả tình huống một tác tử phải chọn giữa nhiều hành động (hay "cần gạt"/"arm") mà không biết trước kỳ vọng phần thưởng của từng cái. Theo thời gian, tác tử học được arm nào mang lại phần thưởng cao nhất bằng cách thử nghiệm các lựa chọn. Bài tập này yêu cầu bạn thiết lập cấu trúc nền tảng để mô phỏng một bài toán multi-armed bandit.

Thư viện numpy đã được nhập với bí danh 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ạo mảng true_bandit_probs với các xác suất ngẫu nhiên biểu diễn tỷ lệ thành công thực sự của mỗi bandit.
  • Khởi tạo hai mảng countsvalues với các giá trị 0; counts theo dõi số lần mỗi bandit được chọn, còn values biểu diễn xác suất thắng ước lượng của mỗi bandit.
  • Tạo các mảng rewardsselected_arms để lưu phần thưởng nhận được và arm được chọn ở mỗi vòng lặp.

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 create_multi_armed_bandit(n_bandits):
  	# Generate the true bandits probabilities
    true_bandit_probs = ____ 
    # Create arrays that store the count and value for each bandit
    counts = ____  
    values = ____  
    # Create arrays that store the rewards and selected arms each episode
    rewards = ____
    selected_arms = ____ 
    return true_bandit_probs, counts, values, rewards, selected_arms
Chỉnh sửa và Chạy Mã