AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
83/100 第九週:📌 深度強化學習(Deep Reinforcement Learning)🎮
83.Q-Learning 與策略網路 🧭 學會每一步的最佳選擇!
_______________________________________
🎯 單元導讀:
強化學習的核心問題之一是:在每一個狀態下,選哪個動作最能帶來長期利益?
為此,Q-Learning(行動值學習)是一種簡單又強大的方法,用來估算每個行為的「預期報酬」。
若再加上深度神經網路的表達能力,就能形成策略網路來做近似與決策。
本課將介紹:
✅ Q-Learning 的基本原理與公式
✅ 如何使用 Q 值做出最佳選擇
✅ 策略網路的概念與實現方法
✅ DQN 架構的概念鋪墊(為下一課做準備)
________________________________________
🧠 一、什麼是 Q-Learning?
➤ 定義:
Q-Learning 是一種強化學習方法,它的目標是學會一個「評分機制」,也就是學會在某個狀態下,做某個動作到底好不好。這個「評分」可以幫助我們在未來的情境中做出最佳決策。
這個評分叫做「Q值」,代表的是:「如果我在某個情況下採取某個動作,接下來一直做最好的選擇,最終我能拿到多少總報酬(獎勵)?」
Q-Learning 的特點是 off-policy,也就是說,它不需要一定要按照它想學的策略來做選擇,它可以一邊用一種策略來探索(比如 ε-greedy,偶爾亂選),同時學習另一種最好的策略。
它的學習方式是這樣的:
每次我們做了一個動作,觀察到了實際的獎勵,然後也看了一下「下個狀態中最值得做的動作會有多少價值」,再來我們就更新原本的Q值,把新的觀察結果加進去,讓整體的Q值越來越準確。
整體來說,我們每次都在做這四件事:
1. 觀察現在的情況(狀態)
2. 做出一個動作(根據目前已知的資訊,可能加上一點隨機探索)
3. 收到獎勵,並移動到新的狀態
4. 更新對這個狀態與動作的價值評估,讓這個估計越來越接近實際能拿到的報酬
最後,只要Q值學得夠準,我們就可以在任何情況下直接挑選 Q 值最高的動作,這就是最優策略。
________________________________________
✅ Q 值學習目標:更新規則
透過與環境互動,不斷更新 Q 值,使之趨近於最優:
Q-Learning 的經典數學公式:
Q(s,a)←Q(s,a)+α[R+γ⋅max Q(s′,a′)−Q(s,a)]
就是要透過不斷地跟環境互動,一點一滴地修正 Q 值,讓它越來越接近「最佳解」,也就是:
👉 每個情況下,做某個行動到底值不值得?
________________________________________
🔁 學習更新規則是這樣運作的:
1. Q 值先有一個初始估計(例如一開始全部設成 0)
2. 每當你在某個「狀態」下執行一個「動作」:
o 環境會回饋你一個「即時獎勵 R」
o 然後你會進入一個「新狀態」
o 你再看看在這個新狀態中,哪個動作的 Q 值最高
3. 將你剛剛的經驗,加入目前 Q 值的調整:
o 你原本的 Q 值會向著「即時獎勵 + 未來最大可能價值」的方向靠攏
________________________________________
🔧 每個參數的意思:
• α(學習率):控制這次學習的「分量」,越大代表越信任新資料,越小代表越保守地更新
• γ(折扣因子):決定你對「未來獎勵」有多重視,越接近 1 越看重長期利益,越接近 0 越看重眼前獎勵
• R:你當下採取行動後,環境立刻給你的獎勵
• s'(下一個狀態):你採取動作後,環境帶你到的新位置
• max Q(s', a'):你在新位置中,能選的行動裡,哪一個是目前估計最有價值的
________________________________________
🧠 最終目標:
讓 Q 值學得越來越準確,最後你可以根據:
👉「每個狀態下 Q 值最大的那個動作」來選擇行動,這就是 最佳策略!
________________________________________
🧭 二、Q 值與最佳策略的關係
一旦學得 Q 函數,就可以定義一個貪婪策略(greedy policy):
π(s)=arg maxQ(s,a)
這代表在每個狀態 s 下,選擇能夠使預期總報酬最大的行動 a。
→ 總是選擇 Q 值最大的動作,即為最可能帶來最大總回報的策略。
________________________________________
🎯 三、策略網路(Policy Network)是什麼?
➤ 定義:
策略網路是用神經網路來近似策略函數 π(a∣s) 的一種模型結構,主要用在策略為主(Policy-based)的強化學習中。
但在 Q-Learning 中,我們常將神經網路用來估算 Q 值(不是策略),這就形成了:
✅ Q 網路(Q-Network):將狀態作為輸入,輸出所有動作的 Q 值
________________________________________
🧱 四、Q 網路與策略網路差異比較
Q 網路(Value-based)與策略網路(Policy-based)是兩種強化學習中不同的學習方式,各有適用場景與特點。
Q 網路的核心在於預測每個動作的「價值」,也就是 Q 值,讓代理人可以在每個狀態下挑選價值最高的動作來執行;代表性的應用包括 DQN、Double DQN 等,特別適合動作數量是固定且離散的情境,例如玩 Atari 遊戲。
相比之下,策略網路的目標是直接學出一個策略,輸出每個動作的「選擇機率分布」,也就是學會該怎麼「選擇」動作;代表方法如 REINFORCE、PPO、A2C,常用於連續動作空間,或當策略本身需具備隨機性(如對手無法預測)時特別有效。
簡單來說,Q 網路像是算分數選最好的,策略網路則是直接學會如何「選」的行為風格。
________________________________________
🤖 五、Q-Learning 應用流程簡述(for 離散動作)
1. 初始化 Q 表(或神經網路)
2. 在環境中觀察狀態 s,根據 epsilonϵ-greedy 策略選擇動作 a
3. 執行 a,觀察回饋 R 與下一狀態 s′
4. 用公式更新 Q 值
5. 重複多回合,直到收斂
________________________________________
📚 六、小結與學習啟示:
✅ Q-Learning 提供了「每一步選哪個動作最好」的數學依據
✅ 策略不需要顯式設計,只需估算 Q 值最大即可
✅ 策略網路則更適合處理「動作多元」或「決策需隨機」的任務
✅ 本課是進入 DQN(深度 Q-Learning) 的關鍵基礎!
________________________________________
💬 問題挑戰與思考:
1. Q-Learning 是否可以直接用在圖像輸入任務?若不行,怎麼改進?
🔍 解析:
傳統 Q-Learning 使用的是表格(table)方式儲存每個狀態與動作的 Q 值,這對於圖像這種高維連續輸入完全不適用,因為圖像的狀態空間是無窮大,無法一一列出。
✅ 改進方法:
引入 深度學習。使用一個**卷積神經網路(CNN)**來輸入圖像,並輸出每個動作的 Q 值,這就是 深度 Q 網路(DQN)。例如 DQN 在 Atari 遊戲中就是直接處理影像輸入的經典做法。
________________________________________
2. 如果環境是連續動作空間,還能用 Q-Learning 嗎?為什麼?
🔍 解析:
Q-Learning 假設可以對「所有動作」列出 Q 值並挑選最大值 maxaQ(s,a)
但在連續動作空間中,動作是無窮多的,無法枚舉或搜尋最大 Q 值,因此傳統 Q-Learning 不適用於這類任務。
✅ 解法:
使用 Actor-Critic 架構 或 DDPG(Deep Deterministic Policy Gradient) 等方法:
• 使用一個「Critic」網路來估計 Q 值
• 使用一個「Actor」網路來輸出連續動作
這樣可以跳過枚舉所有動作,讓 Q-Learning 概念能延伸到連續空間。
________________________________________
3. Q 值學習會不會震盪或不穩定?原因是什麼?(提示:bootstrap 誤差)
🔍 解析:
是的,Q-Learning 會有震盪與不穩定的情況。
主要原因來自於 bootstrap 誤差累積:
• 每次 Q 值更新不是用真實回報,而是用「自己預測的 Q 值」來做預測
• 這種「用估計值學估計值」的過程會造成誤差擴大,導致學習不穩
✅ 改進策略:
• 使用 固定目標網路(Target Network):暫時固定預測的 Q 值,減少更新震盪(DQN 做法)
• 使用 經驗回放(Replay Buffer):打亂資料順序,避免強烈相關性加劇震盪
• 使用 雙 Q-Learning:避免過度樂觀的 Q 值估計,提升穩定性