elus是「指數線性單元」,它試圖將啟用函式的平均值接近零,從而加快學習的速度。同時,它還能通過正值的標識來避免梯度消失的問題。根據一些研究,elus分類精確度是高於relus的。具有relu
的優勢,且輸出均值接近零,實際上prelu
和leakyrelu
都有這一優點。有負數飽和區域,從而對雜訊有一些魯棒性。可以看做是介於relu
和leakyrelu
之間的乙個東西。當然,這個函式也需要計算exp
,從而計算量上更大一些。
bert原始碼中有乙個神奇的啟用函式,那就是gelus,在啟用函式領域,大家公式的鄙視鏈應該是:elus > relu > sigmoid ,這些啟用函式都有自身的缺陷,sigmoid
容易飽和,elus
與relu
缺乏隨機因素。
bert原始碼給出的gelu**表示如下:
def gelu(input_tensor):
cdf = 0.5 * (1.0 + tf.erf(input_tensor / tf.sqrt(2.0)))
return input_tesnsor*cdf
gelus
其實是dropout、zoneout、relus的綜合,gelus
對於輸入乘以乙個0,1組成的mask
,而該mask的生成則是依概率隨機的依賴於輸入。假設輸入為x, mask為m,則m服從乙個伯努利分布 (φ(
x),φ
(x)=
p(x<=x
),x服
從正態分
布)(φ(x),φ(x)=p(x<=x), x服從正態分佈)
(φ(x),
φ(x)
=p(x
<=x
),x服
從正態分
布)這麼選擇是因為神經元的輸入趨向於正太分布,這麼設定使得當輸入x減小的時候,輸入會有乙個更高的概率被dropout掉,這樣的啟用變換就會隨機依賴於輸入了。
深度學習之啟用函式詳解
啟用函式是什麼 啟用函式,即activation function,有時候也稱作激勵函式。它是為了解決線性不可分的問題引出的。但是也不是說線性可分就不能用啟用函式,也是可以的。它的目的是為了使資料更好的展現出我們想要的效果。啟用函式在 用?比如乙個神經網路 為了更清晰的表示,我用紅色標出。比如像上面...
深度學習之啟用函式詳解
啟用函式是什麼?啟用函式,即activation function,有時候也稱作激勵函式.提到啟用函式,就不得不先說一下神經網路.神經網路中最基本的成分是神經元 neuron 模型,每個神經元與其他神經元相連.如果某神經元的電位超過了乙個 閾值 threshold 那麼它就會被啟用,即 興奮 起來....
什麼是啟用函式?常用的啟用函式
啟用函式是神經網路中的重要一環,也是神經網路之所以能叫 神經網路 的原因。初中應該就學過關於神經元的知識了。神經系統的結構和功能的基本單位是神經元,神經元的基本結構包括細胞體和突起兩部分神經元的功能是神經元接受刺激並能產生興奮 神經衝動 並能把興奮傳導到其它的神經元。也就是說其作用主要有三個 接受刺...