Résoudre un bandit à bras multiples
Cet exercice consiste à mettre en œuvre une stratégie epsilon-gourmande pour résoudre un problème de bandit à 10 bras, où la valeur de epsilon décroît au fil du temps afin de passer graduellement de l'exploration à l'exploitation.
epsilon, min_epsilon et epsilon_decay ont été prédéfinis pour vous. La fonction epsilon_greedy() a également été importée.
Cette activité fait partie du cours
Reinforcement Learning avec Gymnasium en Python
Instructions de l’exercice
- Utilisez la fonction
create_multi_armed_bandit()pour initialiser un problème de bandit à 10 bras, qui retourneratrue_bandit_probs,counts,values,rewardsetselected_arms. - Sélectionnez un bras à tirer à l'aide de la fonction
epsilon_greedy(). - Simulez la
rewarden vous basant sur les probabilités réelles du bandit. - Faites décroître la valeur de
epsilonen vous assurant qu'elle ne descende pas sous la valeurmin_epsilon.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create a 10-armed bandit
true_bandit_probs, counts, values, rewards, selected_arms = ____
for i in range(n_iterations):
# Select an arm
arm = ____
# Compute the received reward
reward = ____
rewards[i] = reward
selected_arms[i] = arm
counts[arm] += 1
values[arm] += (reward - values[arm]) / counts[arm]
# Update epsilon
epsilon = ____