天天看點

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

每日一問04

Question:激活函數ReLU和Sigmoid那個效果更好?

文章目錄

  • 每日一問04
    • Question:激活函數ReLU和Sigmoid那個效果更好?
      • Sigmoid
      • ReLU
      • 對比
        • Sigmoid不是零中心的
        • Sigmoid的梯度消失問題
        • ReLU的稀疏性

首先我們先了解ReLU和Sigmoid函數具體是什麼樣的

Sigmoid

Sigmoid函數對應的公式為:

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

Sigmoid函數對應的圖像為:

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

ReLU

ReLU對應的圖像為:

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

對比

Sigmoid不是零中心的

為什麼說Sigmoid不是零中心的呢,我們可以通過對Sigmoid函數進行求導可以分析,

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

是以sigmoid函數的導數為

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

而我們通過Sigmoid函數圖像可以看到,在整個坐标軸上Sigmoid時恒大于零且小于1的,是以sigmoid函數的導數是恒大與零的。

既然sigmoid函數的導數是恒大與零的這就意味着在進行梯度下降進行w參數更新的時候w的更新值隻與神經元的輸入有關,當輸入為正時,w向x正向更新,當輸入為負時w向y軸負方向更新,這就導緻梯度下降級重更新時呈“Z”字型下降,進而導緻權重的優化效率。

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

Sigmoid的梯度消失問題

Sigmoid對應的導函數圖像如圖

每日一問04 ——激活函數ReLU和Sigmoid那個效果更好?每日一問04

由圖可以看到Sigmoid的導數隻有在0附近時梯度較大具有很好的激活性,而在正負飽和區,尤其是在小于-5和大于5的區域,梯度幾乎為0,而這個梯度将會與整個損失函數關于該神經元輸出的梯度相乘,那麼相乘的結果也會接近零,這會導緻梯度消失。

ReLU的稀疏性

ReLU激活函數求導不涉及浮點運算,是以速度更快。

由ReLU圖像可以看到,在x正半軸的梯度始終為1;在x負半軸梯度始終為0;z等于零時的梯度可以當成1也可以當成0,實際應用中并不影響。

是以對于隐藏層,選擇ReLU作為激活函數,能夠保證z大于零時梯度始終為1,進而提高神經網絡梯度下降算法運算速度。而當輸入z小于零時,ReLU存在梯度為0的特點,一旦神經元的激活值進入負半區,那麼該激活值就不會産生梯度/不會被訓練,雖然減緩了學習速率,但也造成了網絡的稀疏性——稀疏激活,這有助于減少參數的互相依賴,緩解過拟合問題的發生。

繼續閱讀