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
Oefeninstructies
- Gebruik de functie
create_multi_armed_bandit()om een 10-armed bandit-probleem te initialiseren; die geefttrue_bandit_probs,counts,values,rewardsenselected_armsterug. - Kies een arm om te trekken met de functie
epsilon_greedy(). - Simuleer de
rewardop basis van de echte bandit-kansen. - Laat de waarde van
epsilonafnemen en zorg dat die niet onder de waarde vanmin_epsilonkomt.
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 = ____