激活函數

激活函數是用來解決線性不可分問題的一個方法,常用來svm以及神經網絡中。

常見的激活函數有sigmoid函數、tanh函數、softmax函數以及ReLU函數,上述方法都可以作爲隱層神經元的輸出。

1.sigmoid函數


導數爲:

圖像及導數圖像:


圖像結果在(0,1)之間,激活函數計算量大,反向傳播求誤差梯度時,會出現除法;並且在深層次網絡中容易產生梯度消失問題(當梯度小於1時,預測值與真實值之間的誤差每傳播一層會衰減一次),導致訓練出現問題,這是由於函數導數導致了軟飽和激活函數,導數圖像是關於x是對稱的,這就在對稱線會出現左飽和和右飽和;sigmoid函數的輸出不是0均值,將導致後一層的神經元將得到上一層輸出的非0均值的信號作爲輸入。

在分類問題中,可以將分類結果映射到0和1之間,可以得到每個類產生結果的可能性,進而完成分類。適用於特徵之間相差比較複雜或相差不大的情況。

一般情況下,不建議使用sigmoid函數,如果要用的話可以試着用tanh函數。

2.tanh函數


函數圖像爲:


圖像結果在[-1,1]之間,從圖像上看函數的收斂速度會比sigmoid函數收斂快,在特徵相差明顯時的效果會很好,在循環過程中會不斷擴大特徵效果。

tanh是一中改進的sigmoid函數,tanh的輸出是0均值的來改善sigmoid非0均值的問題,tanh一樣具有軟飽和性,容易產生梯度消失問題。

3.softmax函數

該函數是取得所有元素指數和的比值。該函數的計算非常簡單、易懂。通過指數的確定,擴大神經的映射。函數多用於多分類問題。

4.ReLU函數


函數圖像:


ReLU函數對於SGD的收斂有巨大的加速作用(ImageNet Classification with Deep ConvolutionalNeural Networks論文中提出),這個是線性,非飽和的形式,另外ReLU有效的緩解了梯度消失的問題,而且它提供了神經網絡的稀疏表達能力。

當神經元更新參數後,權重無法更新的情況。如果發生這種情況,那麼神經元的梯度從這一點開始將永遠是0。也就是說,ReLU的神經元在訓練中不可逆的死亡了。如果使用ReLU函數,就要小心設置learning rate,注意不要讓你網絡中出現很多"dead"神經元。

P-ReLU方法、Leaky-ReL、R-ReLU是上述改進方法。

爲了方便查看函數圖像,引用了文獻中的圖片。



參考文獻:

https://blog.csdn.net/u011584941/article/details/71534828

https://blog.csdn.net/guorongronghe/article/details/70174476

https://blog.csdn.net/zchang81/article/details/70224688

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