Activation funcation 啟用函式
啟用函式將神經網路最後一層輸出當做輸入,進行轉換。也用於神經網路兩層之間。
那麼在神經網路為什麼要使啟用函式?
比如在邏輯迴歸中,用於將輸出轉換為0/1進行分類。在神經網路中用於確定輸出是yes/no。或者將輸出對映到某一個範圍之間,比如手寫數字識別中,將輸出對映到0--9之間。
啟用函式一般分類兩類:線性和非線性
線性或恆等啟用函式

非線性啟用函式

下面介紹幾種常見的啟用函式:
sigmoid 函式

- 當輸入過大過小時, 梯度接近0.因此初始值很大時,神經元梯度會消失,加大訓練難度。
- 該函式輸出的均值不為0。因此後一層神經元將上一層的非0輸出作為訊號輸入,梯度始終為正。
Tanh 雙曲正弦啟用函式

Relu(線性整流)啟用函式

- 收斂速度相比於sigmoid和Tanh要快很多
- 相比於sigmoid和Tanh, 由於函式特性,只需要一個閾值就能得到啟用值 同時也有缺點,比如一個非常大的梯度流過一個Relu神經元時, 更新引數以後,由於啟用值太大, 導致對後面的資料啟用困難。
Softmax 啟用函式

softmax用於多分類過程中,它將多個神經元的輸出,對映到(0,1)區間內,可以看成概率來理解,從而來進行多分類!
上述中為什麼會提到導數或者可微: 當在梯度下降中更新梯度時,需要知道曲線的斜率,並進行更新,因為這是下降最快的方向。因此在神經網路中需要使用到啟用函式的導數。