激活函數 ReLU、LReLU、PReLU、CReLU、ELU、SELU 的定義和區別
ReLU

LReLU
(Leaky-ReLU)

PReLU

其中ai是可以學習的的。如果ai=0,那么 PReLU 退化為ReLU;如果 aiai是一個很小的固定值(如ai=0.01),則 PReLU 退化為 Leaky ReLU(LReLU)。
PReLU 只增加了極少量的參數,也就意味着網絡的計算量以及過擬合的危險性都只增加了一點點。特別的,當不同 channels 使用相同的ai時,參數就更少了。BP 更新ai時,采用的是帶動量的更新方式(momentum)。
tensorflow中:沒找到啊!
CReLU
(Concatenated Rectified Linear Units)

tensorflow中:tf.nn.crelu(features, name=None)
ELU


其中α是一個可調整的參數,它控制着ELU負值部分在何時飽和。
右側線性部分使得ELU能夠緩解梯度消失,而左側軟飽能夠讓ELU對輸入變化或噪聲更魯棒。ELU的輸出均值接近於零,所以收斂速度更快
tensorflow中:tf.nn.elu(features, name=None)
SELU

其實就是ELU乘了個lambda,關鍵在於這個lambda是大於1的。以前relu,prelu,elu這些激活函數,都是在負半軸坡度平緩,這樣在activation的方差過大的時候可以讓它減小,防止了梯度爆炸,但是正半軸坡度簡單的設成了1。而selu的正半軸大於1,在方差過小的的時候可以讓它增大,同時防止了梯度消失。這樣激活函數就有一個不動點,網絡深了以后每一層的輸出都是均值為0方差為1。
tensorflow中:tf.nn.selu(features, name=None)

PS:
Activation Function Cheetsheet