ReLU為什麼比Sigmoid效果好

2021-09-06 16:15:40 字數 1562 閱讀 1013

relu為什麼比sigmoid效果好

附:雙曲函式類似於常見的(也叫圓函式的)三角函式。基本雙曲函式是雙曲正弦"sinh",雙曲余弦"cosh",從它們匯出雙曲正切"tanh"

sigmod函式:

relu函式:

綜合:

為什麼通常relu比sigmoid和tanh強,有什麼不同?

1、相比sigmoid和tanh,relu摒棄了複雜的計算(這裡指的是冪運算),提高了運算速度;

2、對於深層的網路而言,sigmoid和tanh函式反向傳播的過程中,飽和區域非常平緩,接近於0,容易出現梯度消失的問題,減緩收斂速度。relu的gradient大多數情況下是常數,有助於解決深層網路的收斂問題。

3、relu會使一部分神經元的輸出為0,這樣就造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合問題的發生

4、relu的另乙個優勢是在生物上的合理性,它是單邊的,相比sigmoid和tanh,更符合生物神經元的特徵。relu更容易學習優化。因為其分段線性性質,導致其前傳,後傳,求導都是分段線性。而傳統的sigmoid函式,由於兩端飽和,在傳播過程中容易丟棄資訊

第乙個問題:為什麼引入非線性激勵函式?

如果不用激勵函式(其實相當於激勵函式是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函式,很容易驗證,無論你神經網路有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(perceptron)了。

正因為上面的原因,我們決定引入非線性函式作為激勵函式,這樣深層神經網路就有意義了(不再是輸入的線性組合,可以逼近任意函式)。最早的想法是sigmoid函式或者tanh函式,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋balabala)。

第二個問題:為什麼引入relu呢?

第一,採用sigmoid等函式,算啟用函式時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大,而採用relu啟用函式,整個過程的計算量節省很多。

第二,對於深層網路,sigmoid函式反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,這種情況會造成資訊丟失),從而無法完成深層網路的訓練。

第三,relu會使一部分神經元的輸出為0,這樣就造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合問題的發生

ReLU為什麼比Sigmoid效果好

附 雙曲函式類似於常見的 也叫圓函式的 三角函式。基本雙曲函式是雙曲正弦 sinh 雙曲余弦 cosh 從它們匯出雙曲正切 tanh sigmod函式 relu函式 綜合 為什麼通常relu比sigmoid和tanh強,有什麼不同?主要是因為它們gradient特性不同。sigmoid和tanh的g...

Sigmoid和Relu啟用函式的對比

深度學習筆記 4 sigmoid和relu啟用函式的對比 relu是乙個非常優秀的啟用哈數,相比較於傳統的sigmoid函式,有三個作用 1.防止梯度瀰散 2.稀疏啟用性 3.加快計算 首先我們看下sigmoid和relu的曲線 然後可以得到sigmoid的導數 以及relu的導數 結論就是sigm...

LR為什麼用sigmoid

轉 一是 sigmod 本身的性質。二是 之所以lr 用sigmod,不是因為lr 選擇了 sigmod 而是用 指數簇分布和 最大熵原理 推導出來的形式,就是這個樣子,後來起名叫sigmod sigmoid 函式 上圖為sigmoid函式的形式 選擇sigmoid 的原因想從兩方面來說 1 sig...