目錄
4.4 ELU(Exponential Linear Units) 函數
激活函數(Activation Function),有的也稱爲激勵函數,就是在人工神經網絡的神經元上運行的函數,負責將神經元的輸入映射到輸出端。
1 激活函數的作用
引入激活函數是爲了增加神經網絡模型的非線性,從而更好地模擬真實的場景。
如果不用激活函數,在這種情況下每一層輸出都是上層輸入的線性函數。容易驗證,無論神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。因此引入非線性函數作爲激活函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。
2 激活函數的位置
生物學上的神經元結構如下:
通常是一個神經細胞都有樹突,軸突,細胞核等組成。樹突接收其他神經元傳遞過來的信號,單信號足夠強大的時候,就會激活該神經細胞,產生新的信號,通過軸突傳遞到下一個神經元。
抽象成數學模型,就是如下:
xi:神經元的樹突輸入,表示從前面一個神經元接受到的信號;
wi:表示權重,即表示這個輸入對輸出有多大的影響;
:細胞核上,每個輸入型號和權重之間的共同作用之後,加上一個偏置。
f:激活函數,表示神經元對於信號的處理過程。
output axon:輸出到下一個神經元的信號;
3 激活函數分類
常見的激活函數可以分成飽和激活函數和非飽和激活函數。
3.1 飽和激活函數
3.1.1 右飽和
假設h(x)是一個激活函數。
當我們的n趨近於正無窮,激活函數的導數趨近於0,那麼我們稱之爲右飽和。
3.1.2 左飽和
當我們的n趨近於負無窮,激活函數的導數趨近於0,那麼我們稱之爲左飽和。
3.1.3 飽和
當一個函數既滿足左飽和又滿足右飽和的時候我們就稱之爲飽和,典型的函數有Sigmoid,Tanh函數。
3.1.4 硬飽和
對於任意的x,如果存在常數c,當x>c時,恆有=0,則稱其爲右硬飽和。如果對於任意的x,如果存在常數c,當x<c時,恆有
=0,則稱其爲左硬飽和。既滿足左硬飽和又滿足右硬飽和的我們稱這種函數爲硬飽和。
3.1.5 軟飽和
對於任意的x,如果存在常數c,當x>c時,恆有趨近於0,則稱其爲右軟飽和。如果對於任意的x,如果存在常數c,當x<c時,恆有
趨近於0,則稱其爲左軟飽和。既滿足左軟飽和又滿足右軟飽和的我們稱這種函數爲軟飽和。
3.2 非飽和激活函數
顯然,不滿足飽和激活函數的,我們稱之爲非飽和激活函數。使用“非飽和激活函數”的優勢在於兩點:
1)能夠解決“梯度消失”問題;
2)能夠加速收斂
4 常見激活函數
4.1 Sigmoid函數
4.2 tanh函數
4.3 ReLU函數及其變形
4.3.1 ReLU
4.3.2 Leaky-ReLU
4.3.3 P-ReLU
4.3.4 R-ReLU
4.4 ELU(Exponential Linear Units) 函數
論文:https://arxiv.org/pdf/1511.07289v5.pdf
ELU也是爲解決ReLU存在的問題而提出,顯然,ELU有ReLU的基本所有優點,以及:
- 不會有Dead ReLU問題
- 輸出的均值接近0,zero-centered
它的一個小問題在於計算量稍大。類似於Leaky ReLU,理論上雖然好於ReLU,但在實際使用中目前並沒有好的證據ELU總是優於ReLU。
4.5 MaxOut
5 如何選擇激活函數
這個問題目前沒有確定的方法,憑一些經驗吧。
1)深度學習往往需要大量時間來處理大量數據,模型的收斂速度是尤爲重要的。所以,總體上來講,訓練深度學習網絡儘量使用zero-centered數據 (可以經過數據預處理實現) 和zero-centered輸出。所以要儘量選擇輸出具有zero-centered特點的激活函數以加快模型的收斂速度。
2)可以從ReLU函數開始,如果ReLU函數沒有提供最優結果,再嘗試其他激活函數。如果使用 ReLU,那麼一定要小心設置 learning rate,而且要注意不要讓網絡出現很多 “dead” 神經元,如果這個問題不好解決,那麼可以試試 Leaky ReLU、PReLU 或者 Maxout.
3)最好不要用 sigmoid,你可以試試 tanh,不過可以預期它的效果會比不上 ReLU 和 Maxout.
參考文獻:
【1】https://baike.baidu.com/item/%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0/2520792?fr=aladdin
【2】https://blog.csdn.net/qq_34638161/article/details/81902989
【3】https://blog.csdn.net/qq_23304241/article/details/80300149
【4】激活函數中的硬飽和,軟飽和,左飽和和右飽和,https://blog.csdn.net/donkey_1993/article/details/81662065
【5】常用激活函數(激勵函數)理解與總結https://blog.csdn.net/tyhj_sf/article/details/79932893
【6】各種激活函數的比較https://blog.csdn.net/piaodexin/article/details/77162766