CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Utilisez la fonction create_multi_armed_bandit() pour initialiser un problème de bandit à 10 bras, qui retournera true_bandit_probs, counts, values, rewards et selected_arms.
  • Sélectionnez un bras à tirer à l'aide de la fonction epsilon_greedy().
  • Simulez la reward en vous basant sur les probabilités réelles du bandit.
  • Faites décroître la valeur de epsilon en vous assurant qu'elle ne descende pas sous la valeur min_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 = ____
Modifier et exécuter le code