Решение задачи CliffWalking с помощью стратегии epsilon-greedy с затуханием
Улучшенная стратегия epsilon-greedy использует коэффициент затухания, который постепенно снижает скорость исследования — epsilon — по мере того, как агент накапливает знания о среде. Такой подход стимулирует активное исследование на ранних этапах обучения и переключение на использование накопленных знаний по мере того, как агент лучше осваивает среду. Теперь вы примените эту стратегию для решения задачи в среде CliffWalking.
Среда уже инициализирована и доступна через переменную env. Переменные epsilon, min_epsilon и epsilon_decay заданы заранее. Функции epsilon_greedy() и update_q_table() уже импортированы.
Это упражнение является частью курса
Обучение с подкреплением с 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))