激活函數(Rectified Linear Unit)
-
ReLU 的公式:
-
意思就是:輸入如果小於 0,就變 0;大於等於 0,就保持原樣
為什麼 CNN 要用激活函數
如果每一層都只有線性運算(例如卷積 + 加法),整個深度網路其實等價於一個大的線性變換,學不出複雜的非線性特徵。
激活函數的角色是「在每層之間加上非線性」,讓 CNN 可以學到像邊緣、形狀、物體等複雜模式。
ReLU 在 CNN 裡做了什麼
-
將負值全部壓成 0,留下正值不變 → 特徵變得「稀疏」,有點像「不重要的神經元直接關掉」。
-
因為它只是做 max(0, x),計算非常簡單,很快,也適合在大規模 CNN 中使用。
-
對於正區域,導數是 1,不會像 Sigmoid 那樣導數接近 0 容易造成梯度消失,所以更適合深層網路。
ReLU 的優點(為什麼 CNN 常用它)
-
計算簡單:只做一個比較和取最大值,很快。
-
減少梯度消失:在正區間梯度是常數 1,有利於深層網路訓練。
-
讓輸出稀疏:很多神經元輸出直接變 0,有助於一定程度的正則化和特徵選擇。
-
在大量實作上,效果很好,是目前深度學習中最主流的隱藏層激活選擇之一。
ReLU 的缺點與變體
-
缺點:如果某些神經元的輸入長期為負,它們輸出一直是 0,梯度也變成 0,這些神經元就「死掉」了,稱為「dead ReLU」問題。
-
常見改進:
-
Leaky ReLU:讓負區域也保留一點點斜率(例如 0.01x),減少死神經元。
-
Parametric ReLU、ELU 等也是為了改善類似問題。
-