神經網路之啟用函式

2021-09-26 09:45:48 字數 1902 閱讀 2405

定義

所謂啟用函式(activation function),就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端。

判定每個神經元的輸出

通俗來說,啟用函式一般是非線性函式,其作用是能夠給神經網路加入一些非線性因素,使得神經網路可以更好地解決較為複雜的問題。

常見的啟用函式

1.sigmoid

2.tanh

3.relu

4.elu

5.prelu

這裡簡單的對前三個進行介紹

sigmoid 函式的取值範圍在 (0,1) 之間,單調連續,求導容易,一般用於二分類神經網路的輸出層。

sigmoid函式影象如圖

sigmoid函式求導

缺點:

1.sigmoid 函式飽和區範圍廣,容易造成梯度消失

2.引數矩陣 w 的每個元素都會朝著同乙個方向變化,同為正或同為負。這對於神經網路訓練是不利的,所有的 w 都朝著同一符號方向變化會減小訓練速度,增加模型訓練時間。

3.sigmoid 函式包含 exp 指數運算,運算成本也比較大

影象如圖

tanh 函式的取值範圍在 (-1,1) 之間,單調連續,求導容易。

相比於 sigmoid 函式,tanh 函式的優點主要有兩個:

1.其一,收斂速度更快,如下圖所示,tanh 函式線性區斜率較 sigmoid 更大一些。在此區域內訓練速度會更快。

2.其二,tanh 函式輸出均值為零,也就不存在 sigmoid 函式中 dw 恒為正或者恒為負,從而影響訓練速度的問題。

缺點:

tanh 函式與 sigmoid 函式一樣,也存在飽和區梯度消失問題。其飽和區甚至比 sigmoid 還要大一些,但不明顯。

優點:

1.沒有飽和區,不存在梯度消失問題。

2.沒有複雜的指數運算,計算簡單、效率提高。

3.實際收斂速度較快,大約是 sigmoid/tanh 的 6 倍。

4.比 sigmoid 更符合生物學神經啟用機制。

缺點:

1. relu 的輸出仍然是非零對稱的,可能出現 dw 恒為正或者恒為負,從而影響訓練速度。

2. 當 x<0 時,relu 輸出總為零。該神經元輸出為零,則反向傳播時,權重、引數的梯度橫為零,造成權重、引數永遠不會更新,即造成神經元失效,形成了「死神經元」。

1.首選 relu,速度快,但是要注意學習速率的調整,

2.如果 relu 效果欠佳,嘗試使用 leaky relu、elu 或 maxout 等變種。

3.可以嘗試使用 tanh。

4.sigmoid 和 tanh 在 rnn(lstm、注意力機制等)結構中有所應用,作為門控或者概率值。其它情況下,減少 sigmoid 的使用。

5.在淺層神經網路中,選擇使用哪種激勵函式影響不大。

神經網路之啟用函式

前面的部落格啟用函式簡要的了解了一下什麼是啟用函式,現在在正則化和神經網路模組化中突然遇到了啟用函式,所以下面主要講解一下我對啟用函式的理解 def forward x,regularizer 前向傳播 w1 get weight 2,11 regularizer 設定權重 b1 get bias ...

神經網路啟用函式

2018,jul 23 學了深度學習也快近一年了,在學deep learning的時候什麼教程都去看,起初學起來也特別的雜亂,前面的基礎沒弄懂還一直往下學,自然導致我學到後面的時候有點崩潰什麼都看不懂,並且因為自己還是一名在校生,平常課程也非常多,沒有乙個連續的學習時間也導致我的學習是斷斷續續,在學...

啟用函式 神經網路

andrew的 neural networks and deep learning 課程學習筆記 如圖所示,是乙個簡單的三層神經網路,如果只使用線性啟用函式或者恒等啟用函式 不使用啟用函式 那麼神經網路的輸出就只是輸入函式的線性變化,因為線性啟用函式的組合依然是線性啟用函式。這種情況下,不管使用多少...