IniziaInizia gratis

Risolvi un multi-armed bandit

In questo esercizio implementerai una strategia epsilon-greedy per risolvere un problema di bandit con 10 bracci, in cui il valore di epsilon decresce nel tempo per passare gradualmente dall’esplorazione allo sfruttamento.

epsilon, min_epsilon ed epsilon_decay sono già stati definiti per te. La funzione epsilon_greedy() è stata anche importata.

Questo esercizio fa parte del corso

Reinforcement Learning con Gymnasium in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Usa la funzione create_multi_armed_bandit() per inizializzare un problema di bandit con 10 bracci; restituirà true_bandit_probs, counts, values, rewards e selected_arms.
  • Seleziona un braccio da tirare usando la funzione epsilon_greedy().
  • Simula la reward basandoti sulle probabilità reali del bandit.
  • Riduci (decay) il valore di epsilon assicurandoti che non scenda sotto min_epsilon.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 = ____
Modifica ed esegui il codice