ПочатиПочніть безкоштовно

Застосування Double Q-learning

У цій вправі ви застосуєте алгоритм Double Q-learning у тому самому користувацькому середовищі, яке ви розв'язували за допомогою Expected SARSA, щоб порівняти підходи. Double Q-learning, використовуючи дві Q-таблиці, допомагає зменшити зміщення завищення, властиве традиційному алгоритму Q-learning, і забезпечує стабільніше навчання, ніж інші методи з різницею у часі. Ви використаєте цей метод, щоб пройти сіткове середовище: прагніть максимізувати винагороду, оминайте гори та якнайшвидше дістаньтеся цілі.

new_cust_env.png

Ця вправа є частиною курсу

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