1. 程式人生 > >非線性激勵函式sigmoid,tanh,softplus,Relu

非線性激勵函式sigmoid,tanh,softplus,Relu

目前有四種常見的非線性激勵函式:

sigmoid函式:


tanh函式:


softplus函式:


Relu函式:


其對應得函式影象如下:

函式種類優點缺點
sigmoid函式在整個定義域內可導

gradient在飽和區域非常平緩,接近於0,很容易造成vanishing gradient的問題,減緩收斂速度

算啟用函式時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大

tanh函式在整個定義域內可導

gradient在飽和區域非常平緩,接近於0,很容易造成vanishing gradient的問題,減緩收斂速度

算啟用函式時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大

softplus函式
在整個定義域內可導算啟用函式時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大
ReLu函式

Relu的gradient大多數情況下是常數,有助於解決深層網路的收斂問題。

ReLU更容易學習優化。因為其分段線性性質,導致其前傳,後傳,求導都是分段線

Relu會使一部分神經元的輸出為0,這樣就造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合問題的發生,也更接近真實的神經元啟用模型。

如果後層的某一個梯度特別大,導致W更新以後變得特別大,導致該層的輸入<0,輸出為0,這時該層就會‘die’,沒有更新。當學習率比較大時可能會有40%的神經元都會在訓練開始就‘die’,因此需要對學習率進行一個好的設定。

需要注意的是:tanh特徵相差明顯時的效果會很好,在迴圈過程中會不斷擴大特徵效果顯示出來,但有是,在特徵相差比較複雜或是相差不是特別大時,需要更細微的分類判斷的時候,sigmoid效果就好了。 
還有一個東西要注意,sigmoid 和 tanh作為啟用函式的話,一定要注意一定要對 input 進行歸一話,否則啟用後的值都會進入平坦區,使隱層的輸出全部趨同,但是 ReLU 並不需要輸入歸一化來防止它們達到飽和。

還有兩種改進的激勵函式:

Leaky ReLu函式:


Maxout函式:


但是這兩種並不常用