PRelu和一些激活函數


PRelu可以參考這篇文章:

https://www.cnblogs.com/catpainter/p/8406285.html

PReLU全名Parametric Rectified Linear Unit. PReLU-nets在ImageNet 2012分類數據集top-5上取得了4.94%的錯誤率,首次超越了人工分類的錯誤率(5.1%)。PReLU增加的計算量和過擬合的風險幾乎為零。考慮了非線性因素的健壯初始化方法使得該方法可以訓練很深很深的修正模型(rectified model)來研究更深更大的網絡結構。

  ReLU和PReLU圖像:

  PReLU的數學表達式(i代表不同的通道,即每一個通道都有參數不相同的PReLU函數):

 

 ai被初始化為0.25。

 

 

神經網絡為什么需要非線性激活函數?

非線性函數是指的一階導數不為常數的函數

線性函數的組合還是線性函數,所以網絡再深,最后輸出的還是線性函數。所以用非線性激活函數,神經網絡理論上可以逼近任意函數。

激活函數在神經網絡中的應用,除了引入非線性表達能力,其在提高模型魯棒性、緩解梯度消失問題、將特征輸入映射到新的特征空間以及加速模型收斂等方面都有不同程度的改善作用

 

常見的激活函數主要包括如下幾種:sigmoid函數、tanh函數、Relu函數、Leaky Relu函數、ELU函數。

 

 

 

以下參考這篇文章:

https://www.cnblogs.com/Joejwu/p/Joejwu_blog210618.html

《常用激活函數:Sigmoid、Tanh、Relu、Leaky Relu、ELU優缺點總結》

 

Sigmoid函數

 

 

 

 

優點:  1、將很大范圍內的輸入特征值壓縮到0~1之間,使得在深層網絡中可以保持數據幅度不會出現較大的變化,而Relu函數則不會對數據的幅度作出約束;
     2、在物理意義上最為接近生物神經元;
          3、根據其輸出范圍,該函數適用於將預測概率作為輸出的模型;
 
缺點:1、當輸入非常大或非常小的時候,輸出基本為常數,即變化非常小,進而導致梯度接近於0;
      2、輸出不是0均值,進而導致后一層神經元將得到上一層輸出的非0均值的信號作為輸入。隨着網絡的加深,會改變原始數據的分布趨勢;
      3、梯度可能會過早消失,進而導致收斂速度較慢,例如與Tanh函數相比,其就比sigmoid函數收斂更快,是因為其梯度消失問題較sigmoid函數要輕一些;
      4、冪運算相對耗時。
 
 
 
Tanh函數

與Sigmoid函數對比,可見這兩種激活函數均為飽和激活函數,該函數的輸出范圍在-1~1之間,其優缺點總結如下:
優點:1、解決了上述的Sigmoid函數輸出不是0均值的問題;
      2、Tanh函數的導數取值范圍在0~1之間,優於sigmoid函數的0~0.25,一定程度上緩解了梯度消失的問題;
      3、Tanh函數在原點附近與y=x函數形式相近,當輸入的激活值較低時,可以直接進行矩陣運算,訓練相對容易;
 
缺點:1、與Sigmoid函數類似,梯度消失問題仍然存在;
      2、觀察其兩種形式的表達式,即2*sigmoid(2x)-1與(exp(x)-exp(-x))/(exp(x)+exp(-x)),可見,冪運算的問題仍然存在;
 
 
Relu函數
 
 

 

 上圖即為Relu函數的曲線圖,可見在輸入為負值時,輸出均為0值,在輸入大於0的區間,輸出y=x,可見該函數並非全區間可導的函數;其優缺點總結如下:

優點:1、相較於sigmoid函數以及Tanh函數來看,在輸入為正時,Relu函數不存在飽和問題,即解決了gradient vanishing問題,使得深層網絡可訓練;
      2、計算速度非常快,只需要判斷輸入是否大於0值;
      3、收斂速度遠快於sigmoid以及Tanh函數;
      4、Relu輸出會使一部分神經元為0值,在帶來網絡稀疏性的同時,也減少了參數之間的關聯性,一定程度上緩解了過擬合的問題;
 
缺點:1、Relu函數的輸出也不是以0為均值的函數;
      2、存在Dead Relu Problem,即某些神經元可能永遠不會被激活,進而導致相應參數一直得不到更新,產生該問題主要原因包括參數初始化問題以及學習率設置過大問題;
      3、當輸入為正值,導數為1,在“鏈式反應”中,不會出現梯度消失,但梯度下降的強度則完全取決於權值的乘積,如此可能會導致梯度爆炸問題;
 
 
