ПочатиПочніть безкоштовно

Реалізація every-visit Monte Carlo

Метод Every-Visit Monte Carlo відрізняється від варіанту First-Visit тим, що оновлює значення щоразу, коли пара «стан-дія» з'являється, а не лише під час першої появи. Такий підхід дає всебічну оцінку політики, адже використовує всю доступну інформацію з епізодів. Водночас він може підвищувати дисперсію оцінок значень, оскільки враховує всі зразки незалежно від того, коли вони трапляються в епізоді. Ваше завдання — доповнити реалізацію функції every_visit_mc(), яка оцінює функцію значень дій Q протягом num_episodes епізодів.

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

Ця вправа є частиною курсу

Reinforcement Learning з 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())
Редагувати та запускати код