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