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


Это упражнение является частью курса
Обучение с подкреплением с 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] = ____