啟用函式(Activation function)
阿新 • • 發佈:2019-01-04
神經網路中使用啟用函式來加入非線性因素,提高模型的表達能力。
ReLU(Rectified Linear Unit,修正線性單元)
f(x)={0,x,x≤0x>0f(x)={0,x≤0x,x>0詳細公式ReLU:
f(x)其中σ(z)=∑i=1infσ(x−i+0.5)≈log(1+ex)≈max(0,x+N(0,1))=11+e−x(stepped sigmoid)(softplus function)(ReL function)(sigmoid)(1)(2)(3)(4)(1)f(x)=∑i=1infσ(x−i+0.5)(stepped sigmoid)(2)≈log(1+ex)(softplus function)(3)≈max(0,x+N(0,1))(ReL function)(4)其中σ(z)=11+e−x(sigmoid)
ReLU變種
Leaky ReLU
當x<0時,f(x)=αx,其中α非常小,這樣可以避免在x<0時,不能夠學習的情況當x<0時,f(x)=αx,其中α非常小,這樣可以避免在x<0時,不能夠學習的情況
f(x)=max(αx,x)f(x)=max(αx,x) 稱為Parametric Rectifier(PReLU)當α=0.01α=0.01時,是Leaky ReLU.
優點:
- 不會過擬合(saturate)
- 計算簡單有效
- 比sigmoid/tanh收斂快
指數線性單元ELU
f(x)={α(ex−1),x,x≤0x>0f(x)={α(ex−1),x≤0x,x>0由於需要計算指數,計算量較大
Maxout
函式影象為兩條直線的拼接,f(x)=max(wT1x+b1,wT2x+b2)f(x)=max(w1Tx+b1,w2Tx+b2)
那麼,前邊的兩種ReLU便是兩種Maxout.
啟用層函式選擇
-
最好不要用sigmoid,比如AlexNet等都不用sigmoid
-
首先試ReLU,速度快,但要注意訓練的狀態.
-
如果ReLU失效,試試Leaky ReLU或Maxout
-
試試tanh正切函式
在淺層神經網路中,如不超過4層的,可選擇使用多種激勵函式,沒有太大的影響。特別的,RNN中使用ReLU或tanh(三角函式tan);Hinge用於soft-margin svm演算法;log用於LR演算法(Logistric Regression);squared loss用於線性迴歸 (Liner Regression)和Boosting。