修正线性单元(Rectified linear unit,ReLU)
修正線性單元(Rectified linear unit,ReLU)
Rectified linear unit
在神經(jīng)網(wǎng)絡(luò)中,常用到的激活函數(shù)有sigmoid函數(shù)f(x)=11+exp(?x)、雙曲正切函數(shù)f(x)=tanh(x),今天要說的是另外一種activation function,rectified linear function,f(x)=max(0,x),
The rectifier is, as of 2015, the most popular activation function for deep neural networks
它的特點是被認為是more biologically plausible than widely used logistic sigmoid or hyperbolic tangent(雙曲正切 tanh),就是說更加符合神經(jīng)元信號激勵原理。采用了rectified linear function作為activation function的unit被稱為rectified linear unit。它的一個平滑解析函數(shù)為f(x)=ln(1+ex),被稱之為softplus function,softplus的微分就是logistic function:f′(x)=ex/(ex+1)=1/(1+e?x)。另外一種函數(shù)叫做softmax function或者normalized exponential是logistic function的一個泛化,如下:
the softmax function常被用來various probabilistic multiclass classification methods 比如multinomial logistic regression,multiclass linear discriminant analysis, naive Bayes classifiers and artificial neural networks等。在Andrew Ng的機器學(xué)習(xí)課程中,softmax regression中就用到了softmax function。這里點一下說明。當(dāng)然本文的重點還是在rectified linear function上。
有幾種變體:
noisy ReLUs
可將其包含Gaussian noise得到noisy ReLUs,f(x)=max(0,x+N(0,σ(x))),常用來在機器視覺任務(wù)里的restricted Boltzmann machines中。
leaky ReLUs
允許小的非零的gradient 當(dāng)unit沒有被激活時。
Advantages
使用rectifier 作為非線性激活函數(shù)使得深度網(wǎng)絡(luò)學(xué)習(xí)不需要pre-training,在大、復(fù)雜的數(shù)據(jù)上,相比于sigmoid函數(shù)等更加快速和更有效率。
標(biāo)準(zhǔn)的sigmoid輸出不具備稀疏性,需要通過懲罰因子來訓(xùn)練一堆接近于0的冗余數(shù)據(jù),從而產(chǎn)生稀疏數(shù)據(jù),比如L1,L2或者student-t作為懲罰因子,進行regularization。而ReLU為線性修正,是purelin的折線版,作用是如果計算輸出小于0,就讓它等于0,否則保持原來的值,這是一種簡單粗暴地強制某些數(shù)據(jù)為0的方法,然而經(jīng)實踐證明,訓(xùn)練后的網(wǎng)絡(luò)完全具備適度的稀疏性,而且訓(xùn)練后的可視化效果和傳統(tǒng)pre-training的效果很相似。這說明了ReLU具備引導(dǎo)適度稀疏的能力。
從函數(shù)圖形上看,ReLU比sigmoid更接近生物學(xué)的激活模型。
實際測量數(shù)據(jù):縱坐標(biāo)軸是神經(jīng)元的放電速率(Firing Rate);橫軸是毫秒(ms)
基于生物學(xué)的數(shù)學(xué)規(guī)則化激活模型(LIF)
(Softplus是ReLU的圓滑版,公式為:g(x)=log(1+e^x),從上面的結(jié)果看,效果比ReLU稍差)
ReLU在經(jīng)歷預(yù)訓(xùn)練和不經(jīng)歷預(yù)訓(xùn)練時的效果差不多,而其它激活函數(shù)在不用預(yù)訓(xùn)練時效果就差多了。ReLU不預(yù)訓(xùn)練和sigmoid預(yù)訓(xùn)練的效果差不多,甚至還更好。
相比之下,ReLU的速度非常快,而且精確度更高。
因此ReLU在深度網(wǎng)絡(luò)中已逐漸取代sigmoid而成為主流。
ReLU導(dǎo)數(shù)(分段):
x <= 0時,導(dǎo)數(shù)為0
x > 0時,導(dǎo)數(shù)為1
早期多層神經(jīng)網(wǎng)絡(luò)如果用sigmoid函數(shù)或者hyperbolic tangent作為激活函數(shù),如果不進行pre-training的話,會因為gradient vanishing problem而無法收斂。
而預(yù)訓(xùn)練的用處:規(guī)則化,防止過擬合;壓縮數(shù)據(jù),去除冗余;強化特征,減小誤差;加快收斂速度。而采用ReLu則不需要進行pre-training。
實踐應(yīng)用
在應(yīng)用中,把除了最外層輸出用的sigmoid函數(shù)的其他所有用到sigmoid函數(shù)的地方全都改為ReLu函數(shù),同時梯度也改為ReLu的,然后把學(xué)習(xí)速率調(diào)低。
轉(zhuǎn)載于:https://www.cnblogs.com/huty/p/8519179.html
總結(jié)
以上是生活随笔為你收集整理的修正线性单元(Rectified linear unit,ReLU)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端 javascript 数据类型 字
- 下一篇: 作业 20180925-1 每周例行报告