Оцінювання політики на слизькому Frozen Lake
У слизькому середовищі Frozen Lake просто вивести політику з вивченої Q-таблиці недостатньо, щоб оцінити її ефективність. Щоб коректно визначити, наскільки підходить вивчена політика, потрібно зіграти кілька епізодів і подивитися на середню винагороду. У цій вправі порівнюється результативність вивченої політики з базовим рівнем, отриманим під час тренування за випадковою політикою. Ваше завдання — запустити вивчену політику протягом кількох епізодів і проаналізувати її за середніми винагородами, порівнявши їх із середніми винагородами, зібраними під час фази випадкової політики.
Q-таблиця Q, num_states, num_actions і avg_reward_per_random_episode уже завантажені для вас.
Бібліотеку NumPy імпортовано як np.
Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- У кожній ітерації оберіть найкращу дію на основі вивченої Q-таблиці
Q. - Обчисліть середню винагороду за вивчений епізод
avg_reward_per_learned_episode.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)