Розв'язання CliffWalking зі стратегією epsilon-greedy зі спаданням
Щоб удосконалити стратегію epsilon-greedy, вводять коефіцієнт спадання, який поступово зменшує швидкість дослідження — epsilon — у міру того, як агент краще пізнає середовище. Такий підхід заохочує активне дослідження на ранніх етапах навчання та використання набутого досвіду, коли агент стає більш обізнаним із середовищем. Тепер ви застосуєте цю стратегію, щоб розв'язати середовище CliffWalking.
Середовище ініціалізовано й доступне через змінну env. Змінні epsilon, min_epsilon та epsilon_decay уже визначено. Функції epsilon_greedy() і update_q_table() імпортовано.
Ця вправа є частиною курсу
Reinforcement Learning з Gymnasium у Python
Інструкції до вправи
- Реалізуйте повний цикл навчання: оберіть
action, виконайте її, додайте отримануrewardдоepisode_reward, оновіть Q-таблицю. - Зменшуйте
epsilonіз коефіцієнтомepsilon_decay, гарантуючи, що він не опуститься нижчеmin_epsilon.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
rewards_decay_eps_greedy = []
for episode in range(total_episodes):
state, info = env.reset()
episode_reward = 0
for i in range(max_steps):
# Implement the training loop
action = ____
new_state, reward, terminated, truncated, info = ____
episode_reward += ____
____
state = new_state
rewards_decay_eps_greedy.append(episode_reward)
# Update epsilon
epsilon = ____
print("Average reward per episode: ", np.mean(rewards_decay_eps_greedy))