AI瘋狂進(jìn)階——激活函數(shù)篇

本文作者專注于AI進(jìn)階算法,正在推出AI瘋狂進(jìn)階之基礎(chǔ)理論進(jìn)階篇,如有興趣可持續(xù)關(guān)注我。

核心導(dǎo)讀:

1. 神經(jīng)網(wǎng)絡(luò)激活函數(shù)的作用是什么?

2. 如何評價激活函數(shù)的好壞?

3. ReLU存在哪些問題?

4. 存在替換萬年ReLU的激活函數(shù)嗎?

1. 激活函數(shù)的作用是什么?

激活函數(shù)對于人工神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)、理解非常復(fù)雜的數(shù)據(jù)來說具有十分重要的作用。激活函數(shù)給神經(jīng)元引入了非線性因素,使得神經(jīng)網(wǎng)絡(luò)可以逼近任何非線性函數(shù),這樣神經(jīng)網(wǎng)絡(luò)就可以應(yīng)用到眾多的非線性模型中。目前最常見的激活函數(shù)當(dāng)屬ReLU以及在其基礎(chǔ)上改進(jìn)的如PReLU,RReLU,LeakyReLU等。本文在激活函數(shù)上進(jìn)行了進(jìn)階總結(jié),下面一一闡述:

2.如何評價激活函數(shù)的好壞?

目前學(xué)術(shù)界總計有50+類型的激活函數(shù),但沒有統(tǒng)一的或者明確的標(biāo)準(zhǔn)去衡量激活函數(shù)的好壞,最根本的原因是因為神經(jīng)網(wǎng)絡(luò)通過訓(xùn)練本質(zhì)上是去擬合訓(xùn)練數(shù)據(jù)的非線性分布,然而現(xiàn)實中數(shù)據(jù)的分布是無法統(tǒng)計的,所以采用哪種激活函數(shù)能擬合的更好是無法通過理論去推導(dǎo)出來,因此大部分論文都是通過在幾十種不同的任務(wù)上做實驗去看準(zhǔn)確率以及準(zhǔn)確率浮動的范圍(穩(wěn)定性)來評判激活函數(shù)的好壞。從最近研究出的一些比較好的激活函數(shù)中可以總結(jié)出好的激活函數(shù)必須擁有以下三個特點:

(1) Unboundedness(x>0無飽和區(qū)域):傳統(tǒng)的激活函數(shù)如sigmoid和tanh函數(shù)都有飽和區(qū)域,所以必須依賴較好的初始化讓輸入數(shù)據(jù)處于非飽和區(qū)域,否則飽和區(qū)域產(chǎn)生的梯度過小會影響收斂速度,而Relu系列都是x>0無飽和區(qū)域。

(2)NegativeOutputs(x<0產(chǎn)生非0值):Relu在x<0的值全都是0,而PReLU,RReLU,LeakyReLU最大的共同改進(jìn)點就是在x<0產(chǎn)生非0值,少量的NegativeOutputs能減少神經(jīng)元訓(xùn)練過程中出現(xiàn)"die"的概率,提升模型的魯棒性。

(3)Smoothness(平滑性):Relu,PReLU,RReLU都是在x=0點都是不連續(xù)的,最明顯的現(xiàn)象是在特征響應(yīng)圖上產(chǎn)生斷層,平滑的激活函數(shù)更利于梯度信息的回傳。

3.ReLU存在哪些問題?

(1)Dead ReLU Problem:《Applying Deep Learning to Airbnb Search》中解釋了這個問題,神經(jīng)網(wǎng)絡(luò)接受異于常值范圍的輸入時,在反向傳播過程中會產(chǎn)生大的梯度,這種大的梯度,會因梯度消失而永久關(guān)閉諸如 ReLU 的激活函數(shù),這主要是ReLU沒有NegativeOutputs所帶來的問題。下面舉了個簡單的例子說明這個現(xiàn)象。

(2)High-Confidence Predictions:《Why ReLU Networks Yield High-Confidence Predictions Far Away From the Training Dataand How to Mitigate》中針對例如將一個在CIFAR 10數(shù)據(jù)集(10類普通物體)上訓(xùn)練的神經(jīng)網(wǎng)絡(luò),放到SVHN數(shù)據(jù)集(街景門牌)上做測試,該模型竟然能夠以100%的置信度將門牌識別為狗、鳥和飛機(jī)等這種現(xiàn)象,通過理論建模,解釋ReLU帶來的高置信度問題,并提出CEDA和ACET來緩解這種不良情況。

4.存在替換萬年ReLU的激活函數(shù)嗎?

答案是肯定的。本文作者在這里給大家推薦2個激活函數(shù)。這2個激活函數(shù)在自己的工程項目中都嘗試過,相比Relu均有穩(wěn)定0.5%左右的提升。僅僅改變激活函數(shù)就能帶來白給的提升,何樂而不為?第一個是Google Brain提出的Swish函數(shù),其形式為f(x) = x · sigmoid(x) ,《SWISH: A SELF-GATED ACTIVATION FUNCTION 》論文在多個任務(wù)上實驗精度都超過Relu,同時在2019年推出的端側(cè)引擎MobilenetV3中,也是直接用Swish替換掉Relu。另一個是Mish函數(shù),其形式為f(x) = x? tanh(ln(1 + exp(x)),《Mish: A Self Regularized Non-Monotonic Neural Activation Function 》也是在多個任務(wù)上實驗最終準(zhǔn)確度上比Swish(+.494%)和ReLU(+ 1.671%)都有提高。從下圖可以看出Swish和Mish在特征圖上數(shù)據(jù)分布比Relu更加平滑。由于激活函數(shù)替換的成本較低,所以當(dāng)你看到這篇文章的時候,可以嘗試在自己的項目中采用這2個激活函數(shù)試一試,說不定就能帶來一定的提升。

5.小結(jié)

激活函數(shù)一直是神經(jīng)網(wǎng)絡(luò)研究中的一個重要方向,未來也會有更多更好的激活函數(shù)出現(xiàn),如果不知道采用哪個激活函數(shù)好,可以采用Auto ML進(jìn)行搜索。

如需轉(zhuǎn)載,請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容