修正線性單元(Rectified linear unit,ReLU)
修正線性單元(Rectified linear unit,ReLU)
Rectified linear unit
在神經網路中,常用到的啟用函式有sigmoid函式
它的特點是被認為是more biologically plausible than widely used logistic sigmoid or hyperbolic tangent(雙曲正切 tanh),就是說更加符合神經元訊號激勵原理。採用了rectified linear function作為activation function的unit被稱為rectified linear unit。它的一個平滑解析函式為
the softmax function常被用來various probabilistic multiclass classification methods 比如multinomial logistic regression,multiclass linear discriminant analysis, naive Bayes classifiers and artificial neural networks等。在Andrew Ng的機器學習課程中,softmax regression中就用到了softmax function。這裡點一下說明。當然本文的重點還是在rectified linear function上。
有幾種變體:
noisy ReLUs
可將其包含Gaussian noise得到noisy ReLUs,
leaky ReLUs
允許小的非零的gradient 當unit沒有被啟用時。
Advantages
- Biological plausibility:單邊,相比於反對稱結構(antisymmetry)的tanh
- Sparse activation:基本上隨機初始化的網路,只有有一半隱含層是處於啟用狀態,其餘都是輸出為0
- efficient gradient propagation:不像sigmoid那樣出現梯度消失的問題
- efficient computation:只需比較、乘加運算。
使用rectifier 作為非線性啟用函式使得深度網路學習不需要pre-training,在大、複雜的資料上,相比於sigmoid函式等更加快速和更有效率。
標準的sigmoid輸出不具備稀疏性,需要通過懲罰因子來訓練一堆接近於0的冗餘資料,從而產生稀疏資料,比如L1,L2或者student-t作為懲罰因子,進行regularization。而ReLU為線性修正,是purelin的折線版,作用是如果計算輸出小於0,就讓它等於0,否則保持原來的值,這是一種簡單粗暴地強制某些資料為0的方法,然而經實踐證明,訓練後的網路完全具備適度的稀疏性,而且訓練後的視覺化效果和傳統pre-training的效果很相似。這說明了ReLU具備引導適度稀疏的能力。
從函式圖形上看,ReLU比sigmoid更接近生物學的啟用模型。
實際測量資料:縱座標軸是神經元的放電速率(Firing Rate);橫軸是毫秒(ms)
基於生物學的數學規則化啟用模型(LIF)
(Softplus是ReLU的圓滑版,公式為:g(x)=log(1+e^x),從上面的結果看,效果比ReLU稍差)
ReLU在經歷預訓練和不經歷預訓練時的效果差不多,而其它啟用函式在不用預訓練時效果就差多了。ReLU不預訓練和sigmoid預訓練的效果差不多,甚至還更好。
相比之下,ReLU的速度非常快,而且精確度更高。
因此ReLU在深度網路中已逐漸取代sigmoid而成為主流。
ReLU導數(分段):
x <= 0時,導數為0
x > 0時,導數為1
早期多層神經網路如果用sigmoid函式或者hyperbolic tangent作為啟用函式,如果不進行pre-training的話,會因為gradient vanishing problem而無法收斂。
而預訓練的用處:規則化,防止過擬合;壓縮資料,去除冗餘;強化特徵,減小誤差;加快收斂速度。而採用ReLu則不需要進行pre-training。
實踐應用
在應用中,把除了最外層輸出用的sigmoid函式的其他所有用到sigmoid函式的地方全都改為ReLu函式,同時梯度也改為ReLu的,然後把學習速率調低。