定義
所謂啟用函式(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 課程學習筆記 如圖所示,是乙個簡單的三層神經網路,如果只使用線性啟用函式或者恒等啟用函式 不使用啟用函式 那麼神經網路的輸出就只是輸入函式的線性變化,因為線性啟用函式的組合依然是線性啟用函式。這種情況下,不管使用多少...