當前位置:吉日网官网 - 傳統文化 - 激活函數 sigmoid、tanh、relu

激活函數 sigmoid、tanh、relu

激活函數(activation functions)的目標是,將神經網絡非線性化。激活函數是連續的(continuous),且可導的(differential)。

常見的激活函數:sigmoid,tanh,relu。

sigmoid是平滑(smoothened)的階梯函數(step function),可導(differentiable)。sigmoid可以將任何值轉換為0~1概率,用於二分類。細節可以 參考 。

公式:

導數:

導數2:

圖(紅色原函數,藍色導函數):

當使用sigmoid作為激活函數時,隨著神經網絡隱含層(hidden layer)層數的增加,訓練誤差反而加大。表現為:

這種現象就是梯度彌散(vanishing gradient)。而另壹種情況,梯度爆炸(exploding gradient),則是前面層的梯度,通過訓練變大,導致後面層的梯度,以指數級增大。

由於sigmoid的導數值小於1/4,x變化的速率要快於y變化的速率,隨著層數的增加,連續不斷執行sigmoid函數,就會導致,前面更新較大的幅度,後面更新較小的幅度,因此,網絡在學習過程中,更傾向於,更新後面(靠近輸出層)的參數,而不是前面的參數(靠近輸入層)。

sigmoid缺點:

參考1 、 參考2

tanh,即雙曲正切(hyperbolic tangent),類似於幅度增大sigmoid,將輸入值轉換為-1至1之間。tanh的導數取值範圍在0至1之間,優於sigmoid的0至1/4,在壹定程度上,減輕了梯度消失的問題。tanh的輸出和輸入能夠保持非線性單調上升和下降關系,符合BP(back propagation)網絡的梯度求解,容錯性好,有界。

公式:

導數:

圖(紅色原函數,藍色導函數):

sigmoid和tanh:

參考1 、 參考2 、 參考3

relu,即Rectified Linear Unit,整流線性單元,激活部分神經元,增加稀疏性,當x小於0時,輸出值為0,當x大於0時,輸出值為x.

公式:

圖:

導數:

圖:

relu對比於sigmoid:

relu的缺點:

在訓練的時候,ReLU單元比較脆弱並且可能“死掉”。舉例來說,當壹個很大的梯度,流過ReLU的神經元的時候,可能會導致梯度更新到壹種特別的狀態,在這種狀態下神經元將無法被其他任何數據點再次激活。如果這種情況發生,那麽從此所以流過這個神經元的梯度將都變成0。也就是說,這個ReLU單元在訓練中將不可逆轉的死亡,因為這導致了數據多樣化的丟失。

如果學習率設置得太高,可能會發現網絡中40%的神經元都會死掉(在整個訓練集中這些神經元都不會被激活)。通過合理設置學習率,這種情況的發生概率會降低。

在神經網絡中,隱含層的激活函數,最好選擇ReLU。

關於RNN中為什麽選擇tanh,而不是relu, 參考 。

  • 上一篇:湛江紅土文化的傳統藝術
  • 下一篇:煙臺白酒推薦什麽?
  • copyright 2024吉日网官网