梯度消失問題

維基百科,自由的百科全書
跳至導覽 跳至搜尋

梯度消失問題(Vanishing gradient problem)是一種機器學習中的難題,出現在以梯度下降法反向傳播訓練人工神經網絡的時候。在每次訓練的疊代中,神經網絡權重的更新值與誤差函數偏導數成比例,然而在某些情況下,梯度值會幾乎消失,使得權重無法得到有效更新,甚至神經網絡可能完全無法繼續訓練。舉個例子來說明問題起因,一個傳統的激活函數雙曲正切函數,其梯度值在 (-1, 1)範圍內,反向傳播以鏈式法則來計算梯度。

這樣做的效果,相當於在n層網絡中,將n個這些小數字相乘來計算「前端」層的梯度,這就使梯度(誤差信號)隨著n呈指數遞減,導致前端層的訓練非常緩慢。

反向傳播使研究人員從頭開始訓練監督式深度人工神經網絡,最初收效甚微。 1991年賽普·霍克賴特(Hochreiter)的畢業論文[1][2]正式確認了「梯度消失問題」失敗的原因。梯度消失問題不僅影響多層前饋網絡[3]還影響循環網絡[4]循環網絡是通過將前饋網絡深度展開來訓練,在網絡處理的輸入序列的每個時間步驟中,都會產生一個新的層。

當所使用的激活函數之導數可以取較大值時,則可能會遇到相關的梯度爆炸問題(exploding gradient problem)

解決方案[編輯]

多級層次結構[編輯]

長短期記憶[編輯]

更快的硬體[編輯]

殘差網絡(Residual Networks,ResNets)[編輯]

其他的激活函數[編輯]

其他[編輯]

參考文獻[編輯]

  1. ^ S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich, 1991.
  2. ^ S. Hochreiter, Y. Bengio, P. Frasconi, and J. Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies. In S. C. Kremer and J. F. Kolen, editors, A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001.
  3. ^ Goh, Garrett B.; Hodas, Nathan O.; Vishnu, Abhinav. Deep learning for computational chemistry. Journal of Computational Chemistry. 2017-06-15, 38 (16): 1291–1307. PMID 28272810. arXiv:1701.04503. doi:10.1002/jcc.24764 (英語). 
  4. ^ Pascanu, Razvan; Mikolov, Tomas; Bengio, Yoshua. On the difficulty of training Recurrent Neural Networks. 2012-11-21. arXiv:1211.5063 [cs.LG].