第二部:《深度學習》84/100 📌Deep Q-Network (DQN) 🎲 結合深度學習的強化學習典範!

更新 發佈閱讀 11 分鐘

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 值。

🚫 問題:

在連續空間中,動作無窮多,max⁡aQ(s,a)變得難以計算。

✅ 替代方法:

可使用 Actor-Critic 架構中的 DDPG(Deep Deterministic Policy Gradient) 或其變體 TD3、SAC:

Actor 網路:直接輸出連續動作

Critic 網路:評估該動作在狀態下的價值(Q 值)

這種方法將策略學習與價值估計結合,能有效處理連續動作空間。




留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
14會員
344內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/22
Q-Learning 透過更新 Q 值學習每一步最佳動作,以最大化長期回報;其 off-policy 特性允許探索與學習並行。策略網路則直接近似動作分布,適合連續空間。DQN 將神經網路引入 Q-Learning,能處理圖像等高維輸入,並透過固定目標網路與經驗回放提升穩定性。
2025/09/22
Q-Learning 透過更新 Q 值學習每一步最佳動作,以最大化長期回報;其 off-policy 特性允許探索與學習並行。策略網路則直接近似動作分布,適合連續空間。DQN 將神經網路引入 Q-Learning,能處理圖像等高維輸入,並透過固定目標網路與經驗回放提升穩定性。
2025/09/22
獎勵函數是強化學習的核心,設計需對齊目標、平滑可學並避免作弊路徑。策略學習旨在找到最優行動以最大化長期回報,常見方法有策略梯度、Actor-Critic 與演化式學習。實務挑戰包括稀疏獎勵、探索與利用平衡及環境變動,需透過獎勵塑形、內在動機與即時調整來克服。
2025/09/22
獎勵函數是強化學習的核心,設計需對齊目標、平滑可學並避免作弊路徑。策略學習旨在找到最優行動以最大化長期回報,常見方法有策略梯度、Actor-Critic 與演化式學習。實務挑戰包括稀疏獎勵、探索與利用平衡及環境變動,需透過獎勵塑形、內在動機與即時調整來克服。
2025/09/22
強化學習透過智慧體與環境互動,依獎懲回饋學習策略,核心包含狀態、動作、回饋、策略與價值函數。常見方法有 Q-Learning、Policy Gradient、Actor-Critic 與 Model-based。應用涵蓋遊戲 AI、機器人、金融與推薦系統,適合解決動態決策與延遲回饋問題。
2025/09/22
強化學習透過智慧體與環境互動,依獎懲回饋學習策略,核心包含狀態、動作、回饋、策略與價值函數。常見方法有 Q-Learning、Policy Gradient、Actor-Critic 與 Model-based。應用涵蓋遊戲 AI、機器人、金融與推薦系統,適合解決動態決策與延遲回饋問題。
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
數據分析與解讀 隨著數據的爆炸式增長,能夠分析、解讀和應用數據的能力變得至關重要。這包括熟悉數據分析工具和技術,如統計學、數據挖掘、機器學習等。然而,僅靠短時間的數據分析並不足以提供深入見解。 要熟悉數據分析工具和技術,如統計學、數據挖掘和機器學習,可以從以下幾個方面入手: 基礎知識的學習
Thumbnail
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
呈上篇介紹如何訓練模型,此篇就主要介紹如何利用訓練好的模型來生成圖片 [深度學習][Python]DCGAN訓練生成手寫阿拉伯數字_生成篇 生成的結果 生成的圖片大小會根據,當初設置的生成器輸出大小來決定,當你使用生成對抗網絡(GAN)生成圖像時,生成器模型的最後一層通常會決定生成圖
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文參考TensorFlow官網Deep Convolutional Generative Adversarial Network的程式碼來加以實作說明。 示範如何使用深度卷積生成對抗網路(DCGAN) 生成手寫數位影像。
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
本文將延續上一篇文章,經由訓練好的GAN模型中的生成器來生成圖片 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 [深度學習][Python]訓練CNN的GAN模型來生成圖片_訓練篇 相較之下CNN的GAN生成的效果比較好,但模型也相對比較複雜,訓練時間花的也比較
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
透過這篇文章,我們將瞭解如何使用PyTorch實作圖神經網絡中的訊息傳遞機制,從定義消息傳遞的類別到實作消息傳遞過程。我們也探討了各種不同的消息傳遞機制,並通過對單次和多次傳遞過程的結果,可以看到節點特徵如何逐步傳遞與更新。
Thumbnail
透過這篇文章,我們將瞭解如何使用PyTorch實作圖神經網絡中的訊息傳遞機制,從定義消息傳遞的類別到實作消息傳遞過程。我們也探討了各種不同的消息傳遞機制,並通過對單次和多次傳遞過程的結果,可以看到節點特徵如何逐步傳遞與更新。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News