詳細解釋
Softmax是將任意實數向量轉換為概率分布的函數,輸出值在(0,1)之間且和為1,是多分類神經網絡的標準輸出層激活函數。
數學定義:
- Softmax(x_i) = e^(x_i) / Σ_j e^(x_j)
- 輸入:任意實數向量(logits)
- 輸出:概率分布(非負,和為1)
特性:
- 歸一化:輸出和為1
- 正值:所有輸出>0
- 放大差異:指數放大輸入差異
- 可微:處處可導,便於梯度下降
為何有效:
- 概率解釋:自然對應多分類概率
- 與交叉熵配合:導數簡潔(預測-真實)
- 數值穩定:實現時減去最大值防止溢出
- 梯度友好:反向傳播計算高效
應用場景:
- 多分類輸出:圖像分類、文本分類
- 注意力機制:計算注意力權重分布
- 強化學習:策略網絡的動作概率
- 詞嵌入:某些嵌入方法的正規化
數值穩定:
- 問題:大指數導致溢出
- 解決:Softmax(x) = Softmax(x - max(x))
- 效果:數值範圍可控
溫度參數:
- Softmax(x/T):T是溫度
- T→0:趨向one-hot(硬選擇)
- T→∞:趨向均勻分布
- 應用:知識蒸餾、採樣多樣性控制
與Sigmoid的關係:
- 二分類:Sigmoid等價於2類Softmax
- 多分類:Softmax是Sigmoid的推廣
- 獨立標籤:多標籤用多個Sigmoid
變體:
- Hardmax:嚴格的one-hot(不可微)
- Sparsemax:稀疏概率分布
- Softmax的各種數值優化
Softmax是多分類神經網絡的標準輸出函數。