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

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

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

Библиотека NumPy уже импортирована как np.

Image showing the mathematical formula of the Q-learning update rule.

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

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

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

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

  • Получите текущее Q-значение для заданной пары «состояние — действие».
  • Определите максимальное Q-значение для следующего состояния по всем возможным действиям в actions.
  • Обновите Q-значение для текущей пары «состояние — действие» по формуле Q-обучения.
  • Обновите Q-таблицу Q, при условии что агент выполняет действие 0 в состоянии 0, получает вознаграждение 5 и переходит в состояние 1.

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

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

actions = ['action1', 'action2'] 
def update_q_table(state, action, reward, next_state):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Determine the maximum Q-value for the next state
    next_max = ____
    # Compute the new value of the current state-action pair
    Q[state, action] = ____

alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)
Редактировать и запускать код