幾種非線性啟用函式介紹

2022-08-23 23:45:16 字數 1814 閱讀 5635

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

表示式為: y(

x)=s

igmo

id(x

)=11

+e−x

,y(x

)in(

0,1)

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

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

x)′=

y(x)

(1−y

(x))

,y′i

n(−∞

,14]

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

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

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

表示式為: f(

x)=tanh⁡(

x)=2

1+e−

2x−1

,f(x

)in(

−1,1

)f′(

x)=1

−f(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)

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)。 

表示式為: 

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

(1) relu的優缺點

1) 優點1:

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

相比於 sigmoid/tanh需要計算指數等,計算複雜度高,relu 只需要乙個閾值就可以得到啟用值。

(2) relu正向截斷負值,損失大量特徵,為什麼依然用它?

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

表示式如下: 

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

非線性啟用函式

神經網路中,正向計算時,激勵函式對輸入資料進行調整,反向梯度損失。梯度消失需要很多方式去進行規避。表示式為 y x s igmo id x 11 e x y x in 0,1 y x y x 1 y x y in 14 該函式將輸入對映到 0,1 能否取到0和1,取決於計算機的精度 由導數可看出,最...

非線性啟用

如果神經元的輸出是輸入的線性函式,而線性函式之間的巢狀任然會得到線性函式。如果不加如飛西安新處理,那麼最終得到的仍然是線性函式。leaky relu,prelu,rrelu,elu,selu.他們讓relu在輸入小於0時有少量輸出,可略微改進效能,代價是速度會慢一些。f x x cdot sigma...

非線性啟用函式的使用原因

解釋一 如果是線性啟用函式 輸出y 是輸入x的線性組合,那麼無論神經網路有多少層,一直在做的只是計算線性啟用函式,所以不如直接去掉全部隱含層。線性隱含層一點用都沒有,因為兩個線性函式的組合本身就是線性組合。所以除非引入非線性,那麼無法計算更加有趣的函式,網路層數再多也不行。只有乙個地方可以使用線性啟...