【神经网络】LSTM为什么能缓解梯度消失

1.LSTM的结构

        我们先来看一下LSTM的计算公式:

【神经网络】LSTM为什么能缓解梯度消失_第1张图片

1.遗忘门:

2.输入门:

3.细胞状态

4.输出门

 2.LSTM的梯度路径

        根据LSTM的计算公式,可以得出LSTM的cell state与f_{t}\tilde{C_{t}}i_{t}都存在计算关系,而f_{t}\tilde{C_{t}}i_{t}的计算公式又全部都与C_{t-1}有关,所以从C_{t}C_{t-1}的反向传播的公式如下:

【神经网络】LSTM为什么能缓解梯度消失_第2张图片

         由LSTM各个门的计算公式可以进一步推导得到:

【神经网络】LSTM为什么能缓解梯度消失_第3张图片

         根据公式,如果要计算时刻k的,简单的利用上式进行乘t-k+1次即可。在公式中的f_{t},也就是遗忘门可以控制\frac{\partial C_{t}}{\partial C_{t-1}}的值。由于\frac{\partial C_{t}}{\partial C_{t-1}}的值也与f_{t}前面三项值有关,所以\frac{\partial C_{t}}{\partial C_{t-1}}的值不一定局限于[0,1],也有可能是大于1的,所以在一定程度上减缓了梯度消失。从计算公式角度来看,f_{t}i_{t}o_{t}\tilde{C_{t}}都是LSTM学习得到的,LSTM会通过学习改变门控的值来决定什么时候遗忘梯度,什么时候保留梯度,即依靠学习得到权值去控制依赖的长度。

3.总结

        总结起来,LSTM能缓解梯度消失,其实主要是以下两点的结果:

        1.cell状态的加法更新策略使得梯度传递更恰当,使得梯度更新有可能大于1。

        2.门控单元可以决定遗忘多少梯度,他们可以在不同的时刻取不同的值。这些值都是通过隐层状态和输入的数据学习到的。

Reference:

        1.https://www.zhihu.com/question/34878706/answer/665429718

        2.通俗易懂的LSTM_长竹Danko的博客-CSDN博客

你可能感兴趣的:(深度学习,神经网络,lstm,深度学习)