Definindo a função epsilon-greedy
Em RL, a estratégia epsilon-greedy equilibra exploração e aproveitamento. Esse método escolhe uma ação aleatória com probabilidade epsilon e a melhor ação conhecida com probabilidade 1-epsilon. Implementar a função epsilon_greedy() é essencial para algoritmos como Q-learning e SARSA, pois facilita o aprendizado do agente ao garantir tanto a exploração do ambiente quanto o aproveitamento das recompensas conhecidas. Esse será o objetivo deste exercício.
A biblioteca numpy já foi importada como np.
Este exercício faz parte do curso
Reinforcement Learning com Gymnasium em Python
Instruções do exercício
- Dentro da função, escreva a condição adequada para que o agente explore o ambiente.
- Escolha uma
actionaleatória ao explorar. - Escolha a melhor
actionde acordo com aq_tableao aproveitar.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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