目錄
一、LeNet-5
(1)LeNet-5 網絡概覽
(2)網絡結構詳解
(3)關鍵組件與數學原理
3.1 局部感受野與卷積運算
3.2 權重共享
3.3 子采樣(Pooling)
3.4 激活函數
(4)訓練細節
(5)優勢與局限
(6)應用與影響
(7)對現代深度學習的啟示
二、AlexNet
(1)網絡結構概覽
(2)各層詳解
(3)關鍵創新與數學原理
(4)訓練細節
(5)優勢與局限
(6)對后續網絡的影響
三、VGGNet
1、VGG16
(1)詳細層級結構
(2)關鍵設計思想與數學原理
(3)訓練細節
(4)優勢與局限
(5)對后續網絡發展的影響
2、VGG19
(1)網絡整體架構概覽
(2)分層細節
(3)設計動機與數學原理
(4)訓練細節
(5)參數量與計算量
(6)優勢與局限
(7)VGG19 在現代的地位與應用
四、GoolgeNet
1、GoolgeNet——Inception - v1
(1)網絡整體架構概覽
(2)Inception 模塊詳解
(3)輔助分類器(Auxiliary Classifiers)
(4)訓練細節
(5)參數量與計算成本
(6)優勢與局限
(7)對后續網絡的影響
2、Inception 系列模型對比
(1)從 v1 到 v2:BatchNorm 與卷積分解引入
(2)從 v2 到 v3:更細粒度分解與模塊優化
(3)v4:更深、更統一的模塊設計
(4)Inception-ResNet:殘差連接的融合
(5)綜述對比與選型建議
3、GoolgeNet-Inception系列的后續改進:Xception、MobileNet、EfficientNet
(1)設計思想對比
(2)核心模塊詳解
2.1 深度可分離卷積(Depthwise Separable Convolution)
2.2 倒殘差結構與線性瓶頸(MobileNet-v2)
2.3 SE 注意力模塊(MobileNet-v3 & EfficientNet)
2.4 復合縮放(EfficientNet)
(3)架構配置與規模
(4)性能與效率對比
(5)適用場景與選型建議
小結
五、ResNet
1、ResNet 系列
(1)殘差學習(Residual Learning)動機
(2)殘差模塊結構
2.1 基本殘差塊(Basic Block)
2.2 瓶頸殘差塊(Bottleneck Block)
(3)ResNet 系列典型變體
(4)網絡總體流程
(5)訓練細節
(6)優勢與局限
(7)對后續網絡的影響
(8)小結
2、ResNet 的改進(概述)
(1)結構改進
(2)寬度與基數(Cardinality)探索
(3)連接模式與特征復用
(4)注意力與自適應模塊
(5)其他優化
(6)小結與選型建議
一、LeNet-5
????????在機器學習(ML)向深度學習(DL)演進的過程中,卷積神經網絡(CNN)作為處理圖像的核心模型,一直占據著重要地位。1998 年,Yann LeCun 等人提出的 LeNet-5 成功將 CNN 應用于手寫數字識別(MNIST),標志著深度學習在計算機視覺領域的開端。下一節,我們將全面剖析 LeNet-5 的設計理念、網絡結構、訓練方法及其對后續模型的深遠影響。
(1)LeNet-5 網絡概覽
LeNet-5 是一種典型的五層卷積神經網絡結構(不含輸入層和輸出層),包含三個卷積/激活層和兩個池化(子采樣)層,以及后續的全連接層和輸出層。其核心設計思想包括:
-
局部感受野(Local Receptive Field):每個神經元只連接輸入的局部區域,模擬生物視覺皮層結構。
-
權重共享(Weight Sharing):同一特征圖(feature map)上的所有神經元共享一組卷積核參數,大幅減少參數量。
-
子采樣(池化):空間降采樣帶來平移不變性,并減少計算量與過擬合風險。
(2)網絡結構詳解
輸入:32×32 灰度圖像(MNIST 原圖 28×28,邊緣補零至 32×32)
C1 – 卷積層
????????? ? 卷積核:6 個 5×5
????????? ? 輸出尺寸: (32–5+1)=28 → 6 個 28×28
????????? ? 參數量:6×(5×5)+6 偏置 = 156
S2 – 下采樣(平均池化)層
????????? ? 窗口:2×2,步長 2
????????? ? 輸出尺寸:6×14×14
????????? ? 參數量:6×2 = 12(每個特征圖的縮放和偏置參數)
C3 – 卷積層
????????? ? 卷積核:16 個 5×5
????????? ? 連接方式:每個輸出特征圖并非與 S2 全部 6 張輸入圖相連,而是設計局部連接,增強多樣性
????????? ? 輸出尺寸: (14–5+1)=10 → 16×10×10
????????? ? 參數量:約 1,216
S4 – 下采樣層
????????? ? 窗口:2×2,步長 2
????????? ? 輸出尺寸:16×5×5
????????? ? 參數量:16×2 = 32
C5 – 卷積層(等同全連接)
????????? ? 卷積核:120 個 5×5
????????? ? 由于輸入尺寸恰好 5×5,輸出變為 120×1×1,可視為全連接
????????? ? 參數量:120×(16×5×5)+120 偏置 = 48,120
F6 – 全連接層
????????? ? 84 個神經元
????????? ? 參數量:84×120+84 = 10,164
輸出層
????????? ? 10 個神經元(類別數)
????????? ? 參數量:10×84+10 = 850
──────────
**總參數量:≈ 60,000**
?
(3)關鍵組件與數學原理
3.1 局部感受野與卷積運算
-
卷積:對輸入圖像 x?與權重核 w 進行“滑動矩陣乘加”:
-
好處:提取局部特征,保持參數量低。
3.2 權重共享
-
同一特征圖內各位置神經元共享一組權重核,減少參數,提高泛化。
3.3 子采樣(Pooling)
-
LeNet-5 中采用平均池化(Average Pooling):
-
并引入可訓練的縮放因子與偏置 α,?β:
-
作用:降維、降噪、獲得平移不變性。
3.4 激活函數
-
原論文中使用 sigmoid 或 tanh,現代改用 ReLU 以加速收斂、緩解梯度消失。
(4)訓練細節
-
損失函數:原文用平方誤差(MSE),對于分類任務現代更常用交叉熵(Cross?Entropy)。
-
優化算法:LeNet-5 使用帶動量(momentum)的隨機梯度下降(SGD+momentum)。
-
正則化:參數共享與池化本身即具正則效果;現代可加 L2 或 Dropout。
-
數據增強(當時較少):現代常用旋轉、平移、縮放、仿射變換等增強 MNIST 數據。
(5)優勢與局限
優勢
-
端到端學習:無需手工設計特征,自動從數據中提取層級特征。
-
參數高效:約 6 萬參數,在當時計算資源有限的環境中可行。
-
平移不變性:卷積與池化帶來對圖像平移、輕微扭曲的魯棒。
局限
-
網絡較淺:僅 5 層特征抽取,限制了對復雜圖像的建模能力。
-
激活函數:sigmoid/tanh 易引起梯度消失。
-
固定架構:缺乏現代批歸一化(BatchNorm)、殘差連接(ResNet)等技巧。
(6)應用與影響
-
手寫數字識別:LeNet-5 在 MNIST 上達到 99.2% 以上精度,顯著優于當時方法。
-
后續網絡奠基:AlexNet(2012)、VGG、ResNet 等深層網絡均基于“卷積+池化+全連接”的框架,不斷疊加層數、引入新技術。
-
工業應用:早期 OCR、車牌識別等均借鑒 LeNet 思路。
(7)對現代深度學習的啟示
-
特征層級化:從邊緣→紋理→形狀的分級抽取思想沿用至今。
-
參數共享:高效減少參數的核心理念。
-
網絡結構設計:LeNet-5 完整展現了“Conv→Pool→Conv→Pool→FC→Output”的典型模式,仍是 CNN 設計的基石。
-
可擴展性:在深度、寬度、激活函數、正則化、優化等方面的改進,均建立在 LeNet-5 思想之上。
二、AlexNet
????????AlexNet 由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 于 2012 年提出,是第一款在 ImageNet 規模數據集(ILSVRC?2012)上將錯誤率從 26% 降至 15% 的深度卷積神經網絡。它的成功標志著深度學習在計算機視覺領域的全面爆發,也奠定了現代深度卷積網絡設計的諸多核心思路。
(1)網絡結構概覽
AlexNet 可視為一個 “5 層卷積 + 3 層全連接” 的八層前饋網絡(不含輸入層、輸出 Softmax 層),主要特點包括:
-
輸入:224×224×3 彩色圖像(原文中先裁切為 256×256,再隨機剪裁為 224×224)
-
卷積層:Conv1→LRN→Pool1→Conv2→LRN→Pool2→Conv3→Conv4→Conv5→Pool5
-
全連接層:FC6 → Dropout → FC7 → Dropout → FC8 → Softmax
總體參數量約 6 千萬,計算量巨大,原文借助 2 塊 GPU 并行訓練。
(2)各層詳解
層次 | 配置 | 輸出尺寸 | 參數量(約) |
---|---|---|---|
輸入 | 224×224×3 彩色圖像 | 224×224×3 | – |
Conv1 | 96 個 11×11 卷積核,步長 4,無填充;ReLU;LRN;3×3 最大池化,步長 2 | 55×55×96 | 34.9K |
Conv2 | 256 個 5×5 卷積核,填充 2;ReLU;LRN;3×3 最大池化,步長 2 | 27×27×256 | 614.4K |
Conv3 | 384 個 3×3 卷積核,填充 1;ReLU | 27×27×384 | 885.7K |
Conv4 | 384 個 3×3 卷積核,填充 1;ReLU | 27×27×384 | 1.33M |
Conv5 | 256 個 3×3 卷積核,填充 1;ReLU;3×3 最大池化,步長 2 | 13×13×256 | 884.9K |
FC6 | 全連接,4096 單元;ReLU;Dropout(0.5) | 4096 | 37.75M |
FC7 | 全連接,4096 單元;ReLU;Dropout(0.5) | 4096 | 16.78M |
FC8 | 全連接,1000 單元(分類數);Softmax | 1000 | 4.10M |
總計 | – | – | ≈ 60.9M |
LRN(Local Response Normalization):對局部相鄰通道做“亮度競爭”,幫助增強泛化;
Dropout:隨機丟棄一半神經元,防止過擬合。
(3)關鍵創新與數學原理
-
ReLU 激活
相較于 sigmoid/tanh,ReLU 收斂更快、緩解梯度消失。
-
局部響應歸一化 (LRN)
對通道維度進行歸一化:促使高響應位置“抑制”周圍低響應,形成競爭機制。
-
重疊池化 (Overlapping Pooling)
池化核 3×3,步長 2(而非典型的 2×2、步長 2),減輕過擬合、提升泛化。 -
Dropout
在全連接層每次前向傳播時,以 0.5 概率隨機“屏蔽”神經元,抑制 co?adaptation。 -
數據增強
-
隨機水平翻轉
-
隨機裁剪(從 256×256 裁為 224×224)
-
PCA 顏色抖動:對 RGB 三通道做主成分分析,加入微小擾動
-
-
雙 GPU 并行
將模型“切分”在兩塊 GPU 上:-
Conv1、Conv3、Conv5 在兩個 GPU 上各 48 個 filter
-
Conv2、Conv4 的 filter 跨 GPU 互連
加速正向/反向傳播,緩解顯存限制。
-
(4)訓練細節
-
優化器:SGD + momentum(動量系數 0.9)
-
批大小:128
-
初始學習率:0.01,每當驗證誤差不下降時 手動 降為原來 1/10
-
權重衰減:0.0005(L2 正則化)
-
訓練輪數:約 90 個 epoch
-
訓練時間:在兩塊 NVIDIA GTX 580 GPU 上約 5–6 天
(5)優勢與局限
優勢
-
大規模 ImageNet 驗證:首個深度 CNN 在 1000 類大型數據集上取得突破。
-
設計模塊化:ReLU、Dropout、LRN、重疊池化等技巧,后來廣泛沿用。
-
開源推動:模型與代碼公開,推動社區復現與改進。
局限
-
參數量大:≈ 6,000 萬,存儲與計算成本高。
-
歸一化方式過時:LRN 效果有限,后續被 BatchNorm 替代。
-
架構較寬淺:僅 8 層,深度不足;且所有卷積核大小預設,不同尺度特征提取不足。
(6)對后續網絡的影響
-
VGG/GoogleNet:沿用“Conv→Pool”模塊化設計,探索更深(16–22 層)與更窄(3×3 卷積)結構。
-
BatchNorm、ResNet:針對梯度消失與訓練深度的改進,最終實現上百層網絡可訓練。
-
模型壓縮與加速:對大規模模型的需求催生剪枝、量化、輕量化網絡(MobileNet 等)。
三、VGGNet
????????VGGNet 是由 Oxford 大學視覺幾何組(Visual Geometry Group,簡稱 VGG)于 2014 年提出的深度卷積神經網絡,論文標題為 “Very Deep Convolutional Networks for Large?Scale Image Recognition”。它在 ILSVRC?2014 比賽中以優異表現(Top?5 錯誤率 7.3%)獲得第二名,同時其簡潔的網絡設計思路和可復現性,對后續深層網絡研究產生了深遠影響。
網絡總體架構概覽:
VGGNet 以“堆疊同尺寸小卷積核”著稱,主要有兩種變體:
-
VGG16:13 個卷積層 + 3 個全連接層,共 16 層
-
VGG19:16 個卷積層 + 3 個全連接層,共 19 層
核心設計原則:
-
連續使用多個 3×3 卷積核(代替大尺寸卷積,如 5×5、7×7),保持感受野相同的同時增加非線性表達;
-
每兩到三層卷積后接一個 2×2 最大池化,逐步降低空間分辨率;
-
全連接層放在網絡末端,用于分類。
1、VGG16
(1)詳細層級結構
以 VGG16 為例,其網絡結構可分為 5 個卷積塊(Block)和 3 個全連接層:
Block | 層次 | 輸出尺寸 | 通道數 | 說明 |
---|---|---|---|---|
Block1 | Conv3×3×64 ×2 → MaxPool | 224×224 → 112×112 | 64 | 兩個 3×3 卷積后下采樣 |
Block2 | Conv3×3×128 ×2 → MaxPool | 112×112 → 56×56 | 128 | |
Block3 | Conv3×3×256 ×3 → MaxPool | 56×56 → 28×28 | 256 | 三個卷積層 |
Block4 | Conv3×3×512 ×3 → MaxPool | 28×28 → 14×14 | 512 | |
Block5 | Conv3×3×512 ×3 → MaxPool | 14×14 → 7×7 | 512 | |
FC | FC?4096 → FC?4096 → FC?1000 (Softmax) | 1×1 | – | 兩層大尺寸全連接 + 最后一層分類輸出 |
-
卷積核均為 3×3,步長 1,填充 1;
-
池化窗口 2×2,步長 2;
-
激活函數:ReLU;
-
總參數量:VGG16 約 138M,VGG19 約 144M。
(2)關鍵設計思想與數學原理
-
多層小卷積等效大卷積
-
兩個連續 3×3 卷積層的等效感受野為 5×5;三個連續 3×3 的等效感受野為 7×7。
-
小卷積核參數少、計算量低,同時中間多次 ReLU 增加了非線性表達能力。
-
-
深度網絡的可訓練性
-
相比 AlexNet(8 層)和 ZFNet(8 層),VGGNet 將深度提高至 16–19 層。
-
ReLU 激活、合適的初始化(Xavier、He 初始化)以及小批量 SGD,使得深層網絡收斂成為可能。
-
-
統一架構簡化實現
-
全網絡采用相同的卷積核大小和池化方式,代碼實現簡單,易于復現和擴展。
-
多數后續工作(如 ResNet、Inception)都在此基礎上進行改進。
-
(3)訓練細節
-
數據預處理:
-
輸入圖像先縮放到 256×256,再在訓練時隨機裁剪出 224×224;
-
隨機水平翻轉;
-
均值歸一化(減去 ImageNet 訓練集的 RGB 均值)。
-
-
優化器:
-
SGD + momentum(動量 0.9);
-
初始學習率 0.01,每隔 30 個 epoch 降為原來的 1/10;
-
批大小 256;
-
訓練周期約 74 萬次迭代(約 90 epochs 總共耗時數周)。
-
-
正則化:
-
權重衰減(L2 正則)系數 5e?4;
-
Dropout(0.5)僅應用于全連接層。
-
(4)優勢與局限
優勢
-
深度與性能:在 ImageNet 上取得優異分類效果,為深度網絡可行性提供了實證。
-
設計簡單易擴展:卷積塊模塊化,可靈活堆疊;代碼實現與復現成本低。
-
小卷積核組合:減少參數,提升非線性表達。
局限
-
模型體積大:138M 參數對存儲與內存要求高,不適合移動端部署。
-
計算量大:推理與訓練耗時較長。
-
缺少歸一化層:未使用 BatchNorm,后續往往需要在其基礎上加入 BN 層以加快收斂并提高精度。
(5)對后續網絡發展的影響
-
批歸一化(Batch Normalization)
-
Ioffe & Szegedy(2015)提出 BatchNorm,可插入到 VGG 卷積/全連接層后,大幅加速收斂并提升精度。
-
-
更深與更輕量化網絡
-
ResNet(2015)引入殘差連接,成功訓練百層以上深度;
-
GoogleNet/Inception(2014–2016)通過 Inception 模塊提高寬度與效率;
-
MobileNet、ShuffleNet(2017+)等輕量化網絡關注資源受限場景。
-
-
特征提取與遷移學習
-
VGG 的卷積塊常被作為“通用特征提取器”,在目標檢測(Faster R?CNN)、語義分割(FCN)等任務中作為 backbone 廣泛使用。
-
2、VGG19
????????VGG19 是 Oxford 大學 Visual Geometry Group(VGG)在 2014 年提出的“Very Deep Convolutional Networks for Large?Scale Image Recognition”一文中的一種變體。相比 VGG16,VGG19 在每個卷積塊中多堆疊了一層 3×3 卷積,從而將網絡深度提高到 19 層(不含輸入層與輸出 Softmax 層)。其簡潔而統一的設計,使得深度卷積網絡在當時取得了極佳性能,也為后續網絡架構提供了范式。
(1)網絡整體架構概覽
VGG19 主要由 5 個卷積模塊(Block)和 3 個全連接層(FC)組成:
-
輸入:224×224×3 彩色圖像
-
Block1:2 層 3×3 卷積 → 最大池化
-
Block2:2 層 3×3 卷積 → 最大池化
-
Block3:4 層 3×3 卷積 → 最大池化
-
Block4:4 層 3×3 卷積 → 最大池化
-
Block5:4 層 3×3 卷積 → 最大池化
-
FC6:4096 單元全連接 → ReLU → Dropout(0.5)
-
FC7:4096 單元全連接 → ReLU → Dropout(0.5)
-
FC8:1000 單元全連接 → Softmax
整網約 19 層(不含輸入與 Softmax 層),總參數量約 144M,在 ILSVRC?2014 上獲得 Top?5 錯誤率 7.3%。
(2)分層細節
模塊 | 層數 | 輸出尺寸 | 通道數 | 說明 |
---|---|---|---|---|
Block1 | Conv3×3×64 ×2 → Pool2×2 | 224→112 | 64 | 兩個卷積后下采樣 |
Block2 | Conv3×3×128 ×2 → Pool2×2 | 112→56 | 128 | |
Block3 | Conv3×3×256 ×4 → Pool2×2 | 56→28 | 256 | 四個連續 3×3 |
Block4 | Conv3×3×512 ×4 → Pool2×2 | 28→14 | 512 | |
Block5 | Conv3×3×512 ×4 → Pool2×2 | 14→7 | 512 | |
FC6 | FC?4096 → ReLU → Dropout | 1×1 | 4096 | Dropout 概率 0.5 |
FC7 | FC?4096 → ReLU → Dropout | 1×1 | 4096 | |
FC8 | FC?1000 → Softmax | 1×1 | 1000 | ImageNet 1000 類別 |
-
卷積:均為 3×3、步長 1、填充 1;
-
最大池化:2×2、步長 2;
-
激活:ReLU;
-
丟棄:僅在全連接層中使用 Dropout(0.5)。
(3)設計動機與數學原理
-
堆疊小卷積核
-
兩層連續的 3×3 等效于一次 5×5 感受野,三層等效 7×7。
-
小核帶來參數更少(3×3×C×C’ vs. 7×7×C×C’),且每層后插入 ReLU 增加非線性。
-
-
統一架構簡化實現
-
全網卷積核、池化、激活方式一致,代碼極其簡潔可復現。
-
容易堆疊更深層次,推動了深度網絡可行性研究。
-
-
深度表示能力
-
隨著深度提高,網絡學習更抽象、更復雜的特征。但深度增加也帶來梯度消失與訓練難度,需要合適的初始化與優化策略。
-
(4)訓練細節
-
數據預處理
-
圖像縮放到 256×256,再隨機裁剪 224×224;
-
隨機水平翻轉;
-
減去 ImageNet 訓練集 RGB 均值。
-
-
優化器
-
SGD + momentum(0.9);
-
初始學習率 0.01,每隔 30 個 epoch 降為原來 1/10;
-
批大小 256;
-
權重衰減(L2 正則) 5e?4。
-
-
訓練時間
-
多 GPU 并行訓練,約需數周,視硬件性能而定。
-
(5)參數量與計算量
-
參數量:約 144M(VGG16 為 138M),主要集中在全連接層(≈123M),卷積層約 20M。
-
計算量:由于深度與通道數大,卷積操作浮點運算極多,推理耗時較長,不利于實時和資源受限環境。
(6)優勢與局限
優勢
-
性能優異:在當時 ImageNet 上與 VGG16、GoogleNet 共同位列前茅。
-
設計簡單:易于理解和實現,成為后續研究的基準模型。
-
遷移學習效果好:前面多層卷積塊可作為通用特征提取器,廣泛用于檢測、分割等任務。
局限
-
資源消耗大:144M 參數和深層結構導致存儲與內存占用高,推理速度慢。
-
缺少歸一化:未使用 BatchNorm,訓練深度網絡較困難;后來常在 VGG 基礎上加入 BN。
-
冗余特征:連續四層相同通道卷積存在信息冗余,后續網絡通過瓶頸結構、殘差連接等加以改進。
(7)VGG19 在現代的地位與應用
-
基準模型:仍被用作研究新算法時的對照網絡。
-
特征提取器:在目標檢測(Faster R?CNN、Mask R?CNN)、語義分割(FCN、U-Net)等領域大量采用 VGG19 預訓練權重。
-
網絡改進研究:
-
引入 BatchNorm 形成 VGG19?BN,加速訓練并略微提升精度;
-
用 1×1 卷積或瓶頸層減少計算量(e.g. SqueezeNet、ResNet)。
-
四、GoolgeNet
????????GoogLeNet 是由 Szegedy 等人在 2014 年提出的 Inception 系列第一版網絡,論文題為 “Going Deeper with Convolutions”。它在 ILSVRC?2014 比賽中以 6.7% 的 Top?5 錯誤率奪冠,同時參數量僅約 6.8M,遠低于當時常見的 VGG(138M)和 AlexNet(60M)。GoogLeNet 的成功標志著“深度與寬度并重”與“高效結構設計”成為卷積網絡新方向。
1、GoolgeNet——Inception - v1
(1)網絡整體架構概覽
GoogLeNet 總體深度 22 層(不含池化層和輔助分類器),可分為以下部分:
-
初始卷積層與池化層:提取低級特征并快速降維
-
五個 Inception 模塊組合:每個模塊內部并行多尺度卷積與降維
-
全局平均池化 + Softmax:用全局特征直接分類,拋棄大規模全連接層
-
兩個輔助分類器:插入中間層,緩解梯度消失并作訓練正則化
網絡總體結構示意:
輸入 224×224×3 → Conv(7×7, stride=2) → MaxPool(3×3,2) → Conv(1×1) → Conv(3×3) → MaxPool(3×3,2) → [Inception ×3] → MaxPool(3×3,2) → [Inception ×5] → MaxPool(3×3,2) → [Inception ×2] → 全局平均池化(7×7) → Dropout(0.4) → FC(1000) → Softmax
(2)Inception 模塊詳解
Inception 模塊的核心思想是在同一層并行使用多種感受野(1×1、3×3、5×5 卷積和 3×3 池化),并通過 1×1 卷積在每路上進行通道降維,達到“寬度”與“深度”兼顧、參數高效的效果。
? ? ? ? ? ? ? ?→ 1×1 Conv (降維) → 1×1 Conv →?│輸入 → 1×1 Conv (降維) → 3×3 Conv →?│├→ 1×1 Conv (降維) → 5×5 Conv →│└→ 3×3 MaxPool → 1×1 Conv (降維) →
-
1×1 卷積:
-
用于快速降低通道數,減少后續大核(3×3、5×5)計算
-
增加網絡非線性
-
-
多尺度卷積并行:
-
同時捕捉局部與全局信息
-
-
池化分支:
-
保留領域不變性
-
每個 Inception 模塊輸出通道數視具體版本而定,整個網絡通過堆疊多級 Inception 模塊實現 22 層深度。
(3)輔助分類器(Auxiliary Classifiers)
在第 4、7 兩個 Inception 模塊后各接一個小型卷積→全局平均池化→全連接→Softmax 分支:
-
目的:
-
在訓練過程中提供額外的梯度信號,緩解深層網絡梯度消失
-
作輕度正則化,防止中間層過擬合
-
-
權重:Auxiliary loss 占總 loss 的 0.3;測試時舍棄,僅保留主分支。
(4)訓練細節
-
數據預處理與增強:
-
圖像縮放至 256×256,再隨機裁剪 224×224;
-
隨機水平翻轉;
-
PCA 顏色抖動(與 AlexNet 類似)。
-
-
優化器:
-
SGD + momentum(0.9);
-
初始學習率 0.01,每隔 30 萬次迭代降為原來的 1/3;
-
權重衰減 0.0002;
-
批大小 128;
-
訓練約 90 萬次迭代。
-
-
正則化:
-
Dropout(0.4) 僅在最后全局平均池化后使用;
-
Auxiliary classifiers 自身亦含 Dropout(0.7)。
-
(5)參數量與計算成本
項目 | 數值 |
---|---|
總參數量 | ≈ 6.8M |
浮點運算量 (FLOPs) | ≈ 1.5B(十億級) |
特征圖尺寸 | 224 → 112 → 56 → 28 → 14 → 7 |
GPU 內存需求 | 約 2–3 GB |
相比同時期的 VGG(138M)和 AlexNet(60M),GoogLeNet 在參數量上減少 90%+,同時保持更深的結構。
(6)優勢與局限
優勢
-
參數高效:1×1 降維顯著減少參數。
-
多尺度特征融合:并行卷積捕捉不同大小的圖案。
-
深度可達 22 層:在當時可訓練更深網絡。
-
輔助分類器:提高訓練速度與穩定性。
局限
-
結構復雜:模塊內部多分支,代碼與調試難度大。
-
計算開銷依舊可觀:雖參數少但 FLOPs 高,不利于實時部署。
-
無批歸一化:Inception v1 未使用 BatchNorm,訓練對超參較敏感。
(7)對后續網絡的影響
-
Inception 系列:
-
v2/v3 引入 BatchNorm、Factorization(分解大卷積);
-
v4/v5 融合殘差連接,形成 Inception?ResNet。
-
-
ResNet:
-
Inspired by 深度可訓練性與輔助分類器,提出殘差單元(Residual Block)使網絡可達百層。
-
-
MobileNet/ShuffleNet:
-
繼承 1×1 降維與分組卷積思想,進一步輕量化。
-
-
自動化結構搜索(NAS):
-
Inception 模塊的“多分支”思想啟發 NAS 方法自動搜索最佳分支組合。
-
2、Inception 系列模型對比
以下表格與分析對比了 Inception 系列主要版本(v1/v2/v3/v4 及 Inception-ResNet)的設計思想、模塊改進、參數規模與性能提升。隨后給出逐項詳解。
特性/版本 | Inception v1<br>(GoogLeNet) | Inception v2 | Inception v3 | Inception v4 | Inception-ResNet v1/v2 |
---|---|---|---|---|---|
首次發表 | 2014 年 “Going Deeper…” | 2015 年 “Batch Norm…” | 2015 年 “Rethinking…” | 2016 年 “Inception v4…” | 2016 年 “Inception-ResNet…” |
基本模塊 | 原始 Inception 4 支路 | 加入 BatchNorm 降維 Factor | 進一步 Factorize 卷積 | 簡化版 Inception-v3 模塊 | 在 v3 基礎上加入殘差連接 |
卷積分解(Factorization) | 無 | 5×5→兩個 3×3;3×3→1×3+3×1 | 進一步將 3×3 分解為 1×3+3×1 | 沿用 v3,同時微調模塊寬度 | 同 v4,同時使用殘差合并 |
歸一化(Normalization) | 無 | 在幾乎所有卷積后加入 BatchNorm | 同 v2 | 同 v2 | 同 v2 |
輔助分類器 | 存在兩路 訓練時使用 | 保留但權重微調 | 去除輔助分支 | 去除輔助分支 | 去除輔助分支 |
池化策略 | 普通 3×3 最大池化 | 同 v1 | 同 v1 | 同 v1 | 同 v1 |
全局池化 + FC | 全局平均池化 → Dropout → FC | 同 v1 | 同 v1 | 同 v1 | 同 v1 |
深度(大約層數) | 22 層 | ~55 層 | ~75 層 | ~80 層 | ~80 層 |
參數量 | ~6.8M | ~11M | ~23M | ~42M | ~55M |
Top-5 ImageNet(單裁剪) | 6.7% | ~5.6% | ~5.6% | ~5.5% | ~5.5% |
主要創新點 | 多尺度并行 + 1×1 降維 | BatchNorm + 卷積分解 | 更細粒度卷積分解 + 新模塊 | 統一模塊設計 + 更深網絡 | 殘差連接加速收斂 + 提升性能 |
(1)從 v1 到 v2:BatchNorm 與卷積分解引入
-
Batch Normalization:在幾乎所有卷積層后加入 BN,大幅加快收斂、提高學習率容忍度;
-
卷積分解(Factorization):
-
將原始模塊中的 5×5 卷積分解為兩個串聯的 3×3,減少參數與計算;
-
將某些 3×3 分支再分解為 1×3 + 3×1,進一步降低計算開銷。
-
效果:訓練更穩定,Top-5 錯誤率從 6.7% 降至約 5.6%;參數量增加到 ~11M,但計算效率更高。
(2)從 v2 到 v3:更細粒度分解與模塊優化
-
更細粒度分解:對所有 3×3 卷積引入 1×3+3×1 分解;
-
模塊重構:Inception-v3 重新設計了各個 Inception 模塊(A/B/C 類型),細分通道分配策略;
-
輔助分類器:v3 中逐步淡化,訓練時可選加入,評估階段通常舍棄。
效果:網絡深度增至 ~75 層,參數量 ~23M,Top-5 ≈5.6%,精度和計算效率均優于 v2。
(3)v4:更深、更統一的模塊設計
-
統一模塊:將 Inception-v3 中不同類型模塊統一為三種 Inception-A/B/C,更易復現;
-
更深網絡:整個網絡深度擴展到 ~80 層;
-
Removed Technical Debt:去除少量歷史冗余(如部分輔助分支),僅保留必要結構。
效果:參數量 ~42M,Top-5 進一步微小提升至 ≈5.5%,但訓練與推理成本增大。
(4)Inception-ResNet:殘差連接的融合
-
殘差連接(Residual Connection):在每個 Inception 模塊輸出添加短路分支(identity mapping),借鑒 ResNet “恒等”思想;
-
加速收斂:殘差有助于緩解梯度消失,使得更深網絡訓練更高效;
-
版本區別:
-
v1:輕量級殘差改造,參數 ~55M;
-
v2:批量歸一化、模塊微調,精度略優。
-
效果:在 v4 精度基礎上,收斂速度更快,訓練更穩定。Top-5 ≈5.5%,但參數與計算量進一步增加。
(5)綜述對比與選型建議
需求場景 | 建議版本 | 理由 |
---|---|---|
資源受限部署 | Inception v1 | 參數最少(≈6.8M),推理輕量 |
高精度分類 | Inception v3/v4 | 精度與效率平衡;v3 參數較少(≈23M),v4 精度略優但更重 |
訓練速度優先 | Inception-ResNet | 殘差連接加速收斂,適合超深網絡訓練 |
研究與改進基線 | v3 + ResNet 混合 | 模塊化與性能成熟,易于在此基礎做新穎結構探索 |
遷移學習通用特征提取 | v3/v4 | 中層特征豐富,模塊設計規范,社區支持廣泛 |
3、GoolgeNet-Inception系列的后續改進:Xception、MobileNet、EfficientNet
????????下面,我們從網絡設計思想、核心模塊、架構配置、性能對比及適用場景五個維度,詳細分析 Xception、MobileNet(含 v1/v2/v3)與 EfficientNet(B0–B7)三大輕量級與高效網絡。
(1)設計思想對比
網絡 | 核心思想 |
---|---|
Xception | “Extreme Inception”——將 Inception 模塊中多分支卷積分解為深度可分離卷積(Depthwise Separable Convolution) |
MobileNet | 輕量化全卷積: |
-
v1:標準深度可分離卷積 + 寬度/分辨率乘子
-
v2:倒殘差結構 + 線性瓶頸
-
v3:NAS 自動搜索 + SE 注意力 | | EfficientNet| 復合縮放(Compound Scaling):
按比例同時縮放網絡深度、寬度、輸入分辨率,基于 NAS 搜索得到基準 B0,再生成 B1–B7 |
(2)核心模塊詳解
2.1 深度可分離卷積(Depthwise Separable Convolution)
-
Depthwise:對每個輸入通道獨立應用 a×a 卷積
-
Pointwise:緊接 1×1 卷積將通道混合
-
參數與計算量:
-
普通卷積:
-
可分離卷積:
參數量、FLOPs 減少約
-
2.2 倒殘差結構與線性瓶頸(MobileNet-v2)
-
擴張層:先用 1×1 卷積擴展通道;
-
Depthwise 卷積:3×3;
-
線性投影:1×1 減少通道;
-
跳躍連接:在通道和空間尺寸一致時實施殘差。
2.3 SE 注意力模塊(MobileNet-v3 & EfficientNet)
-
Squeeze:全局平均池化得到通道統計;
-
Excitation:兩層 FC→Sigmoid,生成每通道縮放系數;
-
Scale:對原特征圖通道加權。
2.4 復合縮放(EfficientNet)
-
定義系數
,使深度
,寬度
,分辨率
,并滿足
?。
-
在基準 B0 上依次生成 B1–B7。
(3)架構配置與規模
網絡/版本 | 參數量 | FLOPs | ImageNet Top-1<br>(單裁剪) | 關鍵結構 |
---|---|---|---|---|
Xception | ~22.9M | ~8.4B | 79.0% | 36× depthwise sep conv + 14× pointwise conv |
MobileNet-v1 | ~4.2M | ~569M | 70.6% | Depthwise sep conv + width/res multipliers |
MobileNet-v2 | ~3.4M | ~300M | 72.0% | Inverted ResBlock + linear bottleneck |
MobileNet-v3-Large | ~5.4M | ~219M | 75.2% | NAS 搜索模塊 + SE |
EfficientNet-B0 | ~5.3M | ~390M | 77.1% | 基準復合縮放網絡 |
EfficientNet-B4 | ~19M | ~4.2B | 82.9% | φ=4 復合縮放 |
EfficientNet-B7 | ~66M | ~37B | 84.3% | φ=7 復合縮放 |
注:FLOPs 均指單次前向推理的乘加運算量;Top-1 精度基于 ImageNet 驗證集。
(4)性能與效率對比
-
計算效率(FLOPs)
-
最低:MobileNet-v2 (~300M)
-
中等:MobileNet-v1/v3、EfficientNet-B0 (~400–600M)
-
最高:Xception (~8.4B)、EfficientNet-B4/B7
-
-
參數規模
-
極小:MobileNet-v2 (~3.4M)
-
小:MobileNet-v1/v3、EfficientNet-B0 (~4–6M)
-
中等:Xception (~23M)、EfficientNet-B4 (~19M)
-
大:EfficientNet-B7 (~66M)
-
-
精度(Top-1)
-
入門級:MobileNet-v1 (~70.6%)
-
中檔:MobileNet-v2 (~72.0%)、MobileNet-v3 (~75.2%)
-
高級:Xception (~79.0%)、EfficientNet-B0 (~77.1%)
-
頂級:EfficientNet-B4/B7 (82.9% / 84.3%)
-
(5)適用場景與選型建議
應用場景 | 推薦網絡 | 理由 |
---|---|---|
極致輕量化部署 | MobileNet-v2 | 參數與計算量最小,適合算力極低的嵌入式設備 |
移動端與邊緣端 | MobileNet-v3 / EfficientNet-B0 | 在有限資源下兼顧精度,SE 注意力和復合縮放提升了表示能力 |
通用高效特征提取 | Xception / EfficientNet-B0 | Xception 多層深度可分離卷積能提取豐富特征;EfficientNet-B0 綜合效率與精度最佳 |
高精度離線推理 | EfficientNet-B4 / B7 | 高精度需求、計算資源充足時優選 |
研究新架構對比基線 | Xception / EfficientNet | 經典模塊化設計與復合縮放策略,常見于論文對比基線 |
小結
-
Xception:將 Inception 極端化,全面引入深度可分離卷積,性能優異但計算量大;
-
MobileNet 系列:輕量化代表,從 v1 的寬度/分辨率乘子到 v2/v3 的結構改進(倒殘差、SE),適合移動與邊緣場景;
-
EfficientNet 系列:最系統的復合縮放策略,在各資源預算下取得最優精度/效率平衡,是當前輕量化高性能網絡的旗艦。
五、ResNet
????????Residual Network(ResNet)由 Kaiming He 等人在 2015 年提出,論文題為 “Deep Residual Learning for Image Recognition”。它在 ILSVRC-2015 比賽中以顯著優勢(Top-5 錯誤率 3.57%)奪冠,解決了“網絡加深反而性能下降”的難題,開啟了百層以上超深網絡的時代。
1、ResNet 系列
(1)殘差學習(Residual Learning)動機
-
隨著網絡深度增加,傳統的“堆疊卷積→ReLU”結構出現 退化現象:更深網絡反而在訓練/驗證上損失更高。
-
ResNet 提出殘差模塊(Residual Block),讓網絡學習殘差映射
通過“旁路”直連(identity shortcut),保證主分支至少能學習到恒等映射 x,從而緩解退化、加速收斂。
(2)殘差模塊結構
2.1 基本殘差塊(Basic Block)
用于 ResNet-18/34,結構如下:
輸入 x↓ Conv3×3, C→C, stride s↓ BatchNorm → ReLU↓ Conv3×3, C→C, stride 1↓ BatchNorm↓ + Shortcut(x) ?——→ ReLU↓ 輸出
-
Shortcut 分支:當輸入輸出通道或空間尺寸不一致時,用 1×1 卷積 + BatchNorm 做對齊;否則直接恒等映射。
-
參數量:每個 Basic Block ≈ 2×(3×3×C×C) 卷積參數。
2.2 瓶頸殘差塊(Bottleneck Block)
用于 ResNet-50/101/152,將 3×3 卷積分為三段:
輸入 x↓ 1×1 Conv, C→C/4 ?↓ BatchNorm → ReLU↓ 3×3 Conv, C/4→C/4, stride s↓ BatchNorm → ReLU↓ 1×1 Conv, C/4→C ?↓ BatchNorm↓ + Shortcut(x) ?——→ ReLU↓ 輸出
-
思路:先降維(1×1),再做計算(3×3),再升維(1×1),大幅減少計算量。
-
參數量:每個 Bottleneck Block ≈??
總和。
(3)ResNet 系列典型變體
版本 | 層數 | Block 類型 | 每個 Stage Block 數量 | 參數量 | Top-1 ImageNet 精度 |
---|---|---|---|---|---|
ResNet-18 | 18 | Basic | [2,2,2,2] | 11.7M | ~69.8% |
ResNet-34 | 34 | Basic | [3,4,6,3] | 21.8M | ~73.3% |
ResNet-50 | 50 | Bottleneck | [3,4,6,3] | 25.6M | ~76.2% |
ResNet-101 | 101 | Bottleneck | [3,4,23,3] | 44.5M | ~77.4% |
ResNet-152 | 152 | Bottleneck | [3,8,36,3] | 60.2M | ~78.3% |
ResNet-200 | 200 | Bottleneck | [3,24,36,3] | ~64M | ~79.0% |
-
Stage:表示網絡中輸出特征圖尺寸相同的卷積塊組,每組下第一個 block 可能 stride=2 以做空間降采樣。
-
深度越大,提取特征更豐富,但計算與內存開銷也隨之上升。
(4)網絡總體流程
-
輸入處理
-
圖像縮放到 256×256,隨機裁剪 224×224;
-
隨機水平翻轉;
-
減去 ImageNet 訓練集 RGB 均值;
-
-
Stem 模塊
Conv7×7, stride=2, 64 filters → BatchNorm → ReLU → MaxPool3×3, stride=2
-
四個殘差 Stage
-
Stage1:C=64 輸出,塊數視版本而定
-
Stage2:C=128, 第一個塊 stride=2
-
Stage3:C=256, 第一個塊 stride=2
-
Stage4:C=512, 第一個塊 stride=2
-
-
全局平均池化 + 全連接
GlobalAvgPool → FC (1000) → Softmax
(5)訓練細節
-
優化器:SGD + momentum(0.9)
-
初始學習率:0.1,每隔 30 個 epoch 降為 1/10
-
批大小:256
-
權重衰減:1e-4
-
訓練周期:90 epoch
(6)優勢與局限
優勢
-
可訓練超深網絡:殘差連接有效解決退化與梯度消失問題,使網絡深度可擴展到上百層。
-
模塊化設計:Basic 與 Bottleneck 兩種可選結構,自由組合,易于擴展與改進。
-
遷移學習基石:ResNet 各版本預訓練權重廣泛用于目標檢測、分割、生成對抗等下游任務。
局限
-
計算與內存開銷大:尤其是 ResNet-50 以上的變體,不適合資源極度受限場景。
-
信息冗余:恒等映射旁路雖保留信息,卻也帶來一定冗余,后續 DenseNet 等嘗試更緊密特征復用。
-
網絡寬度固定:每個 Stage 通道數翻倍,可能不是最優分配,后續網絡(e.g. ResNeXt、Wide ResNet)對“寬度”做了更多探索。
(7)對后續網絡的影響
-
Wide ResNet:將 Bottleneck Block 通道數加寬,減少深度,取得更快收斂與更高精度;
-
ResNeXt:在殘差基礎上引入“分組卷積+聚合”(cardinality)概念;
-
DenseNet:用“密集連接”替代恒等旁路,實現更強特征復用;
-
Res2Net、ResNeSt:細化殘差單元內部結構、引入注意力機制,進一步提升性能。
(8)小結
????????ResNet 通過殘差學習的核心思想,成功擊破“網絡過深退化”難題,使得超深網絡訓練成為可能。其模塊化、易擴展的設計,不僅在分類任務中大放異彩,更成為現代各類視覺任務的基礎 Backbone。深入理解 ResNet 的原理與架構,有助于把握深度網絡設計要點,并為創新高效網絡提供重要啟示。
2、ResNet 的改進(概述)
????????以下是 ResNet 自問世以來,社區和產業界在“殘差學習”基礎上所作的主要改進與衍生網絡,按改進思路可分為“結構改進”“寬度/基數探索”“連接模式創新”“注意力/自適應模塊”四大類。
(1)結構改進
網絡 | 主要改進點 |
---|---|
ResNet-v2 | “Pre-activation” 版本,將 BatchNorm→ReLU 置于殘差分支前端,顯著加快收斂并提高精度。 |
ResNet-D | 在空間降采樣處(stride=2)對 shortcut 分支做輕量卷積填充、避免信息丟失,提升小物體識別性能。 |
Stochastic Depth | 對殘差分支隨機丟棄(訓練時每個 block 以一定概率跳過),起到正則化作用,加速超深網絡訓練。 |
Pre-activation ResNeXt | 將 ResNeXt 與 Pre-activation 結合,兼具多分支聚合和更穩定的梯度流。 |
(2)寬度與基數(Cardinality)探索
網絡 | 關鍵思路 |
---|---|
Wide ResNet | 減少深度、成倍增加每層通道數(width),在參數量相近下大幅提升精度;訓練和推理更快。 |
ResNeXt | 引入“基數”(cardinality)概念:將單個殘差塊拆分為多路等結構并行、再聚合(類似分組卷積),比增加深度或寬度更有效。 |
Res2Net | 在單個殘差塊內部進一步拆分“多尺度”子特征流,并做交互融合,增強塊內部的多尺度表示能力。 |
(3)連接模式與特征復用
網絡 | 創新點 |
---|---|
DenseNet | “密集連接”:每層與前面所有層直接連接,梯度和特征高度復用,大幅減少冗余、增強特征傳遞;參數量更少。 |
DualPathNet | 同時兼具 ResNet 的恒等旁路和 DenseNet 的密集連接,好處兼得——既有特征復用又保留殘差學習優勢。 |
PyramidNet | 隨網絡向深處,殘差塊的通道數以線性或指數方式累積增長,實現漸進式寬度提升,并結合預激活設計。 |
(4)注意力與自適應模塊
網絡 | 模塊/機制 |
---|---|
SENet | “Squeeze-and-Excitation”:對通道維度做全局信息壓縮與兩層 FC 生成通道權重,自適應重標定;2017 ILSVRC 冠軍。 |
CBAM | “Convolutional Block Attention Module”:在空間和通道兩個維度依次做注意力,用更少開銷提升表示能力。 |
SKNet | “Selective Kernel”:用不同大小卷積核并行,再通過軟注意力自適應融合各核響應,實現動態感受野選擇。 |
ResNeSt | 在殘差塊中引入“Split-Attention”分支,將多路特征分組后自適應融合,并結合全局上下文或位置信息,效果優于 SENet/CBAM。 |
(5)其他優化
-
Shake-Shake / ShakeDrop:在 ResNeXt 基礎上對多分支輸出做隨機加權或丟棄,進一步正則化。
-
EfficientNet-ResNet 混合:基于 EfficientNet 的復合縮放策略,使用殘差或注意力模塊,取得更優精度/效率平衡。
-
RegNet 系列:從可解釋參數化設計出發,直接搜索一族高效、可伸縮的網絡寬度與深度配置,并可結合殘差結構。
(6)小結與選型建議
-
訓練更深:選擇 ResNet-v2、ResNet-D + Stochastic Depth,可輕松訓練百層以上網絡且更穩定。
-
資源受限:
Wide ResNet
(參數量適中、精度高、推理快)或ResNeXt
(基數可調、通用性好)。 -
特征復用:
DenseNet
/DualPathNet
,在輕量級場景中也能取得不俗性能。 -
注意力增強:在 ResNet 基礎上加 SE/CBAM/Split-Attention 模塊,可幾乎“零”額外深度提升精度。
-
自動化設計:考慮
RegNet
或EfficientNet+Residual
混合模型,用可解釋的設計原則或 NAS 產生的配置,平衡精度與效率。
以上網絡針對「更深更寬」「更高效特征利用」「更智能注意力分配」等不同維度,對 ResNet 做出了多樣化改進,可根據應用場景和算力預算酌情選擇與組合。