使用遞減 epsilon-greedy 策略解決 CliffWalking
為了強化 epsilon-greedy 策略,我們引入衰減因子,使探索率 epsilon 隨著智能體對環境了解加深而逐步降低。這種作法在學習初期鼓勵探索,而當智能體愈來愈熟悉環境時,則能更有效地利用已學到的知識。現在,你將把這個策略應用在 CliffWalking 環境上。
環境已初始化,可透過變數 env 存取。變數 epsilon、min_epsilon 與 epsilon_decay 已為你預先定義。函式 epsilon_greedy() 與 update_q_table() 也已匯入。
本練習屬於課程
使用 Python 的 Gymnasium 進行強化學習
練習說明
- 實作完整的訓練迴圈:選擇
action、執行它、把收到的reward累加到episode_reward,並更新 Q-table。 - 以
epsilon_decay的比率遞減epsilon,同時確保它不會低於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))