VGG16 的設計邏輯是:「先把影像看細,再把影像看深」。它將 13 層卷積層分成 5 個「戰鬥小組 (Groups)」:
|
戰鬥小組 |
內部層數 |
濾鏡深度 (Channels) |
物理任務
(Mission) |
權重層累計 |
|
Group 1 |
2 層卷積 |
64 |
捕捉邊緣、顏色、紋理 |
1, 2 |
|
Group 2 |
2 層卷積 |
128 |
組合簡單形狀(如圓形、十字) |
3, 4 |
|
Group 3 |
3 層卷積 |
256 |
辨識局部組件(如眼睛、輪胎) |
5, 6, 7 |
|
Group 4 |
3 層卷積 |
512 |
識別複雜物件(如整張臉、整台車) |
8, 9, 10 |
|
Group 5 |
3 層卷積 |
512 |
高階語義對齊(如情緒、場景屬性) |
11, 12, 13 |
|
小計 |
13 層 |
|
負責「看懂」特徵 |
13 層卷積 |
🛡️ 全連接層 (Linear)
當卷積層看懂特徵後,必須由最後的 3 層全連接層 進行最終裁決:
- 第 14 層 (Linear): 整合所有高階特徵(4096 個神經元)。
- 第 15 層 (Linear): 進一步抽象化(4096 個神經元)。
- 第 16 層 (Linear): 最終分類輸出(如 1000 類,對應 ImageNet)。
總結:13 (卷積) + 3 (全連接) = 16 層具備權重的層級。
D1: 核心概念 (Core Concept)
在深度學習框架(如 PyTorch)中,VGG16 被物理性地切分為兩大模組:features(特徵提取器 = 13 層卷積)與 classifier(分類器 = 3 層全連接)。
D2: 變數-物理映射表 (Physics Mapping Table)
|
變數 (Code) |
物理層級 |
考場直覺 (Battle
Intuition) |
|
model.features |
Group 1 ~ Group 5 |
「視覺神經」,負責看。 |
|
model.classifier |
Linear 14 ~ 16 |
「大腦判斷」,負責想。 |
|
Frozen |
requires_grad = False |
保持記憶,不再學習。 |
🛡️ 深度剖析:為何 VGG16 採用 2-2-3-3-3 配置?( 這背後涉及兩個核心的物理與工程考量:「解析度代價」與「特徵複雜度」)
1. 物理代價:解析度的高昂成本 (The Resolution Tax)
在 Group 1 和 Group 2,影像剛進來,尺寸非常大(例如 224x224 或 150x150)。
- 運算量 (FLOPs) 是與影像面積成正比的。
- 在大尺寸影像上多加一層卷積,產生的運算負擔是後層(影像已縮小)的 4 倍甚至 16 倍。
- 戰略決策: 為了讓模型能在當時的硬體(2014年)跑得動,設計者在影像尺寸最大的前兩組「節制」了層數。
2. 語義演進:簡單特徵 vs. 複雜特徵
- Group 1 & 2 (淺層): 任務只是找邊緣和顏色。物理上,這只需要 2 層 3x3 卷積(等效於 1 層 5x5 的視野)就足以看清。
- Group 3, 4, 5 (深層):
任務是辨識眼睛、鼻子、甚至整張臉。這些特徵具有高度非線性,需要更深的層數來提供足夠的「表達能力
(Expressiveness)」。
- 戰術對位: 簡單任務用淺層,複雜任務用深層。
3. 家族對比:VGG 其實有「強迫症版本」
VGG 並非只有 16 層。設計者當時實驗了一系列配置:
- VGG-13: 採用 2-2-2-2-2 配置(全部都是 2 層)。
- VGG-16: 採用 2-2-3-3-3 配置(現在考題的主角)。
- VGG-19: 採用 2-2-4-4-4 配置(追求極限深度)。
結論: VGG16 最終成為經典,是因為它在「準確度」與「計算成本」之間達到了物理上的黃金平衡。
D3: +1 ASCII ART 繪製 (Structural Mapping)
[ VGG16 實體構造 ]
/-----------------------------\
| [model.features] | <--- 包含所有 13 層卷積
| Group 1 (2層) |
| Group 2 (2層) |
| Group 3 (3層) |
| Group 4 (3層) |
| Group 5 (3層) |
\-----------------------------/
|
/-----------------------------\
| [model.classifier] |
| Linear 14, 15, 16 (3層) |
\-----------------------------/
資料來源:GEMINI CLI 變形金剛整理