Softmax Function(Softmax 函數)是什麼?

快速理解 Softmax 的公式、為什麼輸出會加總為 1,以及它和 Sigmoid 的差異。適合多分類模型、神經網路輸出層與 iPAS 快查。

英文
Softmax Function
主題標籤
神經網路、數學基礎
考點定位
非 iPAS 核心術語
最後更新
2026/07/29
Softmax Function(Softmax 函數)是什麼? 神經網路數學基礎
術語快查

搜尋意圖: 如果你在找「Softmax 是什麼」或「Softmax 和 Sigmoid 差在哪」,先抓核心:Softmax 會把多個分數轉成一組總和為 1 的機率分布。

TL;DR: Softmax 常放在多分類模型的輸出層,把每個類別的分數轉成機率。它不是單純把值壓到 0 到 1,而是讓所有類別一起競爭同一個總機率。

實用情境: 適合用在理解分類神經網路最後一層在做什麼,以及 iPAS 常見的「二分類用 Sigmoid、多分類用 Softmax」判斷題。

下一步: 先把 Softmax 和 Sigmoid 分清楚,再回頭看交叉熵損失,會更容易理解模型輸出和 loss 是怎麼配對的。

你有沒有在你要在多個候選答案中選出最可能的一個,發現只看表面常常不夠?

你可以把它想成把一堆分數重新整理成機率分布,而且全部加起來剛好是 1。

多元分類、詞彙選擇、注意力權重都需要這種可比較的機率形式。

你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。

容易混淆

Sigmoid 函數 Sigmoid 像處理「二選一」的問題,把結果變成是或否的機率。 Softmax 則像處理「多選一」的問題,它會給每個選項一個機率,而且這些機率的總和保證是 1,讓你一次看到所有選項的可能性分佈。

最關鍵的區別:先看它是在比意思、比結構,還是在做任務輸出。

記住這句就好

多選一、而且總和要等於 1,就用 Softmax。

實際案例

圖片分類模型最後要在貓、狗、鳥之間選一個最可能類別。 語言模型生成下一個 token 時,要先把詞彙表分數轉成機率。

算法與應用

它會先對分數取指數,再做正規化,讓所有輸出都變成機率。 temperature 會影響分布尖銳程度,溫度低更保守,溫度高更分散。

公式與計算

Softmax 把一組任意實數轉成一組加總為 1 的機率。對第 i 個輸出:

softmax(z_i) = exp(z_i) / Σ_j exp(z_j)

分母是所有輸出取指數後的總和,所以每個結果都落在 0 到 1 之間,全部加起來剛好是 1。

實際算一次,假設模型三個類別的原始輸出(logits)是 2.0、1.0、0.1:

步驟 類別 A 類別 B 類別 C
原始輸出 z 2.0 1.0 0.1
取指數 exp(z) 7.389 2.718 1.105
除以總和 11.212 0.659 0.242 0.099

結果是 65.9%、24.2%、9.9%,加起來等於 1。

注意指數的效果:原始輸出只差 1.0,機率就差了將近 2.7 倍。所以 softmax 會放大差距,原始分數的小幅變動會造成機率的大幅變動。

兩個實務上一定會遇到的細節

數值穩定性。 直接算 exp(z) 在 z 很大時會溢位。標準做法是先把每個 z 減掉這組裡的最大值再算,結果完全相同,因為分子分母同時乘上一個常數會互相抵消。所有主流框架的 softmax 都內建這個處理。

溫度(temperature)。 把 z 除以一個溫度參數 T 再做 softmax,T 大於 1 會讓分布變平緩,輸出更隨機;T 小於 1 會讓分布更尖銳,輸出更集中。大型語言模型的 temperature 參數就是這個東西。

情境判斷

Q1(直覺題): 如果模型最後要選一個類別,Softmax 合適嗎?

→ 合適。這就是它最典型的用途。

Q2(判斷題): 如果一個樣本可以同時屬於好幾個類別,還適合嗎?

→ 通常不適合。看情況,多標籤任務更常用 Sigmoid。

常見問題

Softmax 函數的輸入可以是負數嗎?

可以。Softmax 函數可以接受任何實數作為輸入,包括負數。指數函數會將負數轉換為介於 0 和 1 之間的數值,因此 Softmax 函數仍然能夠產生有效的機率分布。

Softmax 函數的輸出一定是唯一的嗎?

不一定。如果輸入向量中存在相同的數值,那麼 Softmax 函數的輸出中也會存在相同的機率值。只有當輸入向量中的所有數值都不同時,Softmax 函數的輸出才是唯一的。

Softmax 函數在深度學習框架中如何使用?

在常見的深度學習框架(如 TensorFlow、PyTorch)中,Softmax 函數通常作為一個層(Layer)來使用,可以直接添加到模型的輸出層。框架會自動處理 Softmax 函數的計算和梯度反向傳播。

常見比較

範例考題

某影音串流平台建立神經網路模型,用於預測使用者最可能感興趣的影片類型。模型輸出層需將結果轉換為各類別的機率分佈,以便系統依機率高低推薦內容。下列哪一種函數最適合用於模型輸出層?

  • A. Softmax 函數(Softmax Function) ✓ 正確答案
  • B. Sigmoid 函數(Sigmoid Function)
  • C. 線性函數(Linear Function)
  • D. ReLU 函數(Rectified Linear Unit Function)

解析:

Softmax 函數能將輸出轉換為機率分佈,使所有類別的機率總和為 1,適用於多類別分類問題。影片類型推薦需要在多個類別中選擇,Softmax 是最適合的輸出層函數。