實作 Double Q-learning 的更新規則
Double Q-learning 是 Q-learning 演算法的延伸,透過維護並更新兩個獨立的 Q-table,來降低對動作價值的高估。藉由將動作選擇與動作評估解耦,Double Q-learning 能更精準地估計 Q 值。本練習將帶你實作 Double Q-learning 的更新規則。已為你建立一個包含兩個 Q-table 的清單 Q。
numpy 函式庫已以 np 匯入,且 gamma 與 alpha 的數值已預先載入。更新公式如下:


本練習屬於課程
使用 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] = ____