iPAS AI 應用規劃師 初級 科目一 人工智慧基礎概論

影片分類模型的輸出要是「各類別的機率」,用哪個函數?

原題 09

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

白話

影音串流平台要建一個神經網路,預測用戶最可能感興趣的影片類型。模型的輸出層必須把結果轉換成「各類別的機率分佈」——每個類別要有一個機率值,而且所有類別的機率加起來要等於 1,這樣系統才能依照機率高低來推薦內容。

問你:要讓輸出層產生「各類別的機率分佈」,應該用哪一種函數?

點選你的答案。

01 總結

一句話總結

多類別分類的輸出層需要「各類別機率加總為 1」的分佈,這正是 Softmax 函數的設計目的:把任意實數向量轉成加總為 1 的機率分佈。

02 情境

先感受問題:五個影片類型,機率要加起來等於 100%

假設你是「光影串流」平台的 AI 工程師,正在建立影片類型分類模型。平台的影片分成 5 個類型:動作片、愛情片、紀錄片、動畫、恐怖片。

模型分析了用戶的觀看歷史後,要回答:「這個用戶接下來最可能點哪種類型?」

你需要的輸出格式是:

  • 動作片:45%
  • 愛情片:20%
  • 紀錄片:15%
  • 動畫:15%
  • 恐怖片:5%

這 5 個數字加起來剛好是 100%(1.0),這樣系統才能依機率高低推薦內容。

問題:神經網路的最後一層(輸出層)輸出的是任意實數(可能是 -3、0.5、7 之類的數字),不是機率。你需要一個函數,把這些任意實數轉成「加總為 1 的機率分佈」,這個函數就是 Softmax。

03 對照

沒有正確輸出函數,推薦系統會怎樣

「光影串流」在確定使用 Softmax 之前,工程師嘗試過幾種錯誤方式:

  1. 直接用線性輸出:輸出可能是「動作片 3.2、愛情片 -0.5、紀錄片 7.1」,這些數字沒有機率的意義,系統不知道怎麼用「依機率高低排序」
  2. 用 ReLU:ReLU 把負數變 0,輸出「動作片 3.2、愛情片 0、紀錄片 7.1」,但這些數字加起來不等於 1,還是不是機率分佈
  3. 用 5 個 Sigmoid:每個類別分別輸出一個 0-1 的值,但 5 個 Sigmoid 輸出各自獨立,加起來可能是 2.3 或 0.8,不符合「機率加總為 1」的要求
  4. 手動歸一化:把輸出除以總和,但這跟 Softmax 比有數值穩定性問題,極端值容易造成計算不穩定
  5. 取最大值直接輸出 1/0:只告訴系統「最可能是哪一類」,但喪失了機率信息,系統無法按照信心程度做排序推薦
04 解法

Softmax 怎麼把任意數字變成機率分佈

Softmax 函數做的事可以用三個步驟理解:

第一步:讓所有值變成正數。對每個輸出值取 e 的指數(e^x),確保所有值都大於 0。原本是負數的輸出,經過這個操作也變成小的正數,不會再有負值。

第二步:算出總和。把所有類別的 e^x 加起來,得到一個總量。

第三步:各類別除以總和。每個類別的 e^x 除以總和,就得到該類別的機率。這樣做確保了:每個類別的值介於 0 到 1 之間,且所有類別的機率加起來剛好等於 1。

「光影串流」的模型輸出層使用 Softmax 後,每次給用戶推薦時都能輸出清晰的機率分佈,推薦系統按照機率高低排序,大幅提升推薦點擊率。

這就是選項 A 為什麼正確:Softmax 函數把輸出層的任意數值轉換為各類別的機率分佈,且所有類別機率加總為 1

技術版:四種激活函數的適用位置與特性

神經網路的激活函數在不同位置有不同的選擇邏輯:

隱藏層(Hidden Layer)常用:

  • ReLU:f(x) = max(0, x)。把負數變 0,正數不變。計算快、訓練時梯度消失問題少,是目前隱藏層的首選
  • 其他變體:Leaky ReLU、ELU、GELU,解決 ReLU 的「死亡神經元」問題

輸出層(Output Layer)的選擇取決於任務類型:

  • 多類別分類(互斥,只屬於一類)→ Softmax。輸出各類別機率,加總為 1
  • 二元分類(是或否)→ Sigmoid。輸出單一機率值,範圍 0-1
  • 多標籤分類(可同時屬於多類)→ 多個 Sigmoid。每個標籤獨立判斷,不要求加總為 1
  • 迴歸預測(預測連續數值)→ 線性(無激活函數)。輸出可以是任意實數

Softmax vs. Sigmoid 的關鍵區別:Softmax 輸出 K 個類別的聯合機率(加總=1),各類別有競爭關係,適合互斥類別。多個 Sigmoid 輸出各自獨立的機率(不加總=1),各類別互不影響,適合多標籤問題。

為什麼出題者要考這題:輸出層激活函數的選擇直接影響模型能解決什麼問題,錯選函數導致輸出無意義。AI 規劃師要能依任務類型選擇正確的輸出函數。

05 陷阱

為什麼其他選項是錯的

BSigmoid 函數(Sigmoid Function)

字面在說什麼

把任意實數壓縮到 0 到 1 之間的 S 型曲線函數,輸出可以解釋為「某件事的機率」。

為什麼不對

Sigmoid 用在二元分類(是/否,0/1)的輸出層,或多標籤分類(每個標籤獨立判斷)。問題是:5 個 Sigmoid 輸出的機率各自獨立,加總不等於 1(可能是 0.7+0.6+0.8+0.4+0.5=3.0),無法形成「各類別的機率分佈」,不符合本題需求。

誰會選錯

看到「機率」就聯想到 Sigmoid 的人。Sigmoid 確實輸出 0-1 的值,但它無法保證多個輸出加總為 1,這正是 Softmax 的差異所在。

C線性函數(Linear Function)

字面在說什麼

輸出等於輸入,不做任何非線性變換,輸出範圍是負無窮到正無窮的實數。

為什麼不對

線性函數輸出的是任意實數,不是機率。「動作片 3.2、愛情片 -0.5」這樣的輸出沒有機率意義,系統無法依機率高低推薦。線性輸出適合迴歸任務(預測連續數值),不適合分類任務的機率輸出。

誰會選錯

不熟悉輸出層函數選擇邏輯的人。記住:需要機率輸出就不能用線性函數,線性的輸出沒有機率的意義。

DReLU 函數(Rectified Linear Unit Function)

字面在說什麼

把負數輸出截斷為 0,正數保持不變(max(0, x)),是隱藏層最常用的激活函數。

為什麼不對

ReLU 的輸出是 0 到正無窮大的數字,不在 0-1 之間,也不保證加總為 1,無法輸出機率分佈。ReLU 是隱藏層的主角,不是輸出層的選擇(除非是迴歸且值必須為非負的特殊情況)。

誰會選錯

記得「ReLU 是最常用的激活函數」就選它的人。ReLU 常用是在隱藏層,輸出層的函數選擇完全取決於任務類型,不是最常用的就最好。

06 變形

同個考點下次怎麼變形

變形 1

預測一篇文章「可能屬於多個主題標籤」,輸出層應用什麼函數?

直覺

多個標籤可以同時成立,還是用 Softmax 嗎?

答案

這是多標籤分類(Multi-label Classification),一篇文章可以同時是「科技」和「商業」,兩個標籤不互斥。應用多個 Sigmoid(每個標籤一個),每個標籤獨立輸出 0-1 的機率,不要求加總為 1。Softmax 只用於「互斥類別」,即每筆資料只能屬於一個類別的情況。

變形 2

Softmax 輸出的「機率」和 Sigmoid 輸出的「機率」有什麼根本差別?

直覺

兩個都輸出 0-1 的值,但性質不同?

答案

Softmax 輸出的是「聯合機率分佈」:各類別互相競爭,一個類別機率高,其他類別機率就低,加總必須等於 1。Sigmoid 輸出的是每個輸出節點「各自獨立的機率」,節點之間沒有競爭關係,加總可以大於 1 或小於 1。

變形 3

隱藏層為什麼通常用 ReLU 而不是 Sigmoid?

直覺

隱藏層用什麼函數都行嗎?為什麼大家偏好 ReLU?

答案

Sigmoid 在輸入很大或很小時,梯度接近 0(梯度消失),深層網路的訓練會變得非常慢。ReLU 對正數輸入的梯度恆為 1,不會消失,讓深層網路訓練更快更穩定。計算上也更簡單,只是 max(0, x),不需要複雜的指數運算。

變形 4

模型輸出的 Softmax 機率很高(如 99%),代表模型一定是對的嗎?

直覺

Softmax 輸出 99% 的信心,模型一定是對的嗎?

答案

不代表。Softmax 只保證輸出是機率分佈,但不保證校準(Calibration)良好。訓練不良的模型可能對錯誤答案也輸出 99% 的信心。高信心輸出只說明模型「在這筆輸入上傾向這個類別」,不代表它真的正確。評估模型需要看實際的準確率,不是看輸出機率高低。

變形 5

迴歸任務的輸出層應該用什麼激活函數?

直覺

預測房價、氣溫這類連續數值,輸出層也要用特定函數嗎?

答案

通常不用激活函數(等同於線性激活),輸出直接是任意實數,因為預測目標可以是任何數值(例如房價可能是 100 萬到 1000 萬)。如果預測目標有限制(如只能是正數),可以用 ReLU 或 Softplus;如果目標在 0-1 範圍,可以用 Sigmoid。選擇由目標變數的值域決定。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 115 年第一次 iPAS AI 應用規劃師 初級 科目一 人工智慧基礎概論 第 9 題

查看官方原文 PDF