Utvärdera konvergens i ett multi-armed bandit-problem
Att utvärdera hur väl olika strategier presterar och konvergerar i ett multi-armed bandit-problem är avgörande för att förstå deras effektivitet. Genom att analysera hur ofta varje arm väljs över tid kan vi följa inlärningsprocessen och bedöma strategins förmåga att identifiera och utnyttja den bästa armen. I den här övningen visualiserar du andelen val för varje arm över iterationerna för att bedöma konvergensen hos en epsilon-girig strategi.
Arrayen selected_arms, som visar vilken arm som valdes i varje iteration, har redan laddats in åt dig.
Den här övningen är en del av kursen
Reinforcement Learning med Gymnasium i Python
Övningsinstruktioner
- Initiera en array
selections_percentagemed nollor, med dimensioner som spårar varje bandits valandel över tid. - Beräkna
selections_percentageöver tid genom att ta den kumulativa summan av val för varje bandit över iterationerna och dela med iterationsnumret. - Plotta de kumulativa valandelarna för varje bandit för att visualisera hur ofta respektive bandit väljs över iterationerna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Initialize the selection percentages with zeros
selections_percentage = ____
for i in range(n_iterations):
selections_percentage[i, selected_arms[i]] = 1
# Compute the cumulative selection percentages
selections_percentage = np.____(____, axis=____) / np.arange(1, ____).reshape(-1, 1)
for arm in range(n_bandits):
# Plot the cumulative selection percentage for each arm
plt.plot(____, label=f'Bandit #{arm+1}')
plt.xlabel('Iteration Number')
plt.ylabel('Percentage of Bandit Selections (%)')
plt.legend()
plt.show()
for i, prob in enumerate(true_bandit_probs, 1):
print(f"Bandit #{i} -> {prob:.2f}")