1. 程式人生 > >深度學習幾種主流啟用函式總結

深度學習幾種主流啟用函式總結

啟用函式的定義

加拿大蒙特利爾大學的Bengio教授在 ICML 2016 的文章[1]中給出了啟用函式的定義:啟用函式是對映 h:R→R,且幾乎處處可導

啟用函式的性質

  • 非線性: 當啟用函式是線性的時候,一個兩層的神經網路就可以逼近基本上所有的函數了。但是,如果啟用函式是恆等啟用函式的時候(即),就不滿足這個性質了,而且如果MLP使用的是恆等啟用函式,那麼其實整個網路跟單層神經網路是等價的。
  • 可微性: 當優化方法是基於梯度的時候,這個性質是必須的。
  • 單調性: 當啟用函式是單調的時候,單層網路能夠保證是凸函式

為什麼要用啟用函式?

神經網路中啟用函式的主要作用是提供網路的非線性建模能力,如不特別說明,啟用函式一般而言是非線性函式。假設一個示例神經網路中僅包含線性卷積和全連線運算,那麼該網路僅能夠表達線性對映,即便增加網路的深度也依舊還是線性對映,難以有效建模實際環境中非線性分佈的資料。加入(非線性)啟用函式之後,深度神經網路才具備了分層的非線性對映學習能力。因此,啟用函式是深度神經網路中不可或缺的部分。

啟用函式可以幫助神經網路隔離噪聲點。即啟用有用的資訊,抑制無關的資料點。

sigmod函式

Sigmoid 是使用範圍最廣的一類啟用函式,具有指數函式形狀 。正式定義為:

 函式對應影象為:

優點:

  •  sigmoid函式的輸出對映在(0,1)之間,單調連續,輸出範圍有限,優化穩定,可以用於輸入的歸一化,也可以用作輸出層。
  •  求導容易

缺點:

  •  由於其軟飽和性,即容易產生梯度消失,導致訓練出現問題。
  •  其輸出並不是以0為中心的

說明:

飽和性可以分為軟飽和、硬飽和。其中,軟飽和是指函式的導數趨近於0,硬飽和是指函式的導數等於0。

Sigmoid 的軟飽和性,使得深度神經網路在二三十年裡一直難以有效的訓練,是阻礙神經網路發展的重要原因。具體來說,由於在後向傳遞過程中,sigmoid向下傳導的梯度包含了一個f'(x) 因子(sigmoid關於輸入的導數),因此一旦輸入落入飽和區,f'(x) 就會變得接近於0,導致了向底層傳遞的梯度也變得非常小。此時,網路引數很難得到有效訓練。這種現象被稱為梯度消失。一般來說, sigmoid 網路在 5 層之內就會產生梯度消失現象

[2]。梯度消失問題至今仍然存在,但被新的優化方法有效緩解了,例如DBN中的分層預訓練Batch Normalization的逐層歸一化,Xavier和MSRA權重初始化等代表性技術。

Sigmoid 的飽和性雖然會導致梯度消失,但也有其有利的一面。例如它在物理意義上最為接近生物神經元。 (0, 1) 的輸出還可以被表示作概率,或用於輸入的歸一化,代表性的如Sigmoid交叉熵損失函式

sigmoid的輸出均大於0,使得輸出不是0均值,稱為偏移現象,這將導致後一層的神經元將上一層輸出的非0均值的訊號作為輸入。關於原點對稱的輸入和中心對稱的輸出,網路會收斂地更好。

tanh函式

tanh的公式如下:

函式對應的影象如下:

優點:

  •  比sigmoid函式收斂速度更快。
  •  相比sigmoid函式,其輸出以0為中心。

缺點:

  •  依舊具有軟飽和問題。

說明:

Xavier在文獻[2]中分析了sigmoid與tanh的飽和現象及特點,具體見原論文。此外,文獻 [3] 中提到tanh 網路的收斂速度要比sigmoid快。因為 tanh 的輸出均值比 sigmoid 更接近 0,SGD會更接近 natural gradient[4](一種二次優化技術),從而降低所需的迭代次數。

ReLU函式

Relu的公式如下:

函式對應的影象如下:

優點:

  •  Relu具有線性、非飽和的特點,並且相比Sigmoid和tanh,Relu的收斂速度更快。
  •  Relu實現比較簡單。
  •  Relu有效緩解了梯度下降問題。
  •  提供了神經網路的稀疏表達能力