Leaky Relu函數
(a固定的話就是LRelu,不固定的話就是PRelu)
 
上圖即為Leaky Relu函數的示意圖,在x大於等於0時,y=x,x小於0時,y=α*x,圖中選擇的α值為0.1;其優缺點總結給如下:
優點:1、針對Relu函數中存在的Dead Relu Problem,Leaky Relu函數在輸入為負值時,給予輸入值一個很小的斜率,在解決了負輸入情況下的0梯度問題的基礎上,也很好的緩解了Dead Relu問題;
      2、該函數的輸出為負無窮到正無窮,即leaky擴大了Relu函數的范圍,其中α的值一般設置為一個較小值,如0.01;
 
缺點:1、理論上來說,該函數具有比Relu函數更好的效果,但是大量的實踐證明,其效果不穩定,故實際中該函數的應用並不多。
      2、由於在不同區間應用的不同的函數所帶來的不一致結果,將導致無法為正負輸入值提供一致的關系預測。

 

ELU函數

 

 圖中所示即為ELU函數,其也是Relu函數的一種變體,x大於0時,y=x,x小於等於0時,y=α(exp(x)-1),可看作介於Relu與Leaky Relu之間的函數;其優缺點總結如下:

優點:1、ELU具有Relu的大多數優點,不存在Dead Relu問題,輸出的均值也接近為0值;
   2、該函數通過減少偏置偏移的影響,使正常梯度更接近於單位自然梯度,從而使均值向0加速學習;
      3、該函數在負數域存在飽和區域,從而對噪聲具有一定的魯棒性;
 
缺點:1、計算強度較高,含有冪運算;
      2、在實踐中同樣沒有較Relu更突出的效果,故應用不多;

 

 

 

以下參考這篇文章:

https://www.cnblogs.com/makefile/p/activation-function.html

 

 

Maxout

Maxout可以看做是在深度學習網絡中加入一層激活函數層,包含一個參數k.這一層相比ReLU,sigmoid等,其特殊之處在於增加了k個神經元,然后輸出激活值最大的值.

 

 

優點:

  • Maxout的擬合能力非常強,可以擬合任意的凸函數。
  • Maxout具有ReLU的所有優點,線性、不飽和性。
  • 同時沒有ReLU的一些缺點。如:神經元的死亡。

缺點:
從上面的激活函數公式中可以看出,每個神經元中有兩組(w,b)參數,那么參數量就增加了一倍,這就導致了整體參數的數量激增。

 

與常規激活函數不同的是,它是一個可學習的分段線性函數.

然而任何一個凸函數,都可以由線性分段函數進行逼近近似。其實我們可以把以前所學到的激活函數:ReLU、abs激活函數,看成是分成兩段的線性函數,如下示意圖所示:

maxout-convex-func-approximate!

 

實驗結果表明Maxout與Dropout組合使用可以發揮比較好的效果。

前邊的兩種ReLU便是兩種Maxout,函數圖像為兩條直線的拼接。

 

 

 

梯度消失/爆炸原因及解決辦法

原因,淺層的梯度計算需要后面各層的權重及激活函數導數的乘積,因此可能出現前層比后層的學習率小(vanishing gradient)或大(exploding)的問題,所以具有不穩定性.

 

怎么解決,需要考慮幾個方面:

  • 權重初始化
    使用合適的方式初始化權重, 如ReLU使用MSRA的初始化方式, tanh使用xavier初始化方式.
  • 激活函數選擇
    激活函數要選擇ReLU等梯度累乘穩定的.
  • 學習率
    一種訓練優化方式是對輸入做白化操作(包括正規化和去相關), 目的是可以選擇更大的學習率. 現代深度學習網絡中常使用Batch Normalization(包括正規化步驟,但不含去相關). (All you need is a good init. If you can't find the good init, use Batch Normalization.)

 

梯度爆炸
由於sigmoid,ReLU等函數的梯度都在[0,1]以內,所以不會引發梯度爆炸問題。 而梯度爆炸需要采用梯度裁剪、BN、設置較小學習率等方式解決。

 

激活函數選擇

  1. 首先嘗試ReLU,速度快,但要注意訓練的狀態.
  2. 如果ReLU效果欠佳,嘗試Leaky ReLU或Maxout等變種。
  3. 嘗試tanh正切函數(以零點為中心,零點處梯度為1)
  4. sigmoid/tanh在RNN(LSTM、注意力機制等)結構中有所應用,作為門控或者概率值.
  5. 在淺層神經網絡中,如不超過4層的,可選擇使用多種激勵函數,沒有太大的影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM