ReLU为什么比Sigmoid效果好
雙曲函數(shù)類似于常見的(也叫圓函數(shù)的)三角函數(shù)。基本雙曲函數(shù)是雙曲正弦"sinh",雙曲余弦"cosh",從它們導(dǎo)出雙曲正切"tanh"
sigmod函數(shù):
Relu函數(shù):
綜合:
@作者:約翰曰不約
為什么通常Relu比sigmoid和tanh強(qiáng),有什么不同?
主要是因?yàn)樗鼈僩radient特性不同。sigmoid和tanh的gradient在飽和區(qū)域非常平緩,接近于0,很容易造成vanishing gradient的問題,減緩收斂速度。vanishing gradient在網(wǎng)絡(luò)層數(shù)多的時(shí)候尤其明顯,是加深網(wǎng)絡(luò)結(jié)構(gòu)的主要障礙之一。相反,Relu的gradient大多數(shù)情況下是常數(shù),有助于解決深層網(wǎng)絡(luò)的收斂問題。Relu的另一個(gè)優(yōu)勢(shì)是在生物上的合理性,它是單邊的,相比sigmoid和tanh,更符合生物神經(jīng)元的特征。
而提出sigmoid和tanh,主要是因?yàn)樗鼈內(nèi)炭蓪?dǎo)。還有表達(dá)區(qū)間問題,sigmoid和tanh區(qū)間是0到1,或著-1到1,在表達(dá)上,尤其是輸出層的表達(dá)上有優(yōu)勢(shì)。
@作者:crackhopper,
ReLU更容易學(xué)習(xí)優(yōu)化。因?yàn)槠浞侄尉€性性質(zhì),導(dǎo)致其前傳,后傳,求導(dǎo)都是分段線性。而傳統(tǒng)的sigmoid函數(shù),由于兩端飽和,在傳播過程中容易丟棄信息:
@作者:Begin Again
第一個(gè)問題:為什么引入非線性激勵(lì)函數(shù)?
如果不用激勵(lì)函數(shù)(其實(shí)相當(dāng)于激勵(lì)函數(shù)是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數(shù),很容易驗(yàn)證,無論你神經(jīng)網(wǎng)絡(luò)有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當(dāng),這種情況就是最原始的感知機(jī)(Perceptron)了。
正因?yàn)樯厦娴脑?#xff0c;我們決定引入非線性函數(shù)作為激勵(lì)函數(shù),這樣深層神經(jīng)網(wǎng)絡(luò)就有意義了(不再是輸入的線性組合,可以逼近任意函數(shù))。最早的想法是sigmoid函數(shù)或者tanh函數(shù),輸出有界,很容易充當(dāng)下一層輸入(以及一些人的生物解釋balabala)。
第二個(gè)問題:為什么引入Relu呢?
第一,采用sigmoid等函數(shù),算激活函數(shù)時(shí)(指數(shù)運(yùn)算),計(jì)算量大,反向傳播求誤差梯度時(shí),求導(dǎo)涉及除法,計(jì)算量相對(duì)大,而采用Relu激活函數(shù),整個(gè)過程的計(jì)算量節(jié)省很多。
第二,對(duì)于深層網(wǎng)絡(luò),sigmoid函數(shù)反向傳播時(shí),很容易就會(huì)出現(xiàn)梯度消失的情況(在sigmoid接近飽和區(qū)時(shí),變換太緩慢,導(dǎo)數(shù)趨于0,這種情況會(huì)造成信息丟失,參見?@Haofeng Li?答案的第三點(diǎn)),從而無法完成深層網(wǎng)絡(luò)的訓(xùn)練。
第三,Relu會(huì)使一部分神經(jīng)元的輸出為0,這樣就造成了網(wǎng)絡(luò)的稀疏性,并且減少了參數(shù)的相互依存關(guān)系,緩解了過擬合問題的發(fā)生(以及一些人的生物解釋balabala)。
當(dāng)然現(xiàn)在也有一些對(duì)relu的改進(jìn),比如prelu,random relu等,在不同的數(shù)據(jù)集上會(huì)有一些訓(xùn)練速度上或者準(zhǔn)確率上的改進(jìn),具體的大家可以找相關(guān)的paper看。
多加一句,現(xiàn)在主流的做法,會(huì)在做完relu之后,加一步batch normalization,盡可能保證每一層網(wǎng)絡(luò)的輸入具有相同的分布[1]。而最新的paper[2],他們?cè)诩尤隻ypass connection之后,發(fā)現(xiàn)改變batch normalization的位置會(huì)有更好的效果。大家有興趣可以看下。
本文轉(zhuǎn)自 stock0991 51CTO博客,原文鏈接:http://blog.51cto.com/qing0991/1940179
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的ReLU为什么比Sigmoid效果好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nunjucks渲染富文本解析错误输出字
- 下一篇: winxp netbeui instal