幾種非線性激活函數介紹


1. 幾種非線性激勵函數(Activation Function)

神經網絡中,正向計算時,激勵函數對輸入數據進行調整,反向梯度損失。梯度消失需要很多方式去進行規避。

1.1 Sigmoid函數

表達式為: 

 
y(x)=sigmoid(x)=11+ex,y(x)in(0,1)y(x)=sigmoid(x)=11+e−x,y(x)in(0,1)

 

 

 
y(x)=y(x)(1y(x)),yin(,14]y(x)′=y(x)(1−y(x)),y′in(−∞,14]


該函數將輸入映射到(0,1)(能否取到0和1,取決於計算機的精度),由導數可看出, 最大值為0.25,也即在反向計算時,梯度損失非常明顯,至少減少75%,

 

1.2 Tanh函數

表達式為: 

 
f(x)=tanh(x)=21+e2x1,f(x)in(1,1)f(x)=1f(x)2,f(x)in(0,1)f(x)=tanh⁡(x)=21+e−2x−1,f(x)in(−1,1)f′(x)=1−f(x)2,f′(x)in(0,1)


該函數將輸入映射到(-1,1)(能否取到-1和1,取決於計算機的精度),由導數可看出,在反向計算時,梯度也會有所損失。倘若網絡深度非常深,梯度消失(gradient vanishing)。 
這里寫圖片描述

 

1.3 ReLU ( Rectified Linear Unit)函數

表達式為: 

這里寫圖片描述


該函數將輸入分兩個段進行映射,當輸入值小於0時,則將原值映射為0,若輸入值大於0則按照原值傳遞,即,正向計算的時候,會損失特征大量,由導數可看出,在反向計算時,梯度沒有損失。 

這里寫圖片描述

 

(1) ReLU的優缺點

  1. 1) 優點1:

Krizhevsky et al. 發現使用 ReLU 得到的SGD的收斂速度會比 sigmoid/tanh 快很多。有人說這是因為它是linear,而且梯度不會飽和

  • 2) 優點2:

相比於 sigmoid/tanh需要計算指數等,計算復雜度高,ReLU 只需要一個閾值就可以得到激活值。

  • 3) 缺點1:

    ReLU在訓練的時候很”脆弱”,一不小心有可能導致神經元”壞死”。 
    舉個例子:由於ReLU在x<0時梯度為0,這樣就導致負的梯度在這個ReLU被置零,而且這個神經元有可能再也不會被任何數據激活。如果這個情況發生了,那么這個神經元之后的梯度就永遠是0了,也就是ReLU神經元壞死了,不再對任何數據有所響應。實際操作中,如果你的learning rate 很大,那么很有可能你網絡中的40%的神經元都壞死了。 當然,如果你設置了一個合適的較小的learning rate,這個問題發生的情況其實也不會太頻繁。

(2) ReLU正向截斷負值,損失大量特征,為什么依然用它?

答:特征足夠多,反向梯度無損失!

1.4 Leaky ReLU(Leaky Rectified Linear Unit)

表達式如下: 

這里寫圖片描述


Leaky ReLU. Leaky ReLUs 就是用來解決ReLU壞死的問題的。和ReLU不同,當x<0時,它的值不再是0,而是一個較小斜率(如0.01等)的函數。也就是說f(x)=1(x<0)(ax)+1(x>=0)(x),其中a是一個很小的常數。這樣,既修正了數據分布,又保留了一些負軸的值,使得負軸信息不會全部丟失。關於Leaky ReLU 的效果,眾說紛紜,沒有清晰的定論。有些人做了實驗發現 Leaky ReLU 表現的很好;有些實驗則證明並不是這樣。 
-PReLU. 對於 Leaky ReLU 中的a,通常都是通過先驗知識人工賦值的,比如說0.01


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM