relu的全稱是rectified layer units,它是一層使用非飽和啟用函式的神經元。神經網路通常使用sigmoid 和 tanh 作為非線性啟用函式,它確實比早期的線性啟用函式有好的多的效果。但在深度神經網路中,如果不使用pre-traning,會導致gradient vanishing problem (梯度消失,無法收斂)。後來,兩位神經學家從腦神經元接收訊號的角度考慮,模擬出了更精確的啟用函式模型,就是relu啟用函式:
還有一種relu的平滑版本,叫做softplus:
這個是不是很眼熟啊?
relu啟用函式主要有以下兩個特點:
1.
單側抑制
2.稀疏啟用性 (
x負軸完全沒有啟用)「
在神經科學方面,除了新的啟用頻率函式之外,神經科學家還發現了神經元的稀疏啟用性。
2023年,attwell等人基於大腦能量消耗的觀察學習上,推測神經元編碼工作方式具有稀疏性和分布性。
2023年,lennie等人估測大腦同時被啟用的神經元只有1~4%,進一步表明神經元工作的稀疏性。
從訊號方面來看,即神經元同時只對輸入訊號的少部分選擇性響應,大量訊號被刻意的遮蔽了,這樣可以提高學習的精度,更好更快地提取稀疏特徵。
從這個角度來看,在經驗規則的初始化w之後,傳統的sigmoid系函式同時近乎有一半的神經元被啟用,這不符合神經科學的研究,而且會給深度網路訓練帶來巨大問題。
softplus照顧到了新模型的前兩點,卻沒有稀疏啟用性。因而,校正函式max(0,x)
成了近似符合該模型的最大贏家。」
深度神經網路的致命問題就是gradient vanishing。上面說到在多層神經網路中使用sigmoid函式會導致梯度消失,無法收斂。原因就是,當神經網路進行誤差反向傳播梯度時,各層都要乘以啟用函式的一階導數 g
rad = er
ror*s
igmo
id』(x
)*x,
顯而易見,經過每一層,error都是成指數衰減,一旦神經網路層數太多的時候,梯度就會不停衰減直至消失,高層(靠近輸出層)訓練的比較好,而低層(靠近輸入層)幾乎由於梯度消失無法訓練。神經網路的正向傳播又是從低層開始的,高層再怎麼訓練也會被低層搞亂,使得低層學不動,高層在亂學,導致整個網路退化。
而relu啟用函式的梯度為1,而且只有在x右半軸才飽和,這樣使梯度可以很好的反向傳播中傳遞,不但提高了網路的訓練速度也避免了因為梯度消失導致的網路退化。
relu的使用,使網路引入了稀疏性並且大大縮短了學習週期,deep learning中大部分啟用函式都應該選擇relu。在theano中,可以直接使用t.maximum(0,x)來實現( 用t.max(0,x)不能求導)。
其實dropout是一種特殊的正則化方法,不像l1和l2(兩種通用正則化方法),它不用依靠修正cost function來實現,它直接修正神經網路本身。
dropout的工作原理,簡而言之就是隨機的不讓神經網路中某些神經元啟用,可以理解成這些神經元暫時(臨時)不屬於網路結構中的一部分,但是該神經元的引數依舊要儲存下來,因為下一次該神經元有可能是啟用狀態。下圖形象對比了有無dropout的情況。
我們可以自由的去選擇禁止啟用神經元的數量,70%,50%,30%等等,上圖的dropout禁止的數量是當前層神經元數目的1/3。
dropout可以看作是平均模型的一種(一種in place平均,當取50%時),它在深度神經網路中有很好的泛化能力,
可以有效的減少overfitting。
原文發於部落格
:gmx 2015.10.16 us pacific time
神奇的卷積神經網路 一
卷積神經網路是一種特殊的多層神經網路,它是deep learning中的乙個演算法,現在主要應用在影象處理領域中。既然說它是deep learning中的乙個演算法,那麼就需要有大量的資料來支援,作為乙個深度的神經網路,引數動輒百萬以上,如果樣本數過小很容易造成overfitting。卷積神經網路可...
神奇的卷積神經網路 二
上篇,我們介紹了卷積神經網路的兩大殺器 區域性感知野 和 權值共享。這篇我將會繼續介紹卷積神經網路的結構 多卷積核 和 池化。在說到權值共享的時候,我們說到乙個卷積核 濾波器 肯定是無法充分的提取影象中的特徵。那麼怎麼辦呢?乙個卷積核可以提取一種特徵,我們可以很自然的想到多個卷積核就可以提取多種特徵...
卷積神經網路 四
relu的全稱是rectified layer units,它是一層使用非飽和啟用函式的神經元。神經網路通常使用sigmoid 和 tanh 作為非線性啟用函式,它確實比早期的線性啟用函式有好的多的效果。但在深度神經網路中,如果不使用pre traning,會導致gradient vanishing...