缺點:

  •  隨著訓練的進行,可能會出現神經元死亡,權重無法更新的情況。
  •  當x<0時,Relu是硬飽和的。

說明:

ReLU是一種後來才出現的啟用函式。從圖中可以看到,當x<0時,出現硬飽和,當x>0時,不存在飽和問題。因此,ReLU 能
夠在x>0時保持梯度不衰減,從而緩解梯度消失問題。然而,隨著訓練的推進,部分輸入會落入硬飽和區,導致對應權重無法更

新,這種現象被稱為“神經元死亡”。

與sigmoid類似,ReLU的輸出均值也大於0。偏移現象神經元死亡會共同影響網路的收斂性

啟用函式大面積沒有被啟用的原因可能是:1)初始化時,引數的設定使得ReLU沒有被啟用;2)學習速率太高,神經元在一定範圍內波動,可能會發生資料多樣性的丟失,這種情況下神經元不會被啟用,資料多樣性的丟失不可逆轉。

Leaky-ReLU 與 Parametric -ReLU函式

針對ReLU函式在x<0時的硬飽和問題,出現了Leaky-ReLU與P-ReLU進行改進,它們在形式上相似,不同的是在Leaky-ReLU中,α 是一個常數,實際中必須必須非常小心謹慎地重複訓練,從而選取合適的引數a;在P-ReLU中,α 可以作為引數來學習,自適應地從資料中學習引數。PReLU具有收斂速度快、錯誤率低的特點,可以用於反向傳播的訓練。

函式影象如下:

 Maxout函式

Maxout[2]是ReLU的推廣(出現在ICML2013),其發生飽和是一個零測集事件(measure zero event)。正式定義為:

Maxout網路能夠近似任意連續函式,且當w2,b2,…,wn,bn為0時,退化為ReLU。 其實,Maxout的思想在視覺領域存在已久。例如,在HOG特徵裡有這麼一個過程:計算三個通道的梯度強度,然後在每一個畫素位置上,僅取三個通道中梯度強度最大的數值,最終形成一個通道。這其實就是Maxout的一種特例。

Maxout能夠緩解梯度消失,同時又規避了ReLU神經元死亡的缺點,但增加了引數和計算量

ELU函式

ELU[3]融合了sigmoid和ReLU,具有左側軟飽性。其正式定義為:

 函式影象如下:

優點:

  •     ELU融合了sigmoid和ReLU,左側具有軟飽和性,右側無飽和性。右側線性部分使得ELU能夠緩解梯度消失,而左側軟飽能夠 讓ELU對輸入變化或噪聲更魯棒
  •     ELU的輸出均值接近於零,所以收斂速度更快。

啟用函式選擇的建議

1 ) 由於梯度消失問題,有時要避免使用sigmoid和tanh函式

2)ReLU函式基本用在隱藏層。使用 ReLU,一定要小心設定 learning rate,注意不要讓你的網路出現很多 “dead” 神經元

3)在人工神經網路(ANN)中,Softmax通常被用作輸出層的啟用函式。這不僅是因為它的效果好,而且因為它使得ANN的輸出值更易於理解。

  • softmax函式最明顯的特點在於:它把每個神經元的輸入佔當前層所有神經元輸入之和的比值,當作該神經元的輸出。這使得輸出更容易被解釋:神經元的輸出值越大,則該神經元對應的類別是真實類別的可能性更高。
  • softmax不僅把神經元輸出構造成概率分佈,而且還起到了歸一化的作用,適用於很多需要進行歸一化處理的分類問題。
  • softmax配合log似然代價函式,其訓練效果也要比採用二次代價函式的方式好:二次代價函式在訓練ANN時可能會導致訓練速度變慢的問題(初始的輸出值離真實值越遠,訓練速度就越慢)。這個問題可以通過採用交叉熵代價函式來解決(當啟用函式是sigmod時候),也可以通過softmax的log似然代價函式。

參考文獻

[1] Gulcehre, C., et al., Noisy Activation Functions, in ICML 2016.

[2] Goodfellow, I.J., et al. Maxout Networks.  ICML 2013

[3] Djork-Arné Clevert, T.U., Sepp Hochreiter. Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs). ICLR 2016

深度學習中的啟用函式導引