ReLu函數(shù)
修正線性單元(Rectified linear unit曼尊,ReLU)是神經(jīng)網(wǎng)絡(luò)中最常用的激活函數(shù)脏嚷。它保留了 step 函數(shù)的生物學(xué)啟發(fā)(只有輸入超出閾值時(shí)神經(jīng)元才激活),不過當(dāng)輸入為正的時(shí)候然眼,導(dǎo)數(shù)不為零艾船,從而允許基于梯度的學(xué)習(xí)(盡管在 x=0 的時(shí)候,導(dǎo)數(shù)是未定義的)屿岂。使用這個(gè)函數(shù)能使計(jì)算變得很快鲸匿,因?yàn)闊o論是函數(shù)還是其導(dǎo)數(shù)都不包含復(fù)雜的數(shù)學(xué)運(yùn)算。然而带欢,當(dāng)輸入為負(fù)值的時(shí)候烤惊,ReLU 的學(xué)習(xí)速度可能會(huì)變得很慢吁朦,甚至使神經(jīng)元直接無效,因?yàn)榇藭r(shí)輸入小于零而梯度為零逗宜,從而其權(quán)重?zé)o法得到更新,在剩下的訓(xùn)練過程中會(huì)一直保持靜默擂仍。
綜上可知,ReLu激活函數(shù)的優(yōu)點(diǎn)是:
1逢渔,相比Sigmoid/tanh函數(shù)乡括,使用梯度下降(GD)法時(shí),收斂速度更快
2粟判,相比Sigmoid/tanh函數(shù),Relu只需要一個(gè)門限值角钩,即可以得到激活值呻澜,計(jì)算速度更快
缺點(diǎn)是:
Relu的輸入值為負(fù)的時(shí)候,輸出始終為0羹幸,其一階導(dǎo)數(shù)也始終為0,這樣會(huì)導(dǎo)致神經(jīng)元不能更新參數(shù)栅受,也就是神經(jīng)元不學(xué)習(xí)了,這種現(xiàn)象叫做“Dead Neuron”依疼。
為了解決Relu函數(shù)這個(gè)缺點(diǎn)而芥,在Relu函數(shù)的負(fù)半?yún)^(qū)間引入一個(gè)泄露(Leaky)值,所以稱為Leaky Relu函數(shù)棍丐,如下圖所示:
帶泄露修正線性單元(Leaky ReLU)函數(shù)是經(jīng)典(以及廣泛使用的)的ReLu激活函數(shù)的變體,該函數(shù)輸出對(duì)負(fù)值輸入有很小的坡度巾钉。由于導(dǎo)數(shù)總是不為零,這能減少靜默神經(jīng)元的出現(xiàn)睛琳,允許基于梯度的學(xué)習(xí)(雖然會(huì)很慢),解決了Relu函數(shù)進(jìn)入負(fù)區(qū)間后,導(dǎo)致神經(jīng)元不學(xué)習(xí)的問題讨惩。
Andrew Ng說:
1,Leaky ReLU函數(shù)比ReLU函數(shù)效果好黍少,但實(shí)際中Leaky ReLU并沒有ReLU用的多处面。
2厂置,除了輸出層是一個(gè)二元分類問題外魂角,基本不用Sigmoid函數(shù)
3,Relu是最常用的默認(rèn)激活函數(shù)访忿,若不確定用哪個(gè)激活函數(shù)斯稳,就使用Relu或者Leaky Relu