首页 > 技术文章 > 神经网络中的梯度消失和梯度爆炸问题

liuxgblog 2020-09-15 20:42 原文

深度神经网络中当网络层数过多时会出现一些问题,例如梯度消失(gradient vanishing problem)和梯度爆炸(gradient exploding problem)问题。网络中前层的梯度计算是来自于后面层上梯度的乘积,当存在过多的层次时,就出现了内在本质上的不稳定场景。

神经网络中的激活函数通常使用sigmoid函数

可以看出sigmoid的导数\(\sigma'\left(x\right)\)最大值为\(\frac{1}{4}\),而初始化的网络权值|w|通常都小于1,因此\(|\sigma'\left(z\right)w|\leq\frac{1}{4}\),因此对于上面的链式求导,层数越多,求导结果\(\frac{\partial C}{\partial b_1}\)越小,因而导致梯度消失的情况出现。梯度爆炸问题的出现原因即\(|\sigma'\left(z\right)w|>1\),也就是w比较大的情况。

实际上,梯度爆炸和梯度消失问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的

推荐阅读