深度學習筆記 深入理解啟用函式

2021-10-07 11:49:49 字數 1217 閱讀 2897

四、小結&建議

本文將圍繞啟用函式的定義、作用、分類、函式影象、導數影象(梯度)、及啟用函式各自的優缺點等等方面展開敘述。

神經網路中的每個神經元節點接受上一層神經元的輸出值作為本神經元的輸入值,並將輸入值傳遞給下一層,輸入層神經元節點會將輸入屬性值直接傳遞給下一層(隱層或輸出層)。在多層神經網路中,上層節點的輸出和下層節點的輸入之間具有乙個函式關係,這個函式稱為啟用函式。

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

正因為上面的原因,我們決定引入非線性函式作為啟用函式,這樣深層神經網路表達能力就更加強大(不再是輸入的線性組合,而是幾乎可以逼近任意函式)。

深度神經網路中常用的啟用函式有:

(1)啟用函式(非線性對映函式)對向深度網路模型引入非線性而產生強大的表示能力功不可沒;

(2)sigmoid型函式是歷史上最早的啟用函式之一,但它與 tanh(x) 型函式一樣會產生梯度飽和效應,因此在實踐中不建議使用;

(3)深度學習往往需要大量時間來處理大量資料,模型的收斂速度是尤為重要的。所以,總體上來講,訓練深度學習網路盡量使用zero-centered資料 (可以經過資料預處理實現) 和zero-centered輸出。所以要盡量選擇輸出具有zero-centered特點的啟用函式以加快模型的收斂速度。

(4)建議首先使用目前最常用的 relu,那麼一定要注意模型引數的初始化 和 小心設定 learning rate,而且要注意不要讓網路出現很多 「dead」 神經元,如果這個問題不好解決,那麼可以試試 leaky relu、prelu 或者 maxout。

(5)為了進一步提公升模型精度,可以嘗試 leaky relu、prelu、rrelu 和 elu。但四者之間的實際效能優劣並無一致性的結論,需要具體問題具體分析,也就是只有自己做了實驗才知道效果好不好!!!別光聽別人說,做了實驗才知道!!!

(6)最好不要用 sigmoid,可以試試 tanh,不過可以預期它的效果會比不上 relu 和 maxout。

(7)通常來說,不能把各種啟用函式串起來在乙個網路中使用。

深入理解啟用函式

說起神經網路肯定會降到神經函式,看了很多資料,也許你對啟用函式這個名詞會感覺很困惑,它為什麼叫啟用函式?它有什麼作用呢?看了很多書籍上的講解說會讓神經網路變成很豐富的演算法,還有的會說讓神經網路的表達能力更強大了,是不是很籠統,看到這些不要煩躁,要有耐心。國內學習深度學習,我看多最好的課程,能看的明...

深度學習入門與深入理解

深度學習入門之一 深度學習引言 深度學習入門之二 神經網路基礎 深度學習入門之三 求導和計算圖 深度學習入門之四 向量化 深度學習入門之五 神經網路的程式設計基礎 深度學習入門之六 淺層神經網路 深度學習入門之七 深層神經網路 深度學習入門之八 深層神經網路原理 深度學習入門之九 深度學習資料處理 ...

深入理解函式

第五章 深入理解函式 1.return語句 有返回值的函式中,return語句的作用式提供整個函式的返回值,並結束當前函式返回到呼叫它的地方。在沒有返回值的函式中也可以使用return語句,例如當前檢查到乙個錯誤時提前結束當前函式的執行並返回 這個函式首先檢查引數x是否大於0,如果x不大於0就列印錯...