開始使用免費開始

建立 multi-armed bandit

Multi-armed bandit 問題是強化學習中的經典範例,用來描述一個情境:代理人必須在多個動作(或「拉桿」)中做選擇,但一開始並不知道各自的期望報酬。隨著時間推進,代理人會透過探索各種選項,學習到哪一個拉桿的報酬最高。本練習要你建立用來模擬 multi-armed bandit 問題的基礎結構。

numpy 函式庫已匯入為 np

本練習屬於課程

使用 Python 的 Gymnasium 進行強化學習

檢視課程

練習說明

  • 產生一個陣列 true_bandit_probs,其隨機機率代表每個 bandit 真實的成功率。
  • 以 0 初始化兩個陣列 countsvaluescounts 用來追蹤每個 bandit 被選擇的次數,values 代表每個 bandit 的估計勝率。
  • 建立 rewardsselected_arms 陣列,用來儲存每次迭代獲得的報酬與被選擇的拉桿。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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
編輯並執行程式碼