课程主页:https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/

视频地址:https://www.bilibili.com/video/av46216519?from=search&seid=13229282510647565239

这里回顾CS224N Lecture 7的课程内容,这一讲介绍了梯度消失以及梯度爆炸的问题,GRU以及LSTM。

Vanishing Gradient and Gradient Explosion Problems

回顾梯度计算公式

由链式法则不难得到

上式中最难计算的是$ \frac{\partial h_{t}}{\partial h_{k}}$,注意到

其中

上述等式中省略了下标。

结合以上几个式子可得

利用范数不等式可得

其中$\beta_W,\beta_h$分别表示$W^T,\operatorname{diag} [f^{\prime}\left(h_{j-1}\right)]$的范数上限,从而

所以如果$\beta_{W} \beta_{h}<1$,那么梯度的范数就会非常小,从而产生梯度消失的问题。

在实际中,也会产生梯度爆炸的问题,该问题的解决方式较为简单,只要将梯度按比例缩小即可:

Deep Bidirectional RNNs

之前介绍的RNN是单向的,这里介绍双向RNN:

计算公式如下

将双向RNN堆叠起来即可得到Deep Bidirectional RNN:

计算公式和双向RNN非常接近:

为了解决梯度消失或者梯度爆炸的问题,人们提出了一些结构,其中最常见的为GRU和LSTM。

Gated Recurrent Units(GRU)

图示如下:

Long-Short-Term-Memories

图示如下: