iPAS AI 應用規劃師 中級 科目一

Softmax 和 Max-Pooling 差在哪?

原題 08

關於 Softmax 與 Max-Pooling,下列敘述何者正確?

白話

問你:關於 Softmax 與 Max-Pooling,下列哪一個描述正確?

點選你的答案。

01 總結

一句話總結

Softmax 把所有輸入值轉換成「加起來等於 1 的比例」,保留所有資訊;Max-Pooling 則只取一個區域裡最大的那個值,其他值直接丟掉。兩者目的和位置完全不同。

02 情境

先感受問題:投票和找冠軍是兩回事

「識影 AI」是一家做影像辨識服務的公司,他們的模型要辨識照片裡是貓、狗、還是鳥。

模型最後一層輸出三個分數:貓 = 3.2,狗 = 1.5,鳥 = 0.8。

問題來了:這三個數字要怎麼變成「機率」?這就是 Softmax 的任務。

Softmax 的做法:把三個數字都轉成 0 到 1 之間的值,而且三個加起來 = 1。
結果可能是:貓 72%、狗 23%、鳥 5%。
注意:三個類別都還在,只是換成比例而已。

那 Max-Pooling 呢?它出現在模型更前面的地方,任務是「壓縮特徵圖(Feature Map)」。

想像特徵圖是一張 4x4 的格子,Max-Pooling 把它切成四個 2x2 的小區塊,每個區塊只留下最大的值,其他三個值直接丟棄,結果變成一張 2x2 的小格子。

所以,Softmax 保留了所有類別的資訊(只是換成比例),Max-Pooling 直接丟棄了大量資訊(只留最大值)。

03 對照

如果把 Softmax 和 Max-Pooling 的位置搞混,會發生什麼事?

  1. 模型輸出沒有機率意義:如果最後一層用 Max-Pooling,只會輸出「最大值是誰」,但不知道其他類別的相對可能性,無法做「我有 60% 把握是貓」這種軟性判斷。
  2. 梯度無法回傳到所有神經元:Max-Pooling 對非最大值的梯度為 0,如果用在分類輸出層,大量神經元的梯度永遠是 0,訓練很容易死掉。
  3. Softmax 用在特徵層會讓特徵失去尺度:Softmax 輸出加總 = 1,如果用在中間特徵層,所有特徵的「強度資訊」會消失,只剩相對比例,後面的層就沒辦法判斷特徵有多強。
  4. 分類輸出無法接損失函數:神經網路訓練需要 Softmax 輸出接 Cross-Entropy Loss,如果輸出不是機率分佈,Loss 計算就沒有意義。
  5. 語意上的混淆讓工程師寫錯架構:兩個都有「壓縮」的感覺,很容易搞混,但一個在 CNN 中間層壓空間維度,一個在最後一層壓輸出成機率,根本不同位置、不同目的。
04 解法

記住:Softmax 是「比例轉換」,Max-Pooling 是「丟棄保留最大」

識影 AI 的 CNN 模型架構是這樣的:

輸入影像 → 卷積層 → Max-Pooling 層(每個 2x2 區域留最大值,壓縮空間大小)→ 更多卷積層 → ... → 全連接層 → Softmax 層(把分數轉成機率)→ 輸出「貓 72%、狗 23%、鳥 5%」

Max-Pooling 的行為:把特徵圖某個 2x2 區域的四個值 [3, 1, 2, 4] → 只留下 4,其他丟掉。資訊有損失,但保留了「這個區域最顯著的特徵」。

Softmax 的行為:把最後三個分數 [3.2, 1.5, 0.8] → 全部保留,轉成 [0.72, 0.23, 0.05]。資訊沒有丟失(三個類別都還在),只是換成機率比例。

這就是選項 C 講的:Softmax 會保留所有輸入資訊,但以比例表示;Max-Pooling 只保留區域最大值

技術版:Softmax 和 Max-Pooling 的數學

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

Step 1 純故事版(不出現公式)

Softmax 像「選舉計票」:三個候選人(類別)各自得到一些票(分數),Softmax 把票數換成得票率,還是三個人,只是換成百分比,總和 100%。

Max-Pooling 像「選區代表制」:每個選區(2x2 區塊)只選出一個代表(最大值),其他候選人直接消失,最後只剩代表們組成的小議會(壓縮後的特徵圖)。

Step 2 中文 ↔ 公式對照
白話說法公式
Softmax:把第 i 個輸入轉成機率σ(z)_i = e^{z_i} / Σ_j e^{z_j}
所有類別機率加起來Σ_i σ(z)_i = 1
Max-Pooling:取區塊內最大值y = max(x_1, x_2, x_3, x_4)
輸出尺寸(步幅=2)H_out = (H_in - k) / stride + 1
Step 3 符號角色表
z_i
第 i 個類別的原始分數(logit),可以是任何實數
e^{z_i}
指數函數,確保輸出為正數
σ(z)_i
Softmax 輸出的第 i 個機率,值域 (0, 1)
max()
Max-Pooling 的核心操作,取最大值
k
Max-Pooling 的核大小(kernel size),常用 2×2
stride
步幅,Max-Pooling 每次移動多少格,常用 2
Step 4 完整公式對應
Softmax 公式:
輸入 z = [3.2, 1.5, 0.8]
e^3.2 = 24.53,e^1.5 = 4.48,e^0.8 = 2.23
總和 = 24.53 + 4.48 + 2.23 = 31.24
輸出 = [24.53/31.24, 4.48/31.24, 2.23/31.24]
     = [0.785, 0.143, 0.071](加總 ≈ 1)

Max-Pooling(2×2,stride=2):
輸入 4×4 特徵圖,切成四個 2×2 區塊
左上區塊 [3, 1, 2, 4] → 輸出 4
右上區塊 [5, 2, 1, 3] → 輸出 5
左下區塊 [1, 6, 2, 1] → 輸出 6
右下區塊 [3, 2, 4, 1] → 輸出 4
輸出 2×2 特徵圖:[[4, 5], [6, 4]]
Step 5 自我複述
  1. Softmax 的輸出為什麼一定是正數?(提示:e^x 恆正)
  2. Softmax 輸出的所有值加起來等於多少?為什麼?
  3. Max-Pooling 丟掉了哪些資訊?保留了什麼資訊?
  4. Max-Pooling 對輸入是「有損」還是「無損」壓縮?
  5. Softmax 通常在網路的哪個位置?Max-Pooling 呢?
05 陷阱

為什麼其他選項是錯的

選項 A 兩者都壓縮為單一最大值

字面在說什麼:Softmax 和 Max-Pooling 都把特徵壓縮成一個最大值。

為什麼不對:Softmax 的輸出數量和輸入一樣多(有幾個類別就輸出幾個機率),完全沒有壓縮成「單一值」。Max-Pooling 是每個區塊留一個最大值,但整體輸出仍是一個特徵圖(只是尺寸縮小),不是「單一最大值」。兩者都不符合這個描述。

誰會選錯:對兩個操作都沒有深入了解,看到 Softmax 有「max」字就以為它只取最大值的人。Softmax 裡的 max 其實指的是「讓最大的那個更突出」,而不是「只保留最大值」。

選項 B Max-Pooling 進行機率分佈轉換

字面在說什麼:Max-Pooling 會把輸入轉換成機率分佈。

為什麼不對:Max-Pooling 只是取最大值,沒有任何機率的概念,輸出不會加總為 1,也不是機率。把「輸入轉成機率分佈」是 Softmax 的工作,選項 B 把兩個功能完全搞反了。

誰會選錯:把 Max-Pooling 和 Softmax 的功能對調的人。這種混淆很常見,因為兩個詞都在深度學習裡很常出現,容易在記憶時互換。

選項 D Softmax 降維,Max-Pooling 分類

字面在說什麼:Softmax 的主要目的是降低特徵維度,Max-Pooling 用於產生分類輸出。

為什麼不對:完全顛倒。Max-Pooling 才是做空間降維(減少特徵圖的高度和寬度),Softmax 是在最後一層做分類輸出(把 logit 轉成機率)。Softmax 不降維,Max-Pooling 不做分類。

誰會選錯:只記得「Softmax 輸出比例、Max-Pooling 取最大」但沒有把它們放在網路架構位置上思考的人。關鍵是記住:Max-Pooling 在 CNN 中間壓縮特徵圖,Softmax 在最後一層輸出機率。

06 變形

同個考點下次怎麼變形

變形 1 邊界

直覺:如果模型有兩個類別(貓 vs 非貓),最後一層用 Softmax 還是 Sigmoid?

答案:兩個都可以,但習慣用法不同。二分類時常用 Sigmoid(輸出一個值代表「是貓的機率」),多類別才用 Softmax(輸出每個類別的機率)。用 Softmax 也沒錯,因為兩個類別的 Softmax 輸出等價於 Sigmoid。

變形 2 反例

直覺:Average-Pooling 和 Max-Pooling 有什麼差?

答案:Max-Pooling 取區塊最大值(保留最顯著特徵),Average-Pooling 取平均值(保留整體資訊)。Max-Pooling 更適合偵測「有沒有某個特徵存在」,Average-Pooling 更適合需要全局資訊的任務,如圖片分類後期的 Global Average Pooling。

變形 3 升級版

直覺:Softmax 輸出的機率可以直接當「模型有多確定」的指標嗎?

答案:不完全可以。Softmax 會讓輸出看起來很確定(例如 99% 的機率),即使模型實際上遇到了完全陌生的輸入(Out-of-Distribution)。這叫做「過度自信(Overconfidence)問題」,是模型校準(Calibration)研究的核心問題之一。

變形 4 跨領域

直覺:Transformer 的 Attention 裡用 Softmax 做什麼?

答案:Attention 計算 Query 和 Key 的相似度分數後,用 Softmax 把所有分數轉成「注意力權重」(加總 = 1)。這樣就能表示「對每個位置的 Value 分配多少注意力」,Softmax 在這裡依然是「把分數轉成比例」的角色。

變形 5 評估指標

直覺:要怎麼知道 Max-Pooling 層是否「壓縮過頭」,丟失了太多重要特徵?

答案:通常透過「消融實驗(Ablation Study)」:把 Max-Pooling 的 stride 改小(從 2 改 1),看模型準確率有沒有顯著提升。如果提升明顯,代表原來的壓縮太激進,丟失了重要空間資訊。也可以觀察特徵圖的激活模式(Activation Map)確認。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二次 iPAS AI 應用規劃師 中級 科目一 第 8 題

查看官方原文 PDF