Softmax 函數 是什麼?
Softmax Function — Softmax 函數 的完整解釋
Softmax 函數是一種將數值轉換為機率分佈的數學工具,常用於多元分類模型,確保輸出總和為一
容易混淆
Sigmoid 函數 Sigmoid 像處理「二選一」的問題,把結果變成是或否的機率。 Softmax 則像處理「多選一」的問題,它會給每個選項一個機率,而且這些機率的總和保證是 1,讓你一次看到所有選項的可能性分佈。
最關鍵的區別:先看它是在比意思、比結構,還是在做任務輸出。
記住這句就好
多選一、而且總和要等於 1,就用 Softmax。
實際案例
圖片分類模型最後要在貓、狗、鳥之間選一個最可能類別。 語言模型生成下一個 token 時,要先把詞彙表分數轉成機率。
算法與應用
它會先對分數取指數,再做正規化,讓所有輸出都變成機率。 temperature 會影響分布尖銳程度,溫度低更保守,溫度高更分散。
情境判斷
Q1(直覺題): 如果模型最後要選一個類別,Softmax 合適嗎?
→ 合適。這就是它最典型的用途。
Q2(判斷題): 如果一個樣本可以同時屬於好幾個類別,還適合嗎?
→ 通常不適合。看情況,多標籤任務更常用 Sigmoid。
相關術語
常見問題
Softmax 函數的輸入可以是負數嗎?
可以。Softmax 函數可以接受任何實數作為輸入,包括負數。指數函數會將負數轉換為介於 0 和 1 之間的數值,因此 Softmax 函數仍然能夠產生有效的機率分布。
Softmax 函數的輸出一定是唯一的嗎?
不一定。如果輸入向量中存在相同的數值,那麼 Softmax 函數的輸出中也會存在相同的機率值。只有當輸入向量中的所有數值都不同時,Softmax 函數的輸出才是唯一的。
Softmax 函數在深度學習框架中如何使用?
在常見的深度學習框架(如 TensorFlow、PyTorch)中,Softmax 函數通常作為一個層(Layer)來使用,可以直接添加到模型的輸出層。框架會自動處理 Softmax 函數的計算和梯度反向傳播。