Hugging Face 關於 Q-Learning 的介紹
Q-Learning 是一種離策略、基於價值的強化學習(RL)方法,使用時間差分(TD)方法來訓練行動價值函數。它讓代理人透過迭代更新 Q 表,記錄在特定狀態下執行特定動作的品質,從而學習環境的最佳策略。
理解 Q 函數與 Q 表
Q 函數是一種行動價值函數,用於判斷處於特定狀態並採取特定動作的價值。"Q" 代表 "Quality(品質)"。
在內部,Q 函數依賴於 Q 表,這是一個矩陣,每個格子對應一個狀態-動作對的值。代理人將此表作為備忘錄:給定一個狀態和動作,Q 函數會在 Q 表中搜尋並輸出相應的 Q 值。
訓練過程如下:
- 初始化:Q 表通常以全零初始化,表示代理人對環境一無所知。
- 探索:當代理人與環境互動時,會以更好的狀態-動作值近似來更新 Q 表。
- 最佳化:一旦 Q 表被最佳化,代理人便擁有最佳策略,因為它知道在每個可能的狀態下應採取的最佳動作。
Q-Learning 演算法
Q-Learning 採用結構化流程,在每一步即更新其行動價值函數,而非等到回合結束才更新。
行動選擇:ε-貪婪策略
為了在探索與利用之間取得平衡,Q-Learning 採用 ε-貪婪策略:
- 探索:以機率 $\epsilon$,代理人選擇隨機動作以發現新的狀態-動作配對。
- 利用:以機率 $1 - \epsilon$,代理人選擇 Q 表中具有最高狀態-動作值的動作。
隨著訓練的進行,$\epsilon$ 的值會逐步降低(衰減),使代理人的行為從隨機探索轉向利用已學得的知識。
更新機制
在執行動作 $A_t$ 並收到獎勵 $R_{t+1}$ 以及下一個狀態 $S_{t+1}$ 後,代理人使用 TD 目標來更新 $Q(S_t, A_t)$ 的值。TD 目標由即時獎勵加上下一狀態中最佳可能狀態-動作配對的折扣值(自舉)組成。
離策略 vs. 在策略學習
Q-Learning 被歸類為 離策略 演算法,因為它在行動與更新時使用不同的策略:
- 行動策略:使用 ε-貪婪策略來選擇代理人在環境中實際執行的動作。
- 更新策略:使用貪婪策略(始終選擇最高價值的動作)來計算 TD 目標並更新 Q 值。
相較之下,在策略 演算法(例如 Sarsa)在行動與更新時使用相同的策略(例如 ε-貪婪)。
實務應用與範例
為了示範 Q-Learning,Hugging Face 使用一個迷宮範例,讓老鼠必須在避免毒藥的同時取得起司。代理人的學習由獎勵函數驅動:
- +10:到達大塊起司(目標)。
- +1:取得小塊起司。
- 0:移動到沒有起司的狀態。
- -10:觸碰毒藥(終止狀態/死亡)。
透過迭代的隨機動作步驟(因為初始 $\epsilon$ 較高)以及根據獎勵更新 Q 表,代理人最終學會最佳路徑(例如,右、右、下)。
訓練環境
為了實作練習,指南建議兩個主要環境:
- Frozen Lake v1:非滑溜版,代理人必須從起始狀態 (S) 導航至目標狀態 (G),同時避免洞穴 (H)。
- Autonomous Taxi:代理人必須學會在城市中導航,將乘客從 A 點運送到 B 點。