開始使用免費開始

使用遞減 epsilon-greedy 策略解決 CliffWalking

為了強化 epsilon-greedy 策略,我們引入衰減因子,使探索率 epsilon 隨著智能體對環境了解加深而逐步降低。這種作法在學習初期鼓勵探索,而當智能體愈來愈熟悉環境時,則能更有效地利用已學到的知識。現在,你將把這個策略應用在 CliffWalking 環境上。

環境已初始化,可透過變數 env 存取。變數 epsilonmin_epsilonepsilon_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))
編輯並執行程式碼