1. 程式人生 > >深度學習中的啟用函式Sigmoid和ReLu啟用函式和梯度消失問題。

深度學習中的啟用函式Sigmoid和ReLu啟用函式和梯度消失問題。

1. Sigmoid啟用函式:

           

   Sigmoid啟用函式的缺陷:當 x 取很大的值之後他們對應的 y 值區別不會很大,就會出現梯度消失的問題。因此現在一般都不使用Sigmoid函式,而是使用ReLu啟用函式。

2. ReLu啟用函式:

   

    ReLu啟用函式:當x為負值之後y取0,x為正數之後,y隨x的值得增大而增大,這樣就可以解決梯度消失問題。現在一般都是用ReLu啟用函式。

什麼是梯度消失:


(當x取值越大,它的導數就越接近於0.這樣求不同的網路層引數w對loss的貢獻的時候就會出現梯度消失問題)

      假設 inputer layer 和 hidden layer1 之間的引數為w1 ,layer1和layer2之間的引數為w2,layer2和output layer之間的引數為w3. 對於深度學習來說我們需要做一個求導的操作(反向傳播),需要求w3,w2,w1分別對loss做的了多少貢獻。w1計算對loss的貢獻時需要累乘前面w2和w3的導數,w2就需要累乘w3的導數。假設我們用的是sigmoid啟用函式,假設我們的取值比較大的時候w3,w2,w1的取值在sigmoid函式上面的斜率就趨近於0,這樣當w3,w2, w1相乘就更加趨近於0了就出現了梯度消失的問題。