1.激活函數(shù)的作用
提供網(wǎng)絡(luò)的非線性建模能力
2.激活函數(shù)中的常見概念
飽和
當(dāng)一個激活函數(shù)h(x)滿足 limn→+∞h′(x)=0limn→+∞h′(x)=0 時,我們稱之為右飽和。?
當(dāng)一個激活函數(shù)h(x)滿足 limn→?∞h′(x)=0limn→?∞h′(x)=0 時,我們稱之為左飽和。?
當(dāng)一個激活函數(shù),既滿足左飽和又滿足又飽和時,我們稱之為飽和。
硬飽和與軟飽和
對任意的x,如果存在常數(shù)c,當(dāng) x > c 時恒有 h′(x)=0h′(x)=0 則稱其為右硬飽和。?
對任意的x,如果存在常數(shù)c,當(dāng) x < c 時恒有 h′(x)=0h′(x)=0 則稱其為左硬飽和。?
若既滿足左硬飽和,又滿足右硬飽和,則稱這種激活函數(shù)為硬飽和。?
如果只有在極限狀態(tài)下偏導(dǎo)數(shù)等于0的函數(shù),稱之為軟飽和。
3.常見的激活函數(shù)介紹
3.1 sigmoid
Sigmoid 是使用范圍最廣的一類激活函數(shù),具有指數(shù)函數(shù)形狀 。正式定義為:?
可見,sigmoid 在定義域內(nèi)處處可導(dǎo),根據(jù)上述對飽和的定義,其可被定義為軟飽和激活函數(shù)。
Sigmoid 的軟飽和性,使得深度神經(jīng)網(wǎng)絡(luò)在二三十年里一直難以有效的訓(xùn)練,是阻礙神經(jīng)網(wǎng)絡(luò)發(fā)展的重要原因。具體來說,由于在后向傳遞過程中,sigmoid向下傳導(dǎo)的梯度包含了一個f’(x) 因子(sigmoid關(guān)于輸入的導(dǎo)數(shù)),因此一旦輸入落入飽和區(qū),f’(x) 就會變得接近于0,導(dǎo)致了向底層傳遞的梯度也變得非常小。此時,網(wǎng)絡(luò)參數(shù)很難得到有效訓(xùn)練。這種現(xiàn)象被稱為梯度消失。一般來說, sigmoid 網(wǎng)絡(luò)在 5 層之內(nèi)就會產(chǎn)生梯度消失現(xiàn)象。
這里給出一個關(guān)于梯度消失的通俗解釋:
Sigmoid 函數(shù)能將負(fù)無窮到正無窮的數(shù)映射到0和1之間,并且對這個函數(shù)求導(dǎo)的結(jié)果是 f′(x)=f(x)(1?f(x))f′(x)=f(x)(1?f(x))。因此兩個0到1之間的數(shù)相乘,得到的結(jié)果就會變得很小了。神經(jīng)網(wǎng)絡(luò)的反向傳播是逐層對函數(shù)偏導(dǎo)相乘,因此當(dāng)神經(jīng)網(wǎng)絡(luò)層數(shù)非常深的時候,最后一層產(chǎn)生的偏差就因為乘了很多的小于1的數(shù)而越來越小,最終就會變?yōu)?,從而導(dǎo)致層數(shù)比較淺的權(quán)重沒有更新。
總而言之,sigmoid函數(shù)的優(yōu)缺點總結(jié)如下:
優(yōu)點:
Sigmoid 函數(shù)的輸出映射在(0,1)之間,單調(diào)連續(xù),輸出范圍有限,優(yōu)化穩(wěn)定,可以用作輸出層。它在物理意義上最為接近生物神經(jīng)元。
求導(dǎo)容易。
缺點:
由于其軟飽和性,容易產(chǎn)生梯度消失,導(dǎo)致訓(xùn)練出現(xiàn)問題。
?sigmoid函數(shù)的輸出均大于0,這就使得輸出不是0均值,這稱為偏置現(xiàn)象。這將會導(dǎo)致后一層的神經(jīng)元將得到上一層輸出的非0均值的信號作為輸入。(對數(shù)據(jù)的分布變動影響較大)
3.2 tanh
表達(dá)式如下:
圖像:
同樣的,Tanh 激活函數(shù)也具有軟飽和性。Tanh 網(wǎng)絡(luò)的收斂速度要比 Sigmoid 快。因為 Tanh 的輸出均值比 Sigmoid 更接近 0,SGD 會更接近 natural gradient(一種二次優(yōu)化技術(shù)),從而降低所需的迭代次數(shù)。
總結(jié)一下 Tanh 激活函數(shù)的優(yōu)缺點:
優(yōu)點:
比Sigmoid函數(shù)收斂速度更快。
相比Sigmoid函數(shù),其輸出以0為中心。
缺點:
還是沒有改變Sigmoid函數(shù)的最大問題——由于飽和性產(chǎn)生的梯度消失。
3.3 relu
ReLU。在近些年ReLU變得非常流行。它的函數(shù)公式是。換句話說,這個激活函數(shù)就是一個關(guān)于0的閾值(如上圖左側(cè))。使用ReLU有以下一些優(yōu)缺點:
優(yōu)點:相較于sigmoid和tanh函數(shù),ReLU對于隨機梯度下降的收斂有巨大的加速作用( Krizhevsky 等的論文指出有6倍之多)。據(jù)稱這是由它的線性,非飽和的公式導(dǎo)致的。
優(yōu)點:sigmoid和tanh神經(jīng)元含有指數(shù)運算等耗費計算資源的操作,而ReLU可以簡單地通過對一個矩陣進行閾值計算得到。
缺點:在訓(xùn)練的時候,ReLU單元比較脆弱并且可能“死掉”。舉例來說,當(dāng)一個很大的梯度流過ReLU的神經(jīng)元的時候,可能會導(dǎo)致梯度更新到一種特別的狀態(tài),在這種狀態(tài)下神經(jīng)元將無法被其他任何數(shù)據(jù)點再次激活。如果這種情況發(fā)生,那么從此所以流過這個神經(jīng)元的梯度將都變成0。也就是說,這個ReLU單元在訓(xùn)練中將不可逆轉(zhuǎn)的死亡,因為這導(dǎo)致了數(shù)據(jù)多樣化的丟失。例如,如果學(xué)習(xí)率設(shè)置得太高,可能會發(fā)現(xiàn)網(wǎng)絡(luò)中40%的神經(jīng)元都會死掉(在整個訓(xùn)練集中這些神經(jīng)元都不會被激活)。通過合理設(shè)置學(xué)習(xí)率,這種情況的發(fā)生概率會降低。
具體關(guān)于relu導(dǎo)致神經(jīng)元死亡的問題解釋,參見https://www.zhihu.com/question/67151971/answer/434079498
3.4 leaky relu
Leaky ReLU函數(shù)
人們?yōu)榱私鉀QDead ReLU Problem,提出了將ReLU的前半段設(shè)為而非0。另外一種直觀的想法是基于參數(shù)的方法,即Parametric ReLU:,其中可由back propagation學(xué)出來。理論上來講,Leaky ReLU有ReLU的所有優(yōu)點,外加不會有Dead ReLU問題,但是在實際操作當(dāng)中,并沒有完全證明Leaky ReLU總是好于ReLU。
————————————————
版權(quán)聲明:本文為CSDN博主「五癲」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tiankong_/java/article/details/88383855