深度學習神經網絡有四種常用激活函數,分别為sigmod,tanh,softmax,relu.下面總結了他們的優缺點以及如何選擇。
sigmod函數
函數形式
δ(x)=11+e−x δ ( x ) = 1 1 + e − x
函數圖像如下
對其求導有
δ′(x)=δ(x)(1−δ(x)) δ ′ ( x ) = δ ( x ) ( 1 − δ ( x ) )
tanh
函數形式:
g(x)=tanh(x)=ex−e−xex+e−x g ( x ) = t a n h ( x ) = e x − e − x e x + e − x
圖形為
其導函數為:
在隐藏層使用的效果優于sigmod
相同的缺點在x特别大或者特别小的時候,函數梯度會接近0,使得梯度下降的速度變慢。一般用在二分問題輸出層,不在隐藏層中使用。
relu
公式
f(x)=max(0,x) f ( x ) = m a x ( 0 , x )
圖形:
優點:
- 計算量小,速度快,相對于sigmod和tanh求導比較複雜,反向求導時會出現問題。
- Relu對SGD的訓練有加速作用。
- Relu會使一部分神經元的輸出為0,這樣就造成了網絡的稀疏性,并且減少了參數的互相依存關系,緩解了過拟合問題的發生。
缺點:
學習率設計得過大會造成梯度為0,導緻神經元死亡,并且是不可逆的。
PRelu
解決relu的缺點
f(x)=max(0,ax) f ( x ) = m a x ( 0 , a x )
softmax
小結:關于幾個函數的特點以及使用在實際面試過程中很容易被問到,是以這裡做一個總結。