マルチアーム・バンディットの作成
マルチアーム・バンディット問題は、強化学習でよく使われる古典的な例で、エージェントが各アーム(行動)の期待報酬を知らないまま複数の選択肢から選ぶ状況を表します。時間の経過とともに、エージェントは各選択肢を探索し、どのアームが最も高い報酬をもたらすかを学習します。この演習では、マルチアーム・バンディット問題をシミュレーションするための基本的な構造を準備します。
numpy ライブラリは np としてインポート済みです。
この演習はコースの一部です
Pythonで学ぶGymnasiumによるReinforcement Learning
演習の手順
- 各バンディットの真の成功確率を表す乱数の配列
true_bandit_probsを生成します。 - 2つの配列
countsとvaluesをゼロで初期化します。countsは各バンディットが選ばれた回数を、valuesは各バンディットの勝率推定値を表します。 - 各反復で得られた報酬と選択したアームを保存するために、
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