Resolvendo um bandido de múltiplos braços
Neste exercício, você vai implementar uma estratégia epsilon-greedy para resolver um problema de 10 braços, em que o valor de epsilon decai ao longo do tempo para fazer a transição de exploração para exploração.
epsilon, min_epsilon e epsilon_decay já foram pré-definidos para você. A função epsilon_greedy() também foi importada.
Este exercício faz parte do curso
Reinforcement Learning com Gymnasium em Python
Instruções do exercício
- Use a função
create_multi_armed_bandit()para inicializar um problema de bandido de 10 braços, que retornarátrue_bandit_probs,counts,values,rewardseselected_arms. - Selecione um braço para puxar usando a função
epsilon_greedy(). - Simule a
rewardcom base nas probabilidades verdadeiras do bandido. - Faça o decaimento do valor de
epsilon, garantindo que ele não fique abaixo demin_epsilon.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 = ____