動學學深度學習pytorch
參考地址:https://zh.d2l.ai/
文章目錄
- 動學學深度學習pytorch
- 1-第07章-現代卷積神經網絡
- 1. AlexNet
- 1.1 AlexNet 的核心貢獻是什么?
- 1.2 AlexNet 與 LeNet 的主要區別有哪些?
- 1.3 為什么 AlexNet 需要 GPU 訓練?
- 2. VGG
- 2.1 VGG 的核心設計思想是什么?
- 2.2 VGG-11 的架構如何定義?
- 2.3 為什么 VGG 計算量大于 AlexNet?
- 3. NiN(Network in Network)
- 3.1 NiN 如何解決全連接層的問題?
- 3.2 NiN 的核心模塊是什么?
- 3.3 NiN 的參數量為何顯著減少?
- 4. GoogLeNet(Inception)
- 4.1 Inception 塊的設計動機是什么?
- 4.2 Inception 塊如何降低計算復雜度?
- 4.3 GoogLeNet 的架構特點?
- 5. 批量規范化(BatchNorm)
- 5.1 批量規范化的作用是什么?
- 5.2 批量規范化的計算流程?
- 5.3 為什么批量規范化能正則化?
- 6. ResNet(殘差網絡)
- 6.1 殘差塊如何解決深層網絡退化問題?
- 6.2 ResNet-18 的架構特點?
- 6.3 為什么殘差連接有效?
- 7. DenseNet(稠密連接網絡)
- 7.1 DenseNet 與 ResNet 的核心區別?
- 7.2 DenseNet 的關鍵模塊?
- 7.3 為什么 DenseNet 參數更少?
1-第07章-現代卷積神經網絡
1. AlexNet
1.1 AlexNet 的核心貢獻是什么?
AlexNet 首次在大規模視覺競賽中證明:學習到的特征可以超越手工設計的特征,標志著深度學習在計算機視覺領域的重大突破。
1.2 AlexNet 與 LeNet 的主要區別有哪些?
- 深度更深:8 層 vs LeNet 的 5 層
- 激活函數:使用 ReLU 而非 Sigmoid
- 參數規模:卷積通道數是 LeNet 的 10 倍,全連接層參數量達 1GB
- 正則化:使用 Dropout 和大量數據增強(翻轉、裁切、變色)
1.3 為什么 AlexNet 需要 GPU 訓練?
- 計算需求:大規模矩陣乘法和卷積操作(312 TFLOPS vs CPU 的 1 TFLOPS)
- 內存需求:早期 GPU 顯存有限(3GB GTX580),需雙 GPU 并行設計
2. VGG
2.1 VGG 的核心設計思想是什么?
通過重復使用統一的 VGG塊(3×3 卷積 + ReLU + 2×2 最大池化)構建深層網絡,強調“更深更窄”的卷積比“更淺更寬”更有效。
2.2 VGG-11 的架構如何定義?
conv_arch = ((1,64), (1,128), (2,256), (2,512), (2,512)) # (卷積層數, 輸出通道數)
2.3 為什么 VGG 計算量大于 AlexNet?
- 更深的卷積層(8 層 vs 5 層)
- 更大的全連接層輸入(25088 vs 6400)
3. NiN(Network in Network)
3.1 NiN 如何解決全連接層的問題?
用 1×1 卷積層 替代全連接層,實現逐像素的 MLP,保留空間結構的同時減少參數量。
3.2 NiN 的核心模塊是什么?
NiN塊:1 個 3×3 卷積 + 2 個 1×1 卷積(逐像素 MLP)
最后用 全局平均池化層 替代全連接層輸出。
3.3 NiN 的參數量為何顯著減少?
取消全連接層后,參數量從 AlexNet 的 1GB 降至 NiN 的 10MB(Fashion-MNIST 示例)。
4. GoogLeNet(Inception)
4.1 Inception 塊的設計動機是什么?
通過 多尺度并行路徑(1×1、3×3、5×5 卷積 + 3×3 池化)高效提取圖像特征,解決“多大卷積核最合適”的問題。
4.2 Inception 塊如何降低計算復雜度?
- 1×1 卷積降維:在 3×3 和 5×5 卷積前減少通道數(如 192→96)
- 通道合并:四條路徑輸出在通道維度拼接。
4.3 GoogLeNet 的架構特點?
- 9 個 Inception 塊堆疊
- 全局平均池化層替代全連接層
- 參數量僅為 AlexNet 的 1/12(6M vs 60M)
5. 批量規范化(BatchNorm)
5.1 批量規范化的作用是什么?
通過規范化中間層輸入(減均值除方差),加速收斂,減少對初始化和學習率的敏感性,同時具有正則化效果。
5.2 批量規范化的計算流程?
BN(x) = γ * (x - μ_B) / sqrt(σ2_B + ε) + β
- μ_B 和 σ2_B:當前批次的均值和方差
- γ 和 β:可學習的縮放和偏移參數
5.3 為什么批量規范化能正則化?
訓練中引入的批次統計噪聲(μ_B 和 σ2_B 的隨機性)相當于隱式正則化,類似于 Dropout 的效果。
6. ResNet(殘差網絡)
6.1 殘差塊如何解決深層網絡退化問題?
通過 跳躍連接(Skip Connection)使網絡能夠學習 殘差映射 F(x) = H(x) - x,而非直接擬合 H(x),確保新增層至少不劣于原網絡。
6.2 ResNet-18 的架構特點?
- 4 個殘差模塊(每個含 2 個殘差塊)
- 通道數逐模塊翻倍(64→128→256→512)
- 全局平均池化層輸出(512→10)
6.3 為什么殘差連接有效?
- 數學保證:嵌套函數類 F ? F’,新增層可退化為恒等映射
- 梯度傳播:跳躍連接緩解梯度消失,支持訓練 152 層網絡。
7. DenseNet(稠密連接網絡)
7.1 DenseNet 與 ResNet 的核心區別?
- 連接方式:ResNet 是 相加(x + F(x)),DenseNet 是 通道拼接([x, F(x)])
- 特征復用:每一層接收前面所有層的特征圖作為輸入。
7.2 DenseNet 的關鍵模塊?
- 稠密塊(DenseBlock):每層輸出通道數為增長率(如 32),輸入通道數線性增長(增長率 × 層數)。
- 過渡層(Transition Layer):1×1 卷積降維 + 2×2 平均池化降采樣。
7.3 為什么 DenseNet 參數更少?
- 特征復用減少冗余參數
- 過渡層控制通道數(如 1024→512)
- 增長率(32)遠小于 ResNet 的通道增量(256→512)。