问题
梯度消失无论是笔试还是面试都是常客了,其实对应于梯度消失,还有一个梯度爆炸的概念,这又是什么导致的呢?下面我们将根据公式推导来解释何为梯度消失与梯度爆炸。
梯度消失和梯度爆炸的表现
网络层数越多,模型训练的时候便越容易出现 梯度消失(gradient vanish) 和 梯度爆炸(gradient explod) 这种梯度不稳定的问题。假设现在有一个含有3层隐含层的神经网络:
**梯度消失发生时的表现是:**靠近输出层的 hidden layer 3 的权值更新正常,但是靠近输入层的 hidden layer 1 的权值更新非常慢,导致其权值几乎不变,仍接近于初始化的权值。这就导致 hidden layer 1 相当于只是一个映射层,对所有的输入做了一个函数映射,这时的深度学习网络的学习等价于只有后几层的隐含层网络在学习。
**梯度爆炸发生时的表现是:**当初始的权值太大,靠近输入层的 hidden layer 1 的权值变化比靠近输出层的 hidden layer 3 的权值变化更快。
所以梯度消失和梯度爆炸都是出现在靠近输入层的参数中。
产生梯度消失与梯度爆炸的根本原因
模型的梯度更新是基于反向传播过程。即根据损失函数计算出的误差通过梯度反向传播的方式计算出各层权值的梯度变化,从而进行权值的更新。而这个反向传播的过程使用的是链式求导的规则。网络越深,连乘的项就越多,如果这些连乘项大于或者小于1,就很