跳转到内容

梯度消失问题

维基百科,自由的百科全书

梯度消失问题(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].