建立 multi-armed bandit
Multi-armed bandit 問題是強化學習中的經典範例,用來描述一個情境:代理人必須在多個動作(或「拉桿」)中做選擇,但一開始並不知道各自的期望報酬。隨著時間推進,代理人會透過探索各種選項,學習到哪一個拉桿的報酬最高。本練習要你建立用來模擬 multi-armed bandit 問題的基礎結構。
numpy 函式庫已匯入為 np。
本練習屬於課程
使用 Python 的 Gymnasium 進行強化學習
練習說明
- 產生一個陣列
true_bandit_probs,其隨機機率代表每個 bandit 真實的成功率。 - 以 0 初始化兩個陣列
counts與values;counts用來追蹤每個 bandit 被選擇的次數,values代表每個 bandit 的估計勝率。 - 建立
rewards與selected_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