機器學習基礎
在堆疊許多層的神經網路中,若啟動函數使用S型函數,靠近輸入的層會難以學習,其理由為何者?
- AS型函數的導數最大只有0.25,因此在反向傳播中每經過一層梯度就變小,到靠近輸入的層時幾乎為0
- BS型函數的輸出不會落在0到1的範圍內,因此每經過一層值就變大,造成計算溢位
- CS型函數有無法微分的點,因此在反向傳播中會出現無法求出梯度的層
查看答案與解析
正確答案:A. S型函數的導數最大只有0.25,因此在反向傳播中每經過一層梯度就變小,到靠近輸入的層時幾乎為0
在反向傳播中,各層啟動函數的導數會依序乘到梯度上。S型函數的導數為 σ(z)(1 − σ(z)),最大只有0.25,因此例如經過10層後,梯度會變成 0.25¹⁰ ≈ 9.5 × 10⁻⁷ 那樣非常小。這稱為梯度消失。對策有使用在正的範圍導數為1的ReLU、加入讓訊號跳過層傳遞的殘差連接(跳躍連接)、改良權重的初始值,以及使用批次正規化等方法。
- A. 正確。小於1的導數不斷相乘,使梯度逐漸消失。
- B. S型函數的輸出落在0到1的範圍內,因此不會溢位。
- C. S型函數在所有點都可以微分。