預訓練的用處:規則化,防止過擬合;壓縮數據,去除冗余;強化特征,減小誤差;加快收斂速度。
標准的sigmoid輸出不具備稀疏性,需要用一些懲罰因子來訓練出一大堆接近0的冗余數據來,從而產生稀疏數據,例如L1、L1/L2或Student-t作懲罰因子。因此需要進行無監督的預訓練。
而ReLU是線性修正,公式為:g(x) = max(0, x),是purelin的折線版。它的作用是如果計算出的值小於0,就讓它等於0,否則保持原來的值不變。這是一種簡單粗暴地強制某些數據為0的方法,然而經實踐證明,訓練后的網絡完全具備適度的稀疏性。而且訓練后的可視化效果和傳統方式預訓練出的效果很相似,這也說明了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
softplus的導數剛好是sigmoid:
g'(x) = e^x/(e^x+1) = 1/(1+e^-x)

(Softplus是ReLU的圓滑版,公式為:g(x)=log(1+e^x),從上面的結果看,效果比ReLU稍差)
ReLU在經歷預訓練和不經歷預訓練時的效果差不多,而其它激活函數在不用預訓練時效果就差多了。ReLU不預訓練和sigmoid預訓練的效果差不多,甚至還更好。
相比之下,ReLU的速度非常快,而且精確度更高。
因此ReLU在深度網絡中已逐漸取代sigmoid而成為主流。
ReLU導數(分段):
x <= 0時,導數為0
x > 0時,導數為1
softplus的導數剛好是sigmoid:
g'(x) = e^x/(e^x+1) = 1/(1+e^-x)