Zubnet AI學習Wiki › Softmax
基礎

Softmax

別名:Softmax 函數、正規化指數
一個將原始數值向量(logits)轉換為機率分布的函數——所有值變為正值且總和為 1。Softmax 放大值之間的差異:最大的輸入獲得最高機率,較小的輸入獲得指數級更小的機率。它出現在注意力機制、分類輸出和 token 預測中。

為什麼重要

Softmax 在現代 AI 中無處不在。每當語言模型預測下一個 token 時,softmax 都會將原始模型輸出轉換為機率。每個注意力頭使用 softmax 來計算注意力權重。每個分類器使用 softmax 來產生類別機率。理解 softmax 有助於理解溫度、top-p 取樣,以及為什麼模型即使錯誤也會「自信滿滿」。

深度解析

公式:softmax(x_i) = exp(x_i) / ∑ exp(x_j)。指數函數放大差異:如果一個 logit 是 10,另一個是 5,softmax 後的比率不是 2:1,而是大約 150:1。這種「贏家通吃」的行為解釋了為什麼模型往往很自信——softmax 天生產生尖峰分布而非均勻分布。

溫度與 Softmax

溫度透過在 softmax 前對 logits 進行除法來應用:softmax(x_i / T)。溫度 T=1 是標準值。T<1 使分布更尖銳(更自信、更確定性)。T>1 使分布更平坦(更均勻、更隨機)。這正是 LLM API 中「溫度」參數的工作方式——它是在選擇下一個 token 的最終 softmax 之前應用於 logits 的純量。

數值穩定性

一個實作細節:對大值的 x 計算 exp(x) 會導致溢出。標準修正方法是在應用 softmax 前從所有 logits 中減去最大值:softmax(x_i - max(x))。這不會改變輸出(減去的常數在比率中消除),但能將數字保持在可管理的範圍內。每個生產環境的 softmax 實作都這樣做,而且這是從頭建構時很重要的細節。

相關概念

← 所有術語
← Sigmoid Speculative Decoding(推測性解碼) →
ESC