這次我們就來深入探討 Q-learning 框架,它是強化學習 (Reinforcement Learning, RL) 中一個非常經典且重要的演算法。
Q-learning 框架:讓智能體「邊做邊學」的魔術!✨
Q-learning 是一種 免模型 (model-free) 的強化學習演算法,這表示它不需要事先知道環境的運作方式(比如每個動作會將智能體帶到哪個狀態,或是會獲得多少獎勵)。它透過不斷的試錯 (trial-and-error),直接學習在特定狀態下採取哪個動作會獲得最大的長期獎勵。想像一下,你在一座漆黑的迷宮裡尋寶。你不知道迷宮的地圖,也不知道寶藏在哪裡。你會怎麼做?你會到處走走、碰碰運氣,如果走到死路就退回來,如果發現寶藏就記下來。Q-learning 的核心概念就是這樣。
1. 核心概念:Q 表 (Q-table) 與 Q 值 (Q-value)
Q-learning 的核心是建立一個Q 表 (Q-table)。這張表就像是智能體的「經驗筆記本」,裡面記錄了每個狀態 (State) 下,執行每個動作 (Action) 所能獲得的預期累積獎勵 (Expected Cumulative Reward),這個值就叫做 Q 值 (Q-value)。
* Q(s, a):表示在狀態 s 下,執行動作 a 的「品質」或「價值」。這個值越高,表示在該狀態下執行這個動作越好。
初始時,Q 表裡的 Q 值通常都會被初始化為零,表示智能體一開始對環境一無所知。
2. Q-learning 的學習過程:探索與利用的平衡 ⚖️
Q-learning 的學習是一個迭代的過程,智能體會不斷與環境互動,更新 Q 值。主要包含以下步驟:
* 初始化 Q 表:將所有狀態-動作對應的 Q 值設為 0 或一個小的隨機值。
* 設定學習參數:
* 學習率 (Learning Rate, \alpha):決定每次更新時,新資訊會影響舊 Q 值多少。\alpha 介於 0 到 1 之間。\alpha 越大,學習越快,但也可能導致不穩定。
* 折扣因子 (Discount Factor, \gamma):衡量未來獎勵的重要性。\gamma 介於 0 到 1 之間。\gamma 越接近 0,智能體越看重眼前即時的獎勵;\gamma 越接近 1,則越看重長期累積的獎勵。
* 探索率 (Exploration Rate, \epsilon):控制智能體是探索 (Exploration) 新動作還是利用 (Exploitation) 已知最佳動作的平衡。通常會隨時間遞減。
* 探索:智能體隨機選擇動作,目的是發現環境中潛在的高獎勵路徑。
* 利用:智能體選擇 Q 值最高的動作,目的是最大化當前已知的獎勵。
* 迴圈學習 (通常以回合 Episode 為單位):
* 回合開始:智能體處於一個初始狀態 s。
* 選擇動作:
* 智能體根據 \epsilon 的機率,決定是隨機選擇一個動作(探索),還是從 Q 表中選擇當前狀態 s 下 Q 值最高的動作(利用)。這種策略稱為 \epsilon-貪婪策略 (\epsilon-greedy policy)。
* 執行動作:智能體執行選定的動作 a。
* 觀察結果:環境返回一個即時獎勵 r,並將智能體帶到一個新的狀態 s'。
* 更新 Q 值:這是 Q-learning 的核心!智能體使用著名的 貝爾曼方程 (Bellman Equation) 來更新 Q(s, a) 的值:
Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]
我們來拆解這個公式:
* Q(s, a):當前狀態 s 下,動作 a 的舊 Q 值。
* r:執行動作 a 後獲得的即時獎勵。
* $\gamma \max_{a'} Q(s', a')$:在新的狀態 s' 下,所有可能動作中,能獲得的最大未來折扣 Q 值。這代表了智能體對未來「最佳」結果的預期。
* $(r + \gamma \max_{a'} Q(s', a'))$:這是我們「目標」的 Q 值,可以看作是從經驗中學到的新的、更好的估計。
* $Q(s, a)$:舊的 Q 值。
* $(r + \gamma \max_{a'} Q(s', a') - Q(s, a))$:這是時間差誤差 (Temporal Difference Error, TD Error),表示了新估計與舊估計之間的差異。如果這個誤差大,表示智能體學到了很多新的東西,Q 值更新的幅度就大。
* $\alpha$:學習率,控制了這個誤差會對 Q 值造成多大的影響。
* 狀態更新:將當前狀態 s 設定為新的狀態 s',然後重複循環,直到達到終點狀態或達到最大步數。
3. Q-learning 的優勢與局限
優勢:
* 免模型 (Model-Free):不需要知道環境的內部運作機制,可以直接從互動中學習。
* 能找到最優策略:在有限的馬可夫決策過程 (MDP) 中,如果智能體有足夠的探索時間,Q-learning 可以收斂到最優策略。
* 簡單易懂:概念相對直觀,實現起來也比較容易。
局限:
* 狀態空間爆炸:當狀態空間非常大時(例如,圖像像素點、複雜的遊戲局面),Q 表會變得異常龐大,難以儲存和更新。這就是 「維度災難」(Curse of Dimensionality)。
* 無法處理連續狀態/動作空間:Q 表需要離散的狀態和動作。如果環境是連續的(例如,機器人手臂的關節角度),Q-learning 就無法直接應用。
4. 從 Q-learning 到深度 Q 網路 (DQN)
為了解決 Q-learning 在處理大規模、連續狀態空間時的局限,深度學習 (Deep Learning) 被引入,形成了 深度 Q 網路 (Deep Q-Network, DQN)。
DQN 的核心思想就是用一個深度神經網路 (Deep Neural Network) 來取代 Q 表,近似 (approximate) Q 函數。這樣就不需要儲存巨大的表格,而是透過神經網路的參數來表示 Q 值。這使得 DRL 能夠處理更複雜的任務,比如直接從遊戲畫面中學習玩遊戲(這就是 AlphaGo 等的基礎)。
結語
Q-learning 作為強化學習的基石,為我們理解智能體如何透過與環境互動來學習最佳決策提供了清晰的框架。即使它有自身的局限,但它所奠定的「價值學習」基礎,仍然是現代 DRL 演算法不可或缺的一部分。
#Qlearning #強化學習 #ReinforcementLearning #Qtable #AI基礎 #機器學習 #BellmanEquation #試錯學習