開始使用免費開始

實作 Double Q-learning 的更新規則

Double Q-learning 是 Q-learning 演算法的延伸,透過維護並更新兩個獨立的 Q-table,來降低對動作價值的高估。藉由將動作選擇與動作評估解耦,Double Q-learning 能更精準地估計 Q 值。本練習將帶你實作 Double Q-learning 的更新規則。已為你建立一個包含兩個 Q-table 的清單 Q

numpy 函式庫已以 np 匯入,且 gammaalpha 的數值已預先載入。更新公式如下:

Image showing the update rule of Q1.

Image showing the update rule of Q2.

本練習屬於課程

使用 Python 的 Gymnasium 進行強化學習

檢視課程

練習說明

  • 隨機決定在 Q 中要用哪個 Q-table 來進行動作價值估計的更新,並計算其索引 i
  • 依步驟完成 Q[i] 的更新。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

Q = [np.random.rand(8,4), np.random.rand(8,4)] 
def update_q_tables(state, action, reward, next_state):
  	# Get the index of the table to update
    i = ____
    # Update Q[i]
    best_next_action = ____
    Q[i][state, action] = ____
編輯並執行程式碼