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

Реализация правила обновления двойного Q-обучения

Двойное Q-обучение (Double Q-learning) — это расширение алгоритма Q-обучения, которое помогает снизить переоценку значений действий за счёт поддержания и обновления двух отдельных Q-таблиц. Разделяя выбор действия и его оценку, двойное Q-обучение обеспечивает более точное вычисление Q-значений. В этом упражнении вы реализуете правило обновления двойного Q-обучения. Список Q, содержащий две Q-таблицы, уже создан.

Библиотека numpy импортирована как np; значения gamma и alpha предварительно загружены. Формулы обновления приведены ниже:

Image showing the update rule of Q1.

Image showing the update rule of Q2.

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

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

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

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

  • Случайным образом определите, какую из Q-таблиц в списке Q следует обновить при оценке значения действия, вычислив её индекс i.
  • Выполните все необходимые шаги для обновления Q[i].

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

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

Q = [np.random.rand(8,4), np.random.rand(8,4)] 
def update_q_tables(state, action, reward, next_state):
  	# Get the index of the table to update
    i = ____
    # Update Q[i]
    best_next_action = ____
    Q[i][state, action] = ____
Редактировать и запускать код