深度學習 · 激活函數

ReLU 線性整流函數

負的歸零、正的照舊——一個「小折角」就給了深層網路彎曲決策邊界的能力。

f(x)=max(0,x)正區梯度=1緩解梯度消失Dead ReLU隱藏層預設

💡一句話定義

ReLU(Rectified Linear Unit,線性整流函數)f(x)=max(0, x):輸入是正數就原樣輸出,是負數就壓成 0。它是目前深層網路隱藏層最常用的激活函數。
f(x) = max(0, x)  →  x > 0:輸出 x | x ≤ 0:輸出 0
導數 f′(x) = 1(x>0)0(x<0)

別看它只是一個轉折點,這個「折角」就是關鍵的非線性來源。很多個 ReLU 神經元組合起來,網路就能拼出複雜的連續折線,把彎曲的資料切開。

🚰用「單向閥」來想

ReLU 就像水管上的止逆閥(單向閥):正向的水(正值)暢通無阻地流過去,反向的水(負值)直接被閥門擋成 0。相比 Sigmoid 那種「兩端都會塞住」的旋鈕,ReLU 在正向這一側完全不飽和,訊號和梯度都能順順地往下傳。

🎮互動:線性做不到、ReLU 做得到

橘點是被藍點包圍的「瑕疵特徵」,分布是彎的。切換兩個按鈕,看純線性只能畫直線(圈不出中心),而 ReLU 能折出多邊形邊界把橘點框起來。

正常影像特徵
瑕疵影像特徵 (非線性分佈)
線性決策邊界 (只能是直線) ❌ 災難:無法圈出中心瑕疵 非線性決策邊界 (多個 ReLU 組合出的連續折線) ✅ 成功獨立提取瑕疵特徵

模型初始化:線性狀態

圖中的橘色點是瑕疵特徵,被藍色的正常特徵包圍。這在真實影像分類中極為常見(例如複雜的紋理或瑕疵)。我們需要模型區分橘點與藍點。

請按下下方按鈕,觀察不同激活函數如何畫出分類邊界。

ReLU 為什麼這麼強?

🏎️計算極簡
只是一個 max(0, x) 比較,比指數運算的 Sigmoid 快非常多。
📈正區不飽和
x>0 時梯度恆為 1,反向傳播不被壓縮,緩解梯度消失
🕳️稀疏性
負區輸出 0,讓一部分神經元「不活化」,表示更稀疏、計算更省。
🧱好堆深
深層網路的隱藏層預設選擇,是 CNN、ResNet 等的標配。

💀Dead ReLU 與它的變體

ReLU 的代價:負區間輸出與梯度都是 0。如果一個神經元因為學習率過大或不良初始化,長期被推到負區,它就永遠輸出 0、再也收不到梯度——這叫 神經元死亡(Dying / Dead ReLU)。變體們就是為了補這個洞:

函數負區間做法特點
ReLU直接歸 0最快最簡單;但可能神經元死亡
Leaky ReLU給小斜率(如 0.01x)負區留一點梯度,避免完全死亡
PReLU斜率可學習負區斜率由訓練決定,更彈性
ELU負區用指數平滑輸出更接近零中心,收斂常更穩
GELU依機率平滑加權Transformer / BERT / GPT 常用
實務提醒:遇到大量神經元死亡、驗證表現卡住,先調小學習率、換好一點的初始化,再考慮換 Leaky ReLU / GELU。

自我檢測

Q1. ReLU 的公式與導數是什麼?
f(x)=max(0, x)。導數在 x>0 時為 1、x<0 時為 0(x=0 處通常取 0 或 1)。正區間導數恆為 1,是它緩解梯度消失的關鍵。
Q2. 為什麼 ReLU 能緩解梯度消失,Sigmoid 不行?
Sigmoid 兩端飽和、導數趨近 0,反向傳播連乘會讓梯度消失。ReLU 正區間導數恆為 1,不會壓縮梯度,所以深層網路能訓練得動。
Q3. 什麼是 Dead ReLU?怎麼緩解?
神經元長期落在負區、輸出與梯度都是 0,等於死掉不再更新。常因學習率過大或不良初始化造成。緩解方式:調小學習率、改良初始化,或改用 Leaky ReLU、PReLU、ELU、GELU。
Q4. ReLU 放在網路的哪裡?輸出層可以用嗎?
ReLU 主要用在隱藏層。輸出層要看任務:二分類用 Sigmoid、多分類用 Softmax、迴歸用線性輸出,通常不會把 ReLU 當成分類輸出層。

🎯重點整理

📝 iPAS 考點提醒

ReLU(線性整流)是最常用的激活函數,iPAS 深度學習常考(中級科目三)。重點:輸出取 max(0, x),正區間梯度恆為 1,有效緩解 Sigmoid 與 Tanh 的梯度消失、計算又快。易混點:負區間輸出 0 可能造成神經元死亡(Dead ReLU),改用 Leaky ReLU、PReLU、GELU 可改善。情境:CNN 與多數深層網路的隱藏層預設選 ReLU。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

ReLU 是什麼?

Rectified Linear Unit,f(x)=max(0, x):負的歸 0、正的原樣輸出,是深度學習最常用的激活函數。

ReLU 的優點?

計算極簡、正區間梯度恆為 1 不飽和、能緩解梯度消失、讓網路稀疏(部分輸出為 0),訓練快又有效。

什麼是 Dying ReLU 問題?

若神經元長期落在負區(輸出恆 0、梯度 0),它就死掉不再更新;常因學習率過大或不良初始化導致。

怎麼解決 Dying ReLU?

用變體如 Leaky ReLU(負區給小斜率)、PReLU、ELU、GELU,並搭配合適的學習率與初始化。

ReLU 和 Sigmoid 怎麼選?

隱藏層幾乎都用 ReLU 或其變體;Sigmoid 與 Softmax 留給需要機率的輸出層。

🧭 相關主題

← 返回 AI 學習與考證地圖