參考blog
啟用函式的主要功能是為神經網路非線性能力 ,去掉啟用函式層,神經網路僅剩下線性函式,多層線性函式的擬合還是線性的,無法更好的建模生活中的大多數非線性問題。
線性啟用函式(不是重點)
非線性啟用函式(sigmod,tanh,relu,lrelu,prelu,swish)
考量:公式
f (x
)=11
+e−x
f′(x
)=f(
x)∗(
1−f(
x)
)f(x) = \frac} \\ f^(x) = f(x)*(1-f(x))
f(x)=1
+e−x
1f′
(x)=
f(x)
∗(1−
f(x)
)性質不錯,可做歸一化和表示為概率
左端趨近於0,右端趨近與1,兩邊飽和性 ,兩邊導數趨近於0
當輸入落入飽和區,梯度比較小,引數更新難度變大,此現象為梯度消失。
啟用函式的偏移現象。sigmoid函式的輸出值均大於0,使得輸出不是0的均值,這會導致後一層的神經元將得到上一層非0均值的訊號作為輸入。
t an
h=1−
e−2x
1+e−
2x
tanh = \frac}}
tanh=1
+e−2
x1−e
−2x
解決了sigmoid函式的不是zero-centered輸出問題,
使得它的收斂速度要比sigmoid快,減少了迭代更新的次數。然而,梯度消失(gradient vanishing)的問題和冪運算的問題仍然存在
f (x
)=ma
x(0,
x)
f(x) = max(0,x)
f(x)=m
ax(0
,x)優點:
1) 解決了gradient vanishing問題 (在正區間)
2)計算速度非常快,只需要判斷輸入是否大於0
3)收斂速度遠快於sigmoid和tanh
缺點:1)relu的輸出不是zero-centered
2)某些神經元可能永遠不會被啟用(dead relu problem),導致相應的引數永遠不能被更新
初始化方法
學習率太高
f (x
)=x,
x>0f
(x)=
α∗x,
x<=0
f(x) = x ,x>0 \\ f(x) = \alpha*x,x<=0
f(x)=x
,x>0f
(x)=
α∗x,
x<=0
針對 x<0 的硬飽和問題,我們對 [公式] 作出改進,提出leaky-relu,即在 x<0 部分新增乙個引數 \alpha。
p-relu則認為 [公式] 也應當作為乙個引數來學習,一般建議 \alpha 初始化為0.25
f (x
)=x,
x>0f
(x)=
α∗(e
x−1)
f(x) = x ,x>0 \\ f(x) = \alpha*(e^x-1)
f(x)=x
,x>0f
(x)=
α∗(e
x−1)
lu是結合了sigmoid的左側軟飽和性和relu的右側無飽和性而提出的一種新的啟用函式。從上面圖中不難看到這一特點。右側線性部分使得elu可以緩解梯度消失問題,而左側軟飽和效能讓elu對輸入變化或雜訊更魯棒。
s wi
sh(x
)=x∗
sigm
od
swish(x) = x*sigmod
swish(
x)=x
∗sig
modswish函式跟relu差不多,唯一區別較大的是接近於0的負半軸區域, google大腦做了很多實驗,結果都表明swish優於relu
m ax
out:
f(x)
=max
(w1t
x+b1
,...
,wnt
x+bn
)maxout: f(x) = max(w_1^tx+b_1,...,w_n^tx+b_n)
maxout
:f(x
)=ma
x(w1
tx+
b1,
...,
wnt
x+bn
)maxout網路能夠近似任意連續函式,且當 [公式] 為0時,退化為relu。maxout能夠緩解梯度消失,同時又規避了relu神經元死亡的缺點,但增加了引數和計算量
。。。留待更新
各個啟用函式對比
1.sigmod函式 函式公式和圖表如下圖 在sigmod函式中我們可以看到,其輸出是在 0,1 這個開區間內,這點很有意思,可以聯想到概率,但是嚴格意義上講,不要當成概率。sigmod函式曾經是比較流行的,它可以想象成乙個神經元的放電率,在中間斜率比較大的地方是神經元的敏感區,在兩邊斜率很平緩的地...
常見啟用函式整理
啟用函式的飽和 定義 x趨向於正無窮或者負無窮時,函式導數趨近於0,此時稱為飽和 飽和啟用函式 sigmod tanh 非飽和啟用函式 relu leaky relu gelu 給神經網路引入非線性元素,使神經網路可以完成非線性對映。如果不使用啟用函式,無論神經網路有多少層,都只是線性組合而已。si...
神經網路 啟用函式對比
本部落格僅為作者記錄筆記之用,不免有很多細節不對之處。還望各位看官能夠見諒,歡迎批評指正。日常 coding 中,我們會很自然的使用一些啟用函式,比如 sigmoid relu等等。不過好像忘了問自己一 n 件事 為什麼需要啟用函式?啟用函式都有哪些?都長什麼樣?有哪些優缺點?怎麼選用啟用函式?此圖...