泛統計理論初探——激活函數初探

神經網絡學習-初探激活函數

理解激活函數
在之前的文章中,我們談到了神經網絡的結構和基本思路,並且提及了激活函數。在本次文章中,我們來具體比較幾種常見的神經網絡,尋找它們之間的共同特點和不同之處。激活函數是神經網絡中非常重要的角色,激活函數的好壞可以決定神經網絡最終的準確率和穩健性。
激活函數在神經網絡中扮演的角色其實是一種非線性的映射形式,所以我們看到的絕大多數激活函數都是非線性函數。在神經網絡中,每當上一層的神經元向下層傳遞信息的時候,中間都會經過激活函數的映射,從而增加整體模型的複雜度和預測能力。如果激活函數是線性函數,那麼神經網絡其實可以看作多層的迴歸模型,其本身的預測能力大大下降。
下面我們來介紹常見的激活函數,主要有sigmoid函數、tanh函數、ReLU函數、Leaky-ReLU函數、ELU函數。
首先是經典的sigmoid函數,該函數是最早被使用的神經網絡非線性激活函數,從它的函數形式我們可以,它在x取值距離零點近的時候,能夠進行較好地映射,當x的取值距離零點比較遠的時候,映射後的值幾乎相同。所以這種函數在實際的競賽、論文中,較少被使用,但是由於它是最開始被使用到神經網絡中的非線性激活函數,所以初學者需要記住sigmoid函數的特性。
在這裏插入圖片描述
其次是tanh函數,該函數和sigmoid函數的區別是,該函數在x取0的時候映射值是0,而sigmoid函數在x取0的時候映射值是1/2。與此同時,我們還發現,在距離零點的時候,tanh函數比sigmoid函數更爲陡峭,即收斂更迅速。但是tanh函數和sigmoid函數的相同點都是當x取值距離零點較遠的時候,映射後的值差別不大,這樣會導致神經網絡訓練到後期的下降梯度消失,所以該函數和sigmoid函數一樣,在實際問題中使用的不多。
在這裏插入圖片描述
然後我們介紹ReLU函數,這個函數是一個分段函數,顯然是一個連續的函數,但是該函數在x=0的時候,是不可導的,在其他x的取值是處處可導的。這種函數在x>0的時候,是一種線性的映射,即可以避免之前的tanh函數和sigmoid函數在訓練後期的下降梯度消失的問題。但是這種函數的問題在於,到了訓練的後期,會使得激活函數映射後的值變爲0,這樣會使得部分神經元參數無法更新。
在這裏插入圖片描述
在看了ReLU函數的缺點後,有學者對ReLU函數進行了優化,提出了一種Leaky-ReLU函數,即在函數的左側加入了係數,在不改變ReLU函數原有的特徵基礎上,繼承了ReLU函數的優點,同時避免了訓練後期部分神經元參數無法更新的問題,這個參數一般取值較小,比如0.01~0.1的範圍,具體取值還是需要到實際問題去確定。
在這裏插入圖片描述
最後我們介紹一下ELU函數,這種激活函數和前面的Leaky-ReLU函數較爲相似,區別是函數的左側用指數函數去表達,而不是線性函數。同時這種激活函數在x取值趨近於0 的時候,收斂速度比Leaky-ReLU函數的收斂速度更快,但是這種函數的缺點是有指數函數,即在數據量大、多層的神經網絡進行訓練的時候,會降低一些計算的速度。
在這裏插入圖片描述
總的來說,激活函數的種類非常多,初學者需要理解激活函數的意義,通過引進激活函數可以增加模型的複雜性和模型的準確性。初學者可以在實際問題中使用不同的激活函數去觀察實際效果,並且可以對現有的函數進行係數的優化改進或者提出新的激活函數,所以深入理解激活函數的原理和設計思路還是非常重要的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章