ReLU的起源
論文參考:Deep Sparse Rectifier Neural Networks
網(wǎng)頁參考:http://www.mamicode.com/info-detail-873243.html?
起源:傳統(tǒng)激活函數(shù)、腦神經(jīng)元激活頻率研究、稀疏激活性
傳統(tǒng)Sigmoid系激活函數(shù)
傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中最常用的兩個(gè)激活函數(shù),Sigmoid系(Logistic-Sigmoid、Tanh-Sigmoid)被視為神經(jīng)網(wǎng)絡(luò)的核心所在。
從數(shù)學(xué)上來看,非線性的Sigmoid函數(shù)對(duì)中央?yún)^(qū)的信號(hào)增益較大,對(duì)兩側(cè)區(qū)的信號(hào)增益小,在信號(hào)的特征空間映射上,有很好的效果。
從神經(jīng)科學(xué)上來看,中央?yún)^(qū)酷似神經(jīng)元的興奮態(tài),兩側(cè)區(qū)酷似神經(jīng)元的抑制態(tài),因而在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方面,可以將重點(diǎn)特征推向中央?yún)^(qū),將非重點(diǎn)特征推向兩側(cè)區(qū)。
無論是哪種解釋,看起來都比早期的線性激活函數(shù)(y=x),階躍激活函數(shù)(-1/1,0/1)高明了不少。
近似生物神經(jīng)激活函數(shù):Softplus&ReLu?
2001年,神經(jīng)科學(xué)家Dayan、Abott從生物學(xué)角度,模擬出了腦神經(jīng)元接受信號(hào)更精確的激活模型,該模型如左圖所示:
這個(gè)模型對(duì)比Sigmoid系主要變化有三點(diǎn):①單側(cè)抑制 ②相對(duì)寬闊的興奮邊界 ③稀疏激活性(重點(diǎn),可以看到紅框里前端狀態(tài)完全沒有激活)
同年,Charles Dugas等人在做正數(shù)回歸預(yù)測論文中偶然使用了Softplus函數(shù),Softplus函數(shù)是Logistic-Sigmoid函數(shù)原函數(shù)。
?Softplus(x)=log(1+ex)
按照論文的說法,一開始想要使用一個(gè)指數(shù)函數(shù)(天然正數(shù))作為激活函數(shù)來回歸,但是到后期梯度實(shí)在太大,難以訓(xùn)練,于是加了一個(gè)log來減緩上升趨勢。
加了1是為了保證非負(fù)性。同年,Charles Dugas等人在NIPS會(huì)議論文中又調(diào)侃了一句,Softplus可以看作是強(qiáng)制非負(fù)校正函數(shù)max(0,x)平滑版本。
偶然的是,同是2001年,ML領(lǐng)域的Softplus/Rectifier激活函數(shù)與神經(jīng)科學(xué)領(lǐng)域的提出腦神經(jīng)元激活頻率函數(shù)有神似的地方,這促成了新的激活函數(shù)的研究。
生物神經(jīng)的稀疏激活性
在神經(jīng)科學(xué)方面,除了新的激活頻率函數(shù)之外,神經(jīng)科學(xué)家還發(fā)現(xiàn)了神經(jīng)元的稀疏激活性。
還是2001年,Attwell等人基于大腦能量消耗的觀察學(xué)習(xí)上,推測神經(jīng)元編碼工作方式具有稀疏性和分布性。
2003年Lennie等人估測大腦同時(shí)被激活的神經(jīng)元只有1~4%,進(jìn)一步表明神經(jīng)元工作的稀疏性。
從信號(hào)方面來看,即神經(jīng)元同時(shí)只對(duì)輸入信號(hào)的少部分選擇性響應(yīng),大量信號(hào)被刻意的屏蔽了,這樣可以提高學(xué)習(xí)的精度,更好更快地提取稀疏特征。
從這個(gè)角度來看,在經(jīng)驗(yàn)規(guī)則的初始化W之后,傳統(tǒng)的Sigmoid系函數(shù)同時(shí)近乎有一半的神經(jīng)元被激活,這不符合神經(jīng)科學(xué)的研究,而且會(huì)給深度網(wǎng)絡(luò)訓(xùn)練帶來巨大問題。
Softplus照顧到了新模型的前兩點(diǎn),卻沒有稀疏激活性。因而,校正函數(shù)max(0,x)成了近似符合該模型的最大贏家。
Part I:關(guān)于稀疏性的觀點(diǎn)
Machine Learning中的顛覆性研究是稀疏特征,基于數(shù)據(jù)的稀疏特征研究上,派生了Deep Learning這一分支。
稀疏性概念最早由Olshausen、Field在1997年對(duì)信號(hào)數(shù)據(jù)稀疏編碼的研究中引入,并最早在卷積神經(jīng)網(wǎng)絡(luò)中得以大施拳腳。
近年來,稀疏性研究不僅在計(jì)算神經(jīng)科學(xué)、機(jī)器學(xué)習(xí)領(lǐng)域活躍,甚至信號(hào)處理、統(tǒng)計(jì)學(xué)也在借鑒。
總結(jié)起來稀疏性大概有以下三方面的貢獻(xiàn):
1.1 信息解離
當(dāng)前,深度學(xué)習(xí)一個(gè)明確的目標(biāo)是從數(shù)據(jù)變量中解離出關(guān)鍵因子。原始數(shù)據(jù)(以自然數(shù)據(jù)為主)中通常纏繞著高度密集的特征。原因
是這些特征向量是相互關(guān)聯(lián)的,一個(gè)小小的關(guān)鍵因子可能牽擾著一堆特征,有點(diǎn)像蝴蝶效應(yīng),牽一發(fā)而動(dòng)全身。
基于數(shù)學(xué)原理的傳統(tǒng)機(jī)器學(xué)習(xí)手段在解離這些關(guān)聯(lián)特征方面具有致命弱點(diǎn)。
然而,如果能夠解開特征間纏繞的復(fù)雜關(guān)系,轉(zhuǎn)換為稀疏特征,那么特征就有了魯棒性(去掉了無關(guān)的噪聲)。
1.2 線性可分性
稀疏特征有更大可能線性可分,或者對(duì)非線性映射機(jī)制有更小的依賴。因?yàn)橄∈杼卣魈幱诟呔S的特征空間上(被自動(dòng)映射了)
從流形學(xué)習(xí)觀點(diǎn)來看(參見降噪自動(dòng)編碼器),稀疏特征被移到了一個(gè)較為純凈的低維流形面上。
線性可分性亦可參照天然稀疏的文本型數(shù)據(jù),即便沒有隱層結(jié)構(gòu),仍然可以被分離的很好。
1.3 稠密分布但是稀疏
稠密纏繞分布著的特征是信息最富集的特征,從潛在性角度,往往比局部少數(shù)點(diǎn)攜帶的特征成倍的有效。
而稀疏特征,正是從稠密纏繞區(qū)解離出來的,潛在價(jià)值巨大。
1.4 稀疏性激活函數(shù)的貢獻(xiàn)的作用:
不同的輸入可能包含著大小不同關(guān)鍵特征,使用大小可變的數(shù)據(jù)結(jié)構(gòu)去做容器,則更加靈活。
假如神經(jīng)元激活具有稀疏性,那么不同激活路徑上:不同數(shù)量(選擇性不激活)、不同功能(分布式激活),
兩種可優(yōu)化的結(jié)構(gòu)生成的激活路徑,可以更好地從有效的數(shù)據(jù)的維度上,學(xué)習(xí)到相對(duì)稀疏的特征,起到自動(dòng)化解離效果。
?
Part II:基于稀疏性的校正激活函數(shù)
2.1 非飽和線性端
撇開稀疏激活不談,校正激活函數(shù)max(0,x),與Softplus函數(shù)在興奮端的差異較大(線性和非線性)。
幾十年的機(jī)器學(xué)習(xí)發(fā)展中,我們形成了這樣一個(gè)概念:非線性激活函數(shù)要比線性激活函數(shù)更加先進(jìn)。
尤其是在布滿Sigmoid函數(shù)的BP神經(jīng)網(wǎng)絡(luò),布滿徑向基函數(shù)的SVM神經(jīng)網(wǎng)絡(luò)中,往往有這樣的幻覺,非線性函數(shù)對(duì)非線性網(wǎng)絡(luò)貢獻(xiàn)巨大。
該幻覺在SVM中更加嚴(yán)重。核函數(shù)的形式并非完全是SVM能夠處理非線性數(shù)據(jù)的主力功臣(支持向量充當(dāng)著隱層角色)。
那么在深度網(wǎng)絡(luò)中,對(duì)非線性的依賴程度就可以縮一縮。另外,在上一部分提到,稀疏特征并不需要網(wǎng)絡(luò)具有很強(qiáng)的處理線性不可分機(jī)制。
綜合以上兩點(diǎn),在深度學(xué)習(xí)模型中,使用簡單、速度快的線性激活函數(shù)可能更為合適。
如圖,一旦神經(jīng)元與神經(jīng)元之間改為線性激活,網(wǎng)絡(luò)的非線性部分僅僅來自于神經(jīng)元部分選擇性激活。
2.2 Vanishing Gradient Problem
更傾向于使用線性神經(jīng)激活函數(shù)的另外一個(gè)原因是,減輕梯度法訓(xùn)練深度網(wǎng)絡(luò)時(shí)的Vanishing Gradient Problem。
看過BP推導(dǎo)的人都知道,誤差從輸出層反向傳播算梯度時(shí),在各層都要乘當(dāng)前層的輸入神經(jīng)元值,激活函數(shù)的一階導(dǎo)數(shù)。
即Grad=Error?Sigmoid′(x)?x。使用雙端飽和(即值域被限制)Sigmoid系函數(shù)會(huì)有兩個(gè)問題:
①Sigmoid‘(x)∈(0,1) ?導(dǎo)數(shù)縮放
②x∈(0,1)或x∈(-1,1) ?飽和值縮放
這樣,經(jīng)過每一層時(shí),Error都是成倍的衰減,一旦進(jìn)行遞推式的多層的反向傳播,梯度就會(huì)不停的衰減,消失,使得網(wǎng)絡(luò)學(xué)習(xí)變慢。
而校正激活函數(shù)的梯度是1,且只有一端飽和,梯度很好的在反向傳播中流動(dòng),訓(xùn)練速度得到了很大的提高。
Softplus函數(shù)則稍微慢點(diǎn),Softplus‘(x)=Sigmoid(x)∈(0,1) ,但是也是單端飽和,因而速度仍然會(huì)比Sigmoid系函數(shù)快。
?
Part III 潛在問題
強(qiáng)制引入稀疏零的合理性?
誠然,稀疏性有很多優(yōu)勢。但是,過分的強(qiáng)制稀疏處理,會(huì)減少模型的有效容量。即特征屏蔽太多,導(dǎo)致模型無法學(xué)習(xí)到有效特征。
論文中對(duì)稀疏性的引入度做了實(shí)驗(yàn),理想稀疏性(強(qiáng)制置0)比率是70%~85%。超過85%,網(wǎng)絡(luò)就容量就成了問題,導(dǎo)致錯(cuò)誤率極高。
?
對(duì)比大腦工作的95%稀疏性來看,現(xiàn)有的計(jì)算神經(jīng)網(wǎng)絡(luò)和生物神經(jīng)網(wǎng)絡(luò)還是有很大差距的。
慶幸的是,ReLu只有負(fù)值才會(huì)被稀疏掉,即引入的稀疏性是可以訓(xùn)練調(diào)節(jié)的,是動(dòng)態(tài)變化的。
只要進(jìn)行梯度訓(xùn)練,網(wǎng)絡(luò)可以向誤差減少的方向,自動(dòng)調(diào)控稀疏比率,保證激活鏈上存在著合理數(shù)量的非零值。
?
Part IV ReLu的貢獻(xiàn)
4.1 縮小做和不做非監(jiān)督預(yù)訓(xùn)練的代溝
ReLu的使用,使得網(wǎng)絡(luò)可以自行引入稀疏性。這一做法,等效于無監(jiān)督學(xué)習(xí)的預(yù)訓(xùn)練。
當(dāng)然,效果肯定沒預(yù)訓(xùn)練好。論文中給出的數(shù)據(jù)顯示,沒做預(yù)訓(xùn)練情況下,ReLu激活網(wǎng)絡(luò)遙遙領(lǐng)先其它激活函數(shù)。
甚至出現(xiàn)了比普通激活函數(shù)預(yù)訓(xùn)練后更好的奇葩情況。當(dāng)然,在預(yù)訓(xùn)練后,ReLu仍然有提升空間。
從這一層面來說,ReLu縮小了非監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)之間的代溝。當(dāng)然,還有更快的訓(xùn)練速度。
4.2 更快的特征學(xué)習(xí)
在MNIST+LeNet4中,ReLu+Tanh的組合在epoch 50左右就能把驗(yàn)證集錯(cuò)誤率降到1.05%
但是,全Tanh在epoch 150時(shí),還是1.37%,這個(gè)結(jié)果ReLu+Tanh在epoch 17時(shí)就能達(dá)到了。
該圖來自AlexNet的"ImageNet Classification with Deep Convolutional Neural Networks"對(duì)ReLu和普通Sigmoid系函數(shù)做的對(duì)比測試,可以看到,ReLu的使用,使得學(xué)習(xí)周期
大大縮短。綜合速率和效率,DL中大部分激活函數(shù)應(yīng)該選擇ReLu。
?
Part V ?Theano中ReLu的實(shí)現(xiàn)
ReLu可以直接用T.maximum(0,x)實(shí)現(xiàn),用T.max(0,x)不能求導(dǎo).
?
Part VI ?ReLu訓(xùn)練技巧
見Cifar-10訓(xùn)練技巧
http://www.cnblogs.com/neopenx/p/4480701.html
總結(jié)
- 上一篇: 企业路由器连家用路由器怎么设置这企业路由
- 下一篇: Python 依赖库