НачатьНачать бесплатно

Применение двойного Q-обучения

В этом упражнении вы применяете алгоритм двойного Q-обучения в той же пользовательской среде, которую вы решали с помощью Expected SARSA, — чтобы сравнить их поведение. Двойное Q-обучение использует две Q-таблицы, что позволяет снизить смещение в сторону завышенных оценок, характерное для классического Q-обучения, и обеспечивает большую стабильность обучения по сравнению с другими методами временных разностей. Ваша задача — провести агента через сеточную среду, стремясь получить максимальную награду, избегая гор и как можно быстрее достигая цели.

new_cust_env.png

Это упражнение является частью курса

Обучение с подкреплением с Gymnasium на Python

Посмотреть курс

Инструкции к упражнению

  • Обновите Q-таблицы с помощью функции update_q_tables(), которую вы написали в предыдущем упражнении.
  • Объедините Q-таблицы, суммировав их.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код