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

Реализация метода Монте-Карло с учётом всех посещений

Метод Монте-Карло с учётом всех посещений отличается от варианта с учётом первого посещения тем, что обновляет значения при каждом появлении пары «состояние — действие», а не только при первом. Такой подход обеспечивает более полную оценку политики, используя всю доступную информацию из эпизодов. Однако он может вносить большую дисперсию в оценки значений, поскольку включает все выборки независимо от того, в какой момент эпизода они встречаются. Ваша задача — завершить реализацию функции every_visit_mc(), которая оценивает функцию ценности действий Q на протяжении num_episodes эпизодов.

Словари returns_sum и returns_count с парами «состояние — действие» в качестве ключей уже инициализированы и загружены для вас вместе с функцией generate_episode().

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

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

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

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

  • Сгенерируйте эпизод с помощью функции generate_episode().
  • Обновите суммы доходов и их счётчики для каждой пары «состояние — действие» в рамках эпизода.
  • Вычислите оценочные Q-значения.

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

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

Q = np.zeros((num_states, num_actions))
for i in range(100):
  # Generate an episode
  episode = ____
  # Update the returns and their counts
  for j, (state, action, reward) in ____:
    returns_sum[(state,  action)] += sum(____)
    returns_count[(state,  action)] += ____

# Update the Q-values for visited state-action pairs 
nonzero_counts = ____
Q[nonzero_counts] = ____
    
render_policy(get_policy())
Редактировать и запускать код