摘要:為什么呢本文將對這一問題進行解疑并介紹多種多種激活函數。激活函數就是用來引入這個非線性因素的,下面介紹幾種常見的激活函數及其優缺點正負號表示。如果想了解更多可上網搜激活函數選擇在同一個模型中,激活函數不會混搭使用,選定一個就用一個。
【DL-CV】反向傳播,(隨機)梯度下降<前篇---后篇>【DL-CV】神經網絡的補充
在介紹線性分類器的時候,提到了激活函數,還提到線性分類器的輸出要經過激活函數才能作為下一層網絡的輸入。為什么呢?本文將對這一問題進行解疑并介紹多種多種激活函數。
引入激活函數假如神經網絡只由多個線性分類組器合而成,那無論怎樣組合,他們對數據的操作永遠都是線性變換而已,復雜度有限,只能實現線性分類而不能實現非線性分類,但現實中的數據往往不是線性可分的。為了解決這個問題,就要給神經網絡引入非線性因素,提高神經網絡模型的表達能力(學習更復雜的映射)。激活函數就是用來引入這個非線性因素的,下面介紹幾種常見的激活函數及其優缺點(正負號表示)。
Sigmoid其數學公式及其圖像如下
它把輸入壓縮到(0,1)區間內,有兩端飽和的特性,對于很大的正數它輸出趨近與1,對于絕對值很小的負數它輸出趨近于0。
這個函數曾經非常流行,但是由于其缺點(主要是兩邊飽和)飽受詬病,現在沒什么人用了
(-)梯度消失:當輸入過大或過小時,由圖可知局部梯度幾乎為0,經過鏈式法則后梯度也幾乎為0,你會失去梯度流的反饋,使權重幾乎不更新
(-)非零中心:sigmoid的輸出均大于零(不是零均值),即給下一層神經元的x都大于零,$sigma(W*x+b)$,假如這里的x全是正數,那么經過反向傳播${?Lover ?W}會全正或全負$,于是所有權重值都會往一個方向更新,這樣訓練效率非常低。
tanh其數學公式及其圖像如下(雙曲正切)
形狀和sigmoid很像,也是兩端飽和,不同的是它把輸入壓縮到(-1,1)區間內。
(+)以零為中心
(-)梯度消失
比sigmoid好了一點,沒有非零中心的問題
ReLU其數學公式及其圖像如下
就是個取最大值得函數,當輸入為負數,輸出為0;當輸入為正數,輸出還是這個數
(+)在正區間不會飽和(一個優勢):在正區間梯度可傳遞
(+)計算成本低
(+)使用ReLU之后,權重收斂速度比sigmoid/tanh快(約6倍)
(-)非零中心
(-)在負區間梯度消失:某些權重永遠不會更新,我們稱這種情況叫“dead ReLU”。導致這種情況頻發的原因主要有權重初始化不好或學習率太高
雖然有“dead ReLU”的情況發生,但這并不阻礙它成為優秀的激活函數,實際應用中其表現不錯,是非常常用的激活函數
Leaky ReLU(LReLU)其數學公式及其圖像如下
ReLU的變種,負區間不再是0,而是給它一個很小的斜率(上圖是0.01,也可以是其他常數)
(+)ReLU的優點
(+)不會出現梯度消失的情況
關于其效果沒有清晰的定論,有的實驗表現好,有些則不好
其實還可以把那個斜率當作可以反向傳播和學習的參數α,然后就變成了Parametric ReLU(PReLU)激活函數
$$f(x)=max(alpha x,x)$$
其數學公式及其圖像如下
全名指數線性單元Exponential Linear Units,α是一個可調整的參數,它控制著ELU負值部分在何時飽和
(+)ReLU的優點
(+)輸出均值接近零
(+)負飽和機制,使模型對噪音有更強的魯棒性
關于其詳細介紹可看此論文,或者看看論文導讀
Maxout這個函數有點奇,我覺得它直接改變了原有MLP網絡的結構,以至于形成了maxout網絡,其本身就集成了激活函數的功能。
$$f(x)=max_{jin [1,k]}z_{j}$$
k是需人為設定的參數,k=1,網絡就類相當于普通的MLP網絡;k>1,就變身成maxout網絡了。這個函數的原理如下圖,筆者文字表達欠佳,需作圖才能展示出來。如果想了解更多可上網搜“maxout激活函數”
在同一個模型中,激活函數不會混搭使用,選定一個就用一個。一般最好的經驗法則是使用ReLU函數,但是要謹慎的調節學習率。像LReLU,PReLU,ELU,Maxout這些函數則實驗性強一點(實用性弱一點),但也可以試下。tanh和sigmoid就em....,算了吧。
除了這里介紹的6個外,還有一些其他的激活函數(如有著喪心病狂證明的SeLU),感興趣的可以去查一下
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19780.html
摘要:為什么呢本文將對這一問題進行解疑并介紹多種多種激活函數。激活函數就是用來引入這個非線性因素的,下面介紹幾種常見的激活函數及其優缺點正負號表示。如果想了解更多可上網搜激活函數選擇在同一個模型中,激活函數不會混搭使用,選定一個就用一個。 【DL-CV】反向傳播,(隨機)梯度下降【DL-CV】神經網絡的補充 在介紹線性分類器的時候,提到了激活函數,還提到線性分類器的輸出要經過激活函數才能作為...
摘要:但是由于神經網絡的許多細節并未過分深入比如層數和每層神經元數的設定,過擬合等,初建的網絡實際上和真實的網絡還是有一定差距的。和神經網絡中其他層不同,輸出層的神經元一般不會有激活函數,最后的輸出層大多用于表示分類評分值。 【DL-CV】激活函數及其選擇【DL-CV】卷積神經網絡 在介紹了線性分類器,激活函數,損失函數,反向傳播這些基礎的原理后,已經可以嘗試自行搭建像樣的神經網絡了。但是由...
閱讀 2982·2023-04-25 17:22
閱讀 1548·2019-08-30 15:54
閱讀 1276·2019-08-30 15:53
閱讀 1792·2019-08-30 15:43
閱讀 3038·2019-08-29 12:29
閱讀 1237·2019-08-26 11:37
閱讀 3264·2019-08-23 18:02
閱讀 1610·2019-08-23 14:15