Definire la funzione epsilon-greedy
In RL, la strategia epsilon-greedy bilancia esplorazione e sfruttamento. Questo metodo sceglie un'azione casuale con probabilità epsilon e l'azione migliore conosciuta con probabilità 1 - epsilon. Implementare la funzione epsilon_greedy() è fondamentale per algoritmi come Q-learning e SARSA: facilita l'apprendimento dell'agente garantendo sia l'esplorazione dell'ambiente sia lo sfruttamento delle ricompense note, ed è proprio l'obiettivo di questo esercizio.
La libreria numpy è stata importata come np.
Questo esercizio fa parte del corso
Reinforcement Learning con Gymnasium in Python
Istruzioni dell'esercizio
- All'interno della funzione, scrivi la condizione adeguata per far esplorare l'ambiente all'agente.
- Scegli un'
actioncasuale durante l'esplorazione. - Scegli la migliore
actionin base allaq_tabledurante lo sfruttamento.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
epsilon = 0.2
env = gym.make('FrozenLake')
q_table = np.random.rand(env.observation_space.n, env.action_space.n)
def epsilon_greedy(state):
# Implement the condition to explore
if ____ < ____:
# Choose a random action
action = ____
else:
# Choose the best action according to q_table
action = ____
return action