Aan de slagGa gratis aan de slag

Een multi-armed bandit oplossen

In deze oefening implementeer je een epsilon-greedystrategie om een 10-armed bandit-probleem op te lossen, waarbij de epsilon-waarde in de tijd afneemt om te verschuiven van exploratie naar exploitatie.

epsilon, min_epsilon en epsilon_decay zijn al voor je gedefinieerd. De functie epsilon_greedy() is ook geïmporteerd.

Deze oefening maakt deel uit van de cursus

Reinforcement Learning met Gymnasium in Python

Cursus bekijken

Oefeninstructies

  • Gebruik de functie create_multi_armed_bandit() om een 10-armed bandit-probleem te initialiseren; die geeft true_bandit_probs, counts, values, rewards en selected_arms terug.
  • Kies een arm om te trekken met de functie epsilon_greedy().
  • Simuleer de reward op basis van de echte bandit-kansen.
  • Laat de waarde van epsilon afnemen en zorg dat die niet onder de waarde van min_epsilon komt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 = ____
Code bewerken en uitvoeren