iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用・114 年第二次・L23・第 42 題

VGG16 哪一層的參數量最多?

原題

VGG16 是由牛津大學 Visual Geometry Group (VGG) 在 2014 年提出的經典卷積神經網路(Convolutional Neural Network, CNN)架構。該模型以簡潔且規則的層堆疊設計聞名,廣泛應用於影像分類、特徵提取及遷移學習等任務。附圖程式碼載入了預訓練的 VGG16 模型,並輸出其完整層級結構及參數統計摘要(如附表,總參數約 138,357,544)。在深度神經網路中,不同層的參數量(parameter count)差異極大。有些層雖然數量少但計算量大,有些則相反。了解參數分佈情形,有助於模型壓縮與遷移學習設計。請問在 VGG16 中,下列何者的參數量最多?

白話

某動物園影像辨識專案的工程師載入了 VGG16 模型,並用 model.summary() 印出每層的參數量統計表。整個模型總參數約 1.38 億個,但不同類型的層,參數量差異非常大:有些層幾乎沒有參數,有些層卻佔了大半。

問你:在 VGG16 的所有層類型中,哪一種層的參數量最多?

一句話總結

VGG16 裡參數量最多的是全連接層(Linear):第一個全連接層 Linear-33 單獨就佔了約 1.027 億個參數(102,764,544),遠超過 13 層卷積層加總的 1,480 萬個。

情境

先感受問題:動物園影像辨識專案的參數帳本

某動物園想用 VGG16 辨識 200 種動物,工程師載入模型後用 torchsummary 印出每層的參數統計表,發現一個讓人驚訝的事:雖然模型前面有 13 層卷積層(Conv2d)負責掃描影像的特徵,但參數量最龐大的不是這些卷積層,而是後面的全連接層(Linear)。

為什麼會這樣?卷積層的設計很「省」:一個 3×3 的卷積核心只有 9 個權重,無論影像多大,這 9 個權重在整張影像上「滑動共用」,參數量相對少。

全連接層則完全不同:每個輸入神經元都要和每個輸出神經元連線,輸入有多少、輸出有多少,權重就有多少個乘積。VGG16 的第一個全連接層輸入維度高達 25,088(512 × 7 × 7),輸出 4,096 個神經元,光這一層就有 25,088 × 4,096 + 4,096 ≈ 1 億個參數。

舊方法

「卷積層在前面、數量多,參數一定最多」為什麼是錯覺?

  1. 層數多不等於參數多:VGG16 有 13 層 Conv2d,但每層的卷積核心很小(3×3),而且在空間上共享權重,所以 13 層加起來的參數也不及一個全連接層。
  2. 卷積層的「共享權重」特性:一個 3×3、輸入 512 通道、輸出 512 通道的卷積層,參數量只有 3×3×512×512 + 512 ≈ 2,359,808 個,而非 512×512×整張特徵圖大小。
  3. ReLU 激活函數沒有參數:ReLU 只是一個 max(0, x) 的函數,不帶任何可學習的權重,參數量是 0。
  4. 池化層也沒有參數:MaxPool2d 只是取窗口內的最大值,沒有可學習的參數。
  5. 全連接層的「密集連接」代價極高:一旦把二維特徵圖「攤平」成一維向量,每個元素都要和下一層的每個神經元相連,參數量是輸入維度 × 輸出維度,數字急劇膨脹。

新方法

全連接層:攤平後的密集連線代價

動物園工程師看到 model.summary() 的輸出,清楚看到參數分布:

  • 13 層 Conv2d 加總:約 14,714,688 個參數(佔總數約 10.6%)
  • Linear-33(第一個全連接層):102,764,544 個參數(佔總數約 74.3%)
  • Linear-36(第二個全連接層):16,781,312 個參數(佔總數約 12.1%)
  • Linear-39(第三個全連接層,輸出層):4,097,000 個參數(佔總數約 3.0%)
  • ReLU 和池化層:0 個參數

全連接層三層加起來佔了約 89.4% 的參數,其中第一層最多。這也是為什麼現代模型壓縮、遷移學習時,優先凍結卷積層、只訓練全連接層,因為全連接層才是真正的「參數大戶」。

這就是選項 B 講的:全連接層(Linear)的參數量最多。

錯選項

為什麼其他選項是錯的

A卷積層(Conv2d)

字面在說什麼

VGG16 的 13 層卷積層是參數量最多的層。

為什麼不對

卷積層雖然數量多(13 層),但每個卷積核只有 3×3=9 個權重,而且在整張特徵圖上共享,所以單層參數量遠小於全連接層。13 層卷積加起來約 1,471 萬個,而第一個全連接層單獨就有 1.027 億個,相差超過 6 倍。

誰會選錯

直覺上覺得「卷積層是 CNN 的核心,參數最多」,沒想到全連接層因為全員連線而遠超卷積層。

CReLU 激活函數

字面在說什麼

ReLU 層的參數量最多。

為什麼不對

ReLU(Rectified Linear Unit)是一個純數學運算 f(x) = max(0, x),沒有任何可學習的參數,參數量為 0。它只是對每個元素做一次非線性變換,不儲存任何權重。

誰會選錯

以為激活函數也有參數,或把「計算量多」誤解成「參數多」的人。ReLU 雖然在每次前向傳播中都要執行,但它不帶任何需要訓練的權重。

D池化層(MaxPool2d, AdaptiveAvgPool2d)

字面在說什麼

池化層是參數量最多的層。

為什麼不對

MaxPool2d 只是在一個窗口(如 2×2)內取最大值,不涉及任何可學習的參數,參數量同樣是 0。AdaptiveAvgPool2d 也一樣,只是取平均值,沒有權重。池化層的作用是降低空間維度,而不是學習特徵。

誰會選錯

覺得池化層「負責縮小特徵圖、一定很重要」,就以為它有很多參數。重要性和參數量是兩回事。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用 第 42 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。