AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
84/100 第九週:📌 深度強化學習(Deep Reinforcement Learning)🎮
84.Deep Q-Network (DQN) 🎲 結合深度學習的強化學習典範!
________________________________________
🎯 單元導讀:
傳統 Q-Learning 使用表格來儲存 Q 值,但當**狀態空間龐大或是連續型資料(如圖像)**時,表格根本無法應付。
因此,DeepMind 在 2015 年提出了突破性方法:
✅ Deep Q-Network(DQN):用神經網路來逼近 Q 函數,讓強化學習能處理高維感知輸入(如遊戲畫面)
DQN 成功打敗人類玩家於多個 Atari 遊戲,是深度強化學習的重要里程碑!
________________________________________
🧠 一、DQN 是什麼?
➤ 定義:
DQN 是一種使用深度神經網路來近似 Q 函數 Q(s,a)的強化學習方法,結合:
• Q-Learning 理論
• 卷積神經網路(CNN)處理圖像輸入
• 經驗回放(Replay Buffer)
• 固定目標網路(Target Network)
________________________________________
🧱 二、DQN 基本架構
環境狀態(遊戲畫面) → CNN → Q(s, a1), Q(s, a2), ..., Q(s, an)
↓
選擇 Q 值最大的動作執行
這段流程說明的是 DQN(Deep Q-Network)如何從環境中做出決策:
當代理人接收到環境的狀態,例如一張遊戲畫面,它會先將這張圖像輸入到卷積神經網路(CNN)中進行特徵提取。CNN 會將這些圖像資訊轉換成有意義的數值特徵,並預測每個可能動作的 Q 值,也就是這些動作在當前情況下的價值評估。接著,代理人會從這些 Q 值中選出數值最高的那個動作來執行,因為這個動作被認為最有可能帶來最大的未來回報。這就是 DQN 做決策的基本過程。
🧩 核心組件:
元件 說明
主 Q 網路(Online Network) 負責實際做決策與更新
目標 Q 網路(Target Network) 每隔幾步與主網路同步,讓訓練更穩定
經驗回放(Replay Buffer) 儲存過去的經驗 (s, a, r, s'),打破樣本相關性
損失函數(Loss): Loss=(R+γ⋅a′maxQtarget(s′,a′)−Qonline(s,a))^2
這表示實際回饋與預測的差距,目標是讓預測 Q 越來越接近實際獎勵的加總預期值 |
📌 總結:
DQN 利用了「深度神經網路 + 強化學習」的結合,將傳統 Q-Learning 推廣到能處理圖像和高維資料的場景中。為了克服不穩定的學習過程,加入了目標網路與經驗回放這兩項關鍵技術,提升了學習穩定性與效果。
________________________________________
🎓 三、DQN 訓練流程概述
1️⃣ 初始化主網路與目標網路,建立 replay buffer
2️⃣ 重複以下流程:
• 觀察狀態 s
• 依 ε-greedy 策略選擇動作 a(探索 vs 利用)
• 執行 a 得到獎勵 r 與下一狀態 s'
• 儲存 (s, a, r, s') 到 buffer
• 從 buffer 隨機取一批樣本 (mini-batch)
• 計算目標 Q 值:
y = r + γ * max_a' Q_target(s', a')
• 以 MSE 誤差更新主 Q 網路
• 定期同步 Q_target ← Q_main
首先,我們會初始化兩個神經網路:主 Q 網路(負責學習和預測)與目標 Q 網路(提供穩定的學習目標),並建立一個**經驗回放緩衝區(replay buffer)**來儲存過往經驗。訓練時,代理人會不斷與環境互動:觀察當前狀態,依照 ε-greedy 策略在探索和利用間選擇動作,然後執行動作、獲得獎勵,並觀察下一個狀態。這些經驗會被存入 buffer。接著,從 buffer 中隨機取出一批資料,計算每個樣本的目標 Q 值(即:實際獎勵加上目標網路預測的未來最大 Q 值),再使用這些目標值來更新主 Q 網路的參數。最後,為了維持學習穩定性,會定期將主網路的參數複製到目標網路上。這樣的設計讓 DQN 能夠有效地從經驗中學習最優策略,並在複雜環境中保持穩定表現。
_________________________________
🧠 四、DQN 成功的技術創新
DQN 之所以成功,關鍵在於引入了三項重要的技術創新,有效解決了傳統 Q-Learning 在高維環境中的不穩定與無法泛化的問題。
首先,Replay Buffer 用來儲存過去的經驗,並隨機抽取來訓練,這樣可以打破樣本間的時間相關性,提升訓練穩定性。其次,Target Network 則是設計一個固定的目標網路,每隔幾步才更新一次,用來避免 Q 值更新時目標值不斷變動,從而降低梯度震盪。最後,透過**CNN(卷積神經網路)**的引入,DQN 能夠從圖像或高維感知輸入中自動提取特徵,進行有效的表徵學習,使其能應用在如 Atari 遊戲這類複雜環境中,實現從原始畫面學會控制策略的能力。
________________________________________
📈 五、DQN 的應用實例
領域 案例說明
🎮 遊戲 AI Atari 2600 系列遊戲(如 Breakout、Pong)
🤖 機器控制 視覺導引的導航、小型機器人控制
📊 自動化任務 文件分類、自動網頁導航、流程優化
________________________________________
⚠️ 六、DQN 的限制與擴展方向
DQN 雖然開創了深度強化學習的先河,但仍存在一些限制,因此後續研究提出了多種擴展方法來改進。首先,過估計 Q 值(Overestimation) 是 DQN 的一大問題,因為在更新目標時,同時用同一個網路選擇與評估動作,容易產生偏高的預測。
為了解決這個問題,Double DQN 將行動選擇與目標評估拆開,提升了學習的準確性。其次,DQN 在學習長期回報時表現較差,尤其當重要獎勵來自遙遠未來時,訊號難以傳遞回起點。
Dueling DQN 透過分離「狀態價值」與「動作優勢」,更清楚地表示每個狀態本身的好壞,有助於強化長期學習能力。
最後,DQN 的探索效率不高,尤其在複雜環境中容易陷入局部最小值。為此,可引入Prioritized Replay(優先重放機制)或 NoisyNet(引入噪聲進行策略探索)等技術,提升探索策略的多樣性與效率。這些擴展讓 DQN 更穩定、更精準,也更能處理現實中的複雜挑戰。
________________________________________
📚 七、小結與啟示
✅ DQN 是將強化學習推入「感知智能時代」的代表模型
✅ 結合神經網路後,Agent 不再只能處理離散、簡單任務
✅ Replay Buffer + Target Network 是穩定訓練關鍵
✅ DQN 奠定了日後眾多強化學習擴展架構的基礎(如 Rainbow DQN)
________________________________________
💬 問題挑戰與思考:
1️⃣ 如果你要讓 DQN 學會「走出迷宮」,圖像輸入會如何設計?
✅ 解釋:
在走迷宮這種任務中,我們可以將每個時間點的環境畫面(例如俯視圖的地圖)作為圖像輸入。這張圖可以是:
RGB 或灰階圖像,例如地圖的格子、牆壁、起點、終點、代理人位置等都用不同顏色編碼。
尺寸固定(如 84x84 或 64x64),利於 CNN 處理。
若代理人有記憶需求,可使用連續多幀畫面(Stacked Frames),幫助它感知移動方向和速度。
接著將這個圖像輸入到 CNN(如 DQN 中的卷積層),提取空間特徵,再輸出各種可走方向的 Q 值,如:上、下、左、右,最終學會哪條路可以最快到達終點。
2️⃣ Replay Buffer 隨機抽樣雖穩定,但會不會忽略重要經驗?如何改善?
✅ 解釋:
是的,隨機抽樣雖然能打破時間相關性、穩定訓練,但也可能讓「關鍵經驗」(例如:罕見高獎勵或失敗案例)被低機率抽中,進而拖慢學習速度或導致錯過重要學習訊號。
🎯 解決方法:
引入 Prioritized Experience Replay(優先經驗回放),根據每筆經驗的重要性(例如 TD 誤差大小)分配權重,讓模型更常學習那些「學得還不夠好」的資料。這樣可以加速收斂,提升訓練效率與策略品質。
3️⃣ 為什麼 DQN 不能直接用於連續動作?該用什麼方法替代?
✅ 解釋:
DQN 是設計來處理離散動作空間的,它需要為每個可能動作分別預測 Q 值,並選出最大值。但如果動作是連續的(例如調整馬達角度、油門大小),就無法列舉所有動作來找最大 Q 值。
🚫 問題:
在連續空間中,動作無窮多,maxaQ(s,a)變得難以計算。
✅ 替代方法:
可使用 Actor-Critic 架構中的 DDPG(Deep Deterministic Policy Gradient) 或其變體 TD3、SAC:
• Actor 網路:直接輸出連續動作
• Critic 網路:評估該動作在狀態下的價值(Q 值)
這種方法將策略學習與價值估計結合,能有效處理連續動作空間。