1. 程式人生 > >深度學習總結(二)——啟用函式的介紹

深度學習總結(二)——啟用函式的介紹

這裡寫圖片描述

1. ReLU函式

用ReLU代替了傳統的Tanh或者Logistic。

優點:

  1. ReLU本質上是分段線性模型,前向計算非常簡單,無需指數之類操作;
  2. ReLU的偏導也很簡單,反向傳播梯度,無需指數或者除法之類操作;ReLU不容易發生梯度發散問題,Tanh和Logistic啟用函式在兩端的時候導數容易趨近於零,多級連乘後梯度更加約等於0;
  3. ReLU關閉了左邊,從而會使得很多的隱層輸出為0,即網路變得稀疏,起到了類似L1的正則化作用,可以在一定程度上緩解過擬合。

缺點:

  1. 比如左邊全部關了很容易導致某些隱藏節點永無翻身之日,所以後來又出現pReLU、random ReLU等改進;
  2. 而且ReLU會很容易改變資料的分佈,因此ReLU後加Batch Normalization也是常用的改進的方法。

2. Sigmoid函式

優點:

  1. 輸出範圍有限,所以資料在傳遞的過程中不容易發散;

缺點:

  1. 飽和的時候梯度太小。
  2. 為了防止飽和,必須對於權重矩陣的初始化特別留意。

3. Tanh函式

優點:

  1. 輸出是零中心的

缺點:

  1. 飽和的時候梯度太小。
  2. 為了防止飽和,必須對於權重矩陣的初始化特別留意。

4. 為什麼RNN選擇Tanh函式?

可以將資料進行壓縮,而且可以保留資料的正負性。

5. 啟用函式的選擇:

  1. sigmoid在壓縮資料幅度方面有優勢,對於深度網路,使用sigmoid可以保證資料幅度不會有問題,這樣資料幅度穩住了就不會出現太大的失誤。
  2. 但是sigmoid存在梯度消失的問題,在反向傳播上有劣勢,所以優化的過程中存在不足。
  3. relu不會對資料做幅度壓縮,所以如果資料的幅度不斷擴張,那麼模型的層數越深,幅度的擴張也會越厲害,最終會影響模型的表現。
  4. 但是relu在反向傳導方面可以很好地將“原汁原味”的梯度傳到後面,這樣在學習的過程中可以更好地發揮出來。