一個「擲骰子」的比喻,讓你輕鬆搞懂 AI 如何做選擇 (Softmax 原理)
李彼德的 AI 學習地圖
- 新手必讀: [AI 學習路線圖]|[監督式學習六步驟]
- 核心原理: [什麼是 DNN?] → [Attention 機制] → [Transformer 原理] → [BERT 模型]
- 實作工具: [Gemini 教學]|[Anaconda 安裝]|[Colab 教學]
今天來跟大家介紹的是softmax啟動函數,此函數是用在多元分類的問題。而sigmoid函數只能用在二元分類的問題。
多元分類問題代表分類類別超過2個以上。二元分類問題代表分類類別為2個。
為什麼softmax與sigmoid函數會有這樣的差異呢?
我們先來從擲骰子開始講起,假設有個公平的骰子,則擲出每個面的機率即為1/6,代表每個面出現機率相同,隨便擲出一顆骰子,都有可能落在任何一個面上。然後若是我們將所有面機率相加,則總和為1,代表是所有可能性。

如果今天要用類神經網路來計算每個節點的機率,則輸出總共會有六個節點,假設我們採用sigmoid函數在輸出節點做計算,則sigmoid函數只會確保每個節點是介於0~1之數值,跟其他節點並無相關聯,這時候會產生一個問題,就是將輸出結果全部相加,最後的數值並非為1。
我們在上方的骰子範例說明,將所有面機率加總一定需要為1,因為是所有可能性,而此時相加可能會大於1,這時候這些數值就不能代表會擲到某個面的機率,也因此,我們就無法用sigmoid函數去描述多元分類問題。

而softmax函數就是為了要解決這樣的問題,softmax函數的公式是在分母的部分會有加總的動作,這個加總指的是橫向針對不同節點數目的加總,舉例來說,以擲骰子的範例而言,總共會有六個面,有六個類別,則分母累加的N即為6,代表在分母會有六個exp函數相加。而且在計算過程中,分子是代表某個節點的輸出計算,但分母需要統合不同節點的結果計算加總之後才能得到。

最終將所有輸出結果加總後可得到結果為1,因此,可確保softmax在每個節點的輸出,就是代表屬於某個類別的機率(也就是擲骰子擲到某一個面的機率)。

影片說明: https://www.youtube.com/watch?v=3QJWUJphcss&t=118s
短影音介紹連結: https://www.youtube.com/shorts/NIE5DNHvGbE
想要看更多AI文章,更了解學習脈絡,請參考AI學習路線圖。
[最近AI原理文章]:
半監督式學習Semi-Supervised Learning
Stable Diffusion原理: 文字生成圖片簡易說明
[類神經網路基礎系列專文]:

3 Comments
Comments are closed.