始める無料で始める

マルチアーム・バンディットの作成

マルチアーム・バンディット問題は、強化学習でよく使われる古典的な例で、エージェントが各アーム(行動)の期待報酬を知らないまま複数の選択肢から選ぶ状況を表します。時間の経過とともに、エージェントは各選択肢を探索し、どのアームが最も高い報酬をもたらすかを学習します。この演習では、マルチアーム・バンディット問題をシミュレーションするための基本的な構造を準備します。

numpy ライブラリは np としてインポート済みです。

この演習はコースの一部です

Pythonで学ぶGymnasiumによるReinforcement Learning

コースを見る

演習の手順

  • 各バンディットの真の成功確率を表す乱数の配列 true_bandit_probs を生成します。
  • 2つの配列 countsvalues をゼロで初期化します。counts は各バンディットが選ばれた回数を、values は各バンディットの勝率推定値を表します。
  • 各反復で得られた報酬と選択したアームを保存するために、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
コードを編集して実行