線性整流函數 是什麼?

ReLU:線性整流函數 的完整解釋

線性整流函數(Rectified Linear Unit, ReLU)是深度學習中最常用的激活函數,將負值輸出設為零、正值保持不變,有效解決梯度消失問題並加速神經網路收斂。

核心概念

線性整流函數(ReLU)是一個極為簡單卻高效的非線性函數,數學形式為:

f(x) = max(0, x)

當輸入 x 為正數時,輸出等於輸入;當輸入 x 為零或負數時,輸出一律為零。這個「分段線性」特性使 ReLU 在計算上比傳統激活函數快上許多,同時又能為神經網路引入必要的非線性能力。

在神經網路中,激活函數的職責是讓網路能夠學習非線性的資料關係。若沒有激活函數,多層神經網路的效果等同於一層線性變換,無法擬合複雜的真實世界模式。

運作原理

正向傳播

每個神經元接收前一層的加權輸出後,套用 ReLU 函數:負值被截斷為零,正值原樣傳遞。這種截斷行為產生「稀疏激活(Sparse Activation)」效果,意即在任意一次前向傳播中,網路中只有部分神經元同時被激活,這使得模型在計算上更有效率,也有助於降低過擬合(Overfitting)風險。

反向傳播與梯度

ReLU 的梯度計算同樣簡潔:

  • 當 x > 0 時,梯度為 1
  • 當 x ≤ 0 時,梯度為 0

這使得正值區間的梯度不會因層數加深而衰減,有效解決了 Sigmoid 函數在深層網路中梯度消失(Vanishing Gradient)的問題。在深層網路(如 ResNet、VGG)中,梯度能夠順暢地從輸出層回傳至輸入層,加速收斂並支援更深的架構。

神經元死亡問題

ReLU 的一個已知缺陷是「Dead Neuron」現象:若某個神經元的輸入長期為負,其輸出與梯度均為零,參數將不再更新,該神經元等同永久失活。這種情況在學習率設定過高或負偏差初始化不當時更容易發生。

實際應用

影像辨識

ReLU 在 AlexNet(2012)取得突破性成果後迅速成為影像辨識任務的標準配置。卷積層後接 ReLU,能讓模型在數百層架構中仍保持有效的梯度傳播。

自然語言處理

Transformer 架構中的前饋層(Feed-Forward Network, FFN)通常採用 ReLU 或其變體(如 GELU),使語言模型能夠學習詞語之間的複雜關係。

推薦系統

深度神經網路型推薦系統(如 YouTube 推薦模型)廣泛使用 ReLU,將稀疏的用戶行為特徵映射到密集的嵌入空間並進行多層轉換。

常見誤區

誤區一:ReLU 一定比 Sigmoid 好

ReLU 在深層分類網路中通常較優,但輸出層若需要機率解釋(例如二元分類的輸出神經元),Sigmoid 仍是必要選擇。場景不同,最佳激活函數亦不同。

誤區二:所有負值輸入都代表無用資訊

ReLU 對負值一律截斷,這在某些任務中可能丟失有意義的資訊。Leaky ReLU 透過為負值保留微小斜率(如 0.01x)來緩解此問題,在部分任務中效果更好。

誤區三:ReLU 能解決所有梯度問題

ReLU 解決的是「梯度消失」問題,但在某些配置下仍可能出現「梯度爆炸(Exploding Gradient)」,需搭配批次正規化(Batch Normalization)或梯度裁剪(Gradient Clipping)一同使用。

與相關技術的比較

激活函數 正區間梯度 負區間梯度 計算成本 主要問題
Sigmoid 趨近 0 趨近 0 梯度消失
Tanh 趨近 0 趨近 0 梯度消失(較輕)
ReLU 1(線性) 0 神經元死亡
Leaky ReLU 1(線性) 0.01(固定小值) 負區間斜率需調整
GELU 平滑近似 1 平滑近似 0 計算略複雜

GELU(Gaussian Error Linear Unit)是目前大型語言模型(如 BERT、GPT 系列)中最常採用的激活函數,其平滑特性在自然語言任務上通常優於 ReLU,但 ReLU 仍在計算資源受限的視覺任務中占有一席之地。

常見問題