1. 程式人生 > >深度學習基礎(七)—— Activation Function

深度學習基礎(七)—— Activation Function

1. Sigmoid

函式定義:

f(x)=11+ex
對應的影象是:
這裡寫圖片描述
優點:
  • Sigmoid函式的輸出對映在(0,1)之間,單調連續,輸出範圍有限,優化穩定,可以用作輸出層。
  • 求導容易。

缺點:

  • sigmoid容易飽和,出現梯度消失的現象。 sigmoid神經元的一個很差的屬性就是神經元的活躍度在0和1處飽和,它的梯度在這些地方接近於0。回憶在反向傳播中,某處的梯度和其目標輸出的梯度相乘,以得到整個目標。因此,如果某處的梯度過小,就會很大程度上出現梯度消失,使得幾乎沒有訊號經過這個神經元以及所有間接經過此處的資料。除此之外,人們必須額外注意sigmoid神經元權值的初始化來避免飽和。例如,當初始權值過大,幾乎所有的神經元都會飽和以至於網路幾乎不能學習。
  • Sigmoid 的輸出不是0均值的會導致後層的神經元的輸入是非0均值的訊號,這會對梯度產生影響:假設後層神經元的輸入都為正(e.g.x>0,f=wTx+b),那麼對w求區域性梯度則都為正,這樣在反向傳播的過程中w要麼都往正方向更新,要麼都往負方向更新,導致有一種捆綁的效果,使得收斂緩慢。 但是如果你是按batch去訓練,那麼每個batch可能得到不同的符號(正或負),那麼相加一下這個問題還是可以緩解。

2. Tanh

函式定義:

tanh(x)=1e2x1+e2x
對應影象:
這裡寫圖片描述
優點:
  • 相比Sigmoid函式,其輸出以0為中心。
  • 比Sigmoid函式收斂速度更快

缺點:

  • 還是沒有改變Sigmoid函式的最大問題——由於飽和性產生的梯度消失。

3. ReLU

函式定義:

y={0(x0)x(x>0)
對應影象:
這裡寫圖片描述

優點:

  • 相比起Sigmoid和tanh,ReLU(e.g. a factor of 6 in Krizhevsky et al.)在SGD中能夠快速收斂。
    這裡寫圖片描述
    • Sigmoid和tanh涉及了很多很expensive的操作(比如指數),ReLU可以更加簡單的實現。
    • 有效緩解了梯度消失的問題。
    • 在無監督預訓練的時候也能有較好的表現。
    • 提供了神經網路的稀疏表達能力。

缺點:

  • 隨著訓練的進行,可能會出現神經元死亡,權重無法更新的情況。如果發生這種情況,那麼流經神經元的梯度從這一點開始將永遠是0。也就是說,ReLU神經元在訓練中不可逆地死亡了。例如,當學習速率設定過快時,60%的網路都“掛了”(神經元在此後的整個訓練中都不啟用)。當學習率設定恰當時,這種事情會更少出現。

4. LReLU、PReLU與RReLU

函式定義:

f(yi)={yiif(yi>0)aiyiif(yi0)
對應影象:
這裡寫圖片描述

4.1 LReLU

ai比較小而且固定的時候,我們稱之為LReLU。LReLU最初的目的是為了避免梯度消失。但在一些實驗中,我們發現LReLU對準確率並沒有太大的影響。很多時候,當應用LReLU時,必須要選取出合適的ai,LReLU的表現出的結果才比ReLU好。

4.2 PReLU

PReLU是LReLU的改進,可以自適應地從資料中學習引數。PReLU具有收斂速度快、錯誤率低的特點。PReLU可以用於反向傳播的訓練,可以與其他層同時優化。

  • PReLU 只增加了極少量的引數,也就意味著網路的計算量以及過擬合的危險性都只增加了一點點。特別的,當不同channels使用相同的ai時,引數就更少了。
  • BP更新ai時,採用的是帶動量的更新方式:
    Δai:=μΔai+ϵεai
    注意:上式的兩個係數分別是動量和學習率。
  • 更新 ai 時不施加權重衰減(L2正則化),因為這會把 ai很大程度上 push 到 0。事實上,即使不加正則化,試驗中 ai也很少有超過1的。
  • 整個論文,ai被初始化為0.25。
  • PReLU具有收斂速度快、錯誤率低的特點,可以用於反向傳播的訓練,可以與其他層同時優化。

4.3 RReLU

公式:

yji={xjiif(xji>0)ajixjiif(xji0)
其中,aji是一個保持在給定範圍內取樣的隨機變數,在測試中是固定的。RReLU在一定程度上能起到正則效果。

4.4 ELU

公式: