AI時代系列(4) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
5/100 第一週:深度學習基礎入門
5.激活函數介紹 🔥 ReLU、Sigmoid、Tanh 決定模型的生命力!
________________________________________
✅ 核心概念:
神經網路的每一層都會進行「加權總和」的計算,但如果沒有激活函數(Activation Function),整個網路就只是一個線性轉換,無法處理複雜的非線性問題。
📌 激活函數的任務:
為網路引入非線性能力,幫助模型「理解世界的複雜性」。
________________________________________
✅ 為什麼需要激活函數?
沒有激活函數 有激活函數
每層只做線性轉換(Wx + b) 每層可產生非線性效果(ReLU、Tanh)
多層結構等同一層 能建構複雜特徵抽象層
無法表示圖像、語言等非線性模式 可學習邊緣、語意、情感等高階概念
________________________________________
✅ 常見激活函數介紹:
1️⃣ Sigmoid f(x) = 1 / (1 + e^-x)
這個公式會把任何輸入轉換為0 到 1 之間的值,像是「壓縮器」。它會把很大的正數變成接近 1,把很小的負數變成接近 0。
👉 適合當作二分類的輸出層(像是是否為貓)。
2️⃣ Tanh f(x) = (e^x - e^-x) / (e^x + e^-x)
這個函數會把輸入轉換到 -1 到 1 的區間,而且是對稱的,中心在 0。比 Sigmoid 更「平衡」,適合輸出可能為正或負的狀況。
👉 常用在中間層來幫助數據歸一化。
3️⃣ ReLU f(x) = max(0, x) • 計算快,收斂快,解決梯度問題,是現今最主流選擇 • 輸入小於0時輸出為0,可能造成「死亡神經元」問題
如果輸入是正的,就輸出它本身;如果是負的,就輸出 0。簡單快速,讓神經網路學得快,不容易梯度消失。
👉 是目前最常用的激活函數,特別適合隱藏層。
4️⃣ Leaky ReLU f(x) = x if x>0 else αx • 改善 ReLU 死神經元問題 • 引入新超參數α,需要微調
這是 ReLU 的改進版,避免「負值就全變 0」導致神經元死掉的問題。對於負值輸入,也允許一點點輸出(α 是小常數,如 0.01)。
👉 適合在 ReLU 容易出現死神經元時替代使用。
5️⃣ Softmax f(xᵢ) = e^xᵢ / Σe^xⱼ • 適用於多分類輸出層,輸出為機率分布 • 多用於最後一層,不適合中間層
這個函數會把輸出轉換成「每一類的機率」,所有輸出加總為 1。數學上,它會強調最大值,把它「拉出來」。
👉 適用於多分類的輸出層(例如是狗、貓、鳥哪一種)。
✅ 激活函數選擇建議 🎯
使用場景: 建議激活函數
中間隱藏層 ReLU(或 Leaky ReLU)
二分類輸出層 Sigmoid
多分類輸出層 Softmax
輸出需介於 -1 ~ 1 Tanh
________________________________________
✅ ReLU 凌駕主流的原因?
1️⃣ 計算簡單,只需 max(0, x)
2️⃣ 避免 Sigmoid 的梯度消失問題
3️⃣ 使模型更快收斂,尤其適合深層網路
4️⃣ 搭配 Batch Normalization 表現更穩定
________________________________________
✅ 實作小提示(以 PyTorch 為例):
python
import torch.nn as nn
# 常見用法:
model = nn.Sequential(
nn.Linear(128, 64),
nn.ReLU(), # 中間層激活
nn.Linear(64, 10),
nn.Softmax(dim=1) # 輸出層激活(多分類)
)
這段程式碼使用 PyTorch 建立了一個簡單的順序神經網路模型(Sequential Model),主要用於處理多分類任務。輸入為 128 維的特徵向量,首先經過一個輸出為 64 維的全連接層(Linear Layer),再經過 ReLU 激活函數引入非線性,接著通過第二個全連接層將特徵壓縮為 10 維,最後使用 Softmax 函數將輸出轉換為機率分布,代表對 10 個類別的預測結果。這是一個典型的前饋神經網路架構,適合應用在如手寫數字識別、圖像分類等標準多類別問題上。
________________________________________
✅ 小結與啟示 💡
✅ 激活函數 = 模型生命力的來源
✅ ReLU 是深度學習的標配利器,效率與效果兼顧
✅ 選錯激活函數,模型可能「學不到東西」!
✅ 真正的智慧模型,來自適當的激活 + 合理的結構設計
📌 一句話總結:
激活函數的數學公式決定了每個神經元「如何對輸入做出反應」,從而賦予神經網路學習非線性模式的能力。










