啟用函式的比較,sigmoid,tanh,relu

2022-04-11 15:25:47 字數 1534 閱讀 3294

如下圖,在神經元中,輸入inputs通過加權、求和後,還被作用了乙個函式。這個函式就是啟用函式activation function

如果不用啟用函式,每一層輸出都是上層輸入的線性函式,無論神經網路有多少層,輸出都是輸入的線性組合。與沒有隱藏層效果相當,這種情況就是最原始的感知機了。

使用的話,啟用函式給神經元引入了非線性因素,使得神經網路可以任意逼近任何非線性函式,這樣神經網路就可以應用到眾多的非線性模型中。

(1)sigmoid函式

導數:等式的證明也很簡單。sigmoid函式也叫logistic函式,用於隱層神經元輸出,取值範圍為(0,1)

sigmoid缺點:

為何出現梯度消失:

sigmoid原函式及導數圖如下圖所示:

由圖可知,導數從0開始很快又趨近於0,易造成"梯度消失"現象

(2)tanh函式(雙曲正切)

取值範圍[-1,1]。0均值,實際應用中tanh比sigmoid要好

(3)relu

公式:

輸入訊號 < 0時,輸出都是0;輸入 > 0時,輸出等於輸入

1. relu更容易優化,因為其分段線性性質,導致其前傳、後傳、求導都是分段線性的。而傳統的sigmoid函式,由於兩端飽和,在傳播過程中容易丟失資訊

2. relu會使一部分神經元輸出為0,造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合。

3. 當然現在也有一些對relu的改進,比如lrelu、prelu,在不同的資料集上會有一些訓練速度上或者準確率上的改進。

4. 現在主流的做法,是在relu之後,加上一層batch normalization,盡可能保證每一層網路的輸入具有相同的分布。

relu的缺點:

訓練的時候很"脆弱",很容易"die"

例如:乙個非常大的梯度流過乙個relu神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了,那麼這個神經元就永遠都會是0.

(4)softmax函式

softmax-用於多分類神經網路輸出

上圖所示,如果某個 zj 大過其他 z,那這個對映的分量就逼近於1,其他逼近於0,主要應用於多分類

為什麼要取指數?

1. 模擬 max 的行為,讓大的更大

2. 需要乙個可導函式

啟用函式的比較

在深度網路中啟用函式的作用 引入非線性。提公升網路的表達能力 啟用函式的對比 sigmoid sigmoid的計算量大 相比relu 反向傳播容易出現梯度消失,輸出均大於0,使得輸出均值不為0,出現偏移現象。tanh 雙曲正切計算量更大,依然有軟飽和性 relu 收斂速度比sigmoid和tanh快...

啟用函式比較

sigmoid 和 relu 比較 sigmoid 的梯度消失問題,relu 的導數就不存在這樣的問題,它的導數表示式如下 曲線如圖 對比sigmoid類函式主要變化是 1 單側抑制 2 相對寬闊的興奮邊界 3 稀疏啟用性。sigmoid 和 softmax 區別 softmax is a gene...

深度學習啟用函式比較

一 sigmoid函式 1 表示式 2 函式曲線 3 函式缺點 反向求導 而其中 所以,由上述反向傳播公式可以看出,當神經元數值無線接近1或者0的時候,在反向傳播計算過程中,梯度也幾乎為0,就導致模型引數幾乎不更新了,對模型的學習貢獻也幾乎為零。也稱為引數瀰散問題或者梯度瀰散問題。同時,如果初始權重...