詳細解釋
Tanh(雙曲正切)是將輸入映射到(-1, 1)的S型激活函數,輸出以0為中心,歷史上用於隱藏層,現代深度學習中已被ReLU取代,但在某些架構中仍有使用。
數學定義:
- tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))
- 輸出範圍:(-1, 1)
- 對稱性:tanh(-x) = -tanh(x),以0為中心
與Sigmoid的關係:
- tanh(x) = 2σ(2x) - 1
- Sigmoid:(0, 1)
- Tanh:(-1, 1),是Sigmoid的縮放平移
- Tanh通常優於Sigmoid
特性:
- 平滑可微:處處可導
- 零中心化:輸出均值接近0,有利於梯度更新
- 強烈飽和:|x|大時梯度→0
- 計算:比Sigmoid略快(無需單獨計算歸一化)
歷史應用:
- 隱藏層激活:比Sigmoid更受歡迎
- RNN/LSTM:循環網絡的標準激活(現代用其他激活)
- 自動編碼器:編碼器輸出的正規化
現代用途:
- 特定架構:某些RNN變體
- 輸出層:需要(-1,1)範圍的輸出
- 生成對抗網絡:某些GAN架構
- 標準化:將數據壓縮到特定範圍
梯度特性:
- 導數:tanh'(x) = 1 - tanh²(x)
- 最大梯度:1(在x=0)
- 最小梯度:→0(|x|→∞)
- 飽和問題:仍是深層網絡的問題
與ReLU的比較:
- Tanh:
- 雙側飽和
- 梯度消失問題
- 以0為中心(優點)
- ReLU:
- 單側飽和
- 無梯度消失(正區域)
- 非零中心化
- 現代首選
Tanh在現代深度學習中使用較少,但在特定場景仍有價值。