ComeçarComece de graça

Aplicando Double Q-learning

Neste exercício, você vai aplicar o algoritmo Double Q-learning no mesmo ambiente customizado que você resolveu com Expected SARSA para comparar as diferenças. O Double Q-learning, ao usar duas Q-tables, ajuda a reduzir o viés de superestimação presente no algoritmo Q-learning tradicional e oferece mais estabilidade no aprendizado do que outros métodos de diferença temporal. Você usará esse método para navegar pelo ambiente em grade, buscando a maior recompensa enquanto evita as montanhas para chegar ao objetivo o mais rápido possível.

new_cust_env.png

Este exercício faz parte do curso

Reinforcement Learning com Gymnasium em Python

Ver curso

Instruções do exercício

  • Atualize as Q-tables usando a função update_q_tables() que você codou no exercício anterior.
  • Combine as Q-tables somando-as.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
Editar e executar o código