cs224n---lecture8: RNN

附一个不错的资料:https://blog.csdn.net/apsvvfb/article/details/52848554
https://www.toutiao.com/i6491156699737489933/?group_id=6491156699737489933&group_flags=0

首先通过一个例子说一下语言模型:
这里写图片描述

RNN优点:

  1. 可以处理任意长度的输入
  2. weights在所有时刻都是共享的
  3. 可以利用前面时刻的信息

RNN缺点:
1. 耗时,无法并行
2. 实际中,很难利用前面很远时刻的信息

这里写图片描述

RNN公式:
h t = t a n h ( W h h t 1 + W e e t + b 1 )
o t = s o f t m a x ( U h t + b 2 )
其中, W h , W e , b 1 , U , b 2 只有一套。

RNN可能会遭遇梯度消失或梯度爆炸问题:
E W = 1 . . . T E t W
其中
E t W = 1 . . . t E t o t o t h t h t h k h k W
其中
h t h k 可以很大或很小。注意到 h j h j 1 是向量对向量求导,结果是一个Jacobian矩阵,矩阵元素是每个点的导数。
这里写图片描述

对于梯度爆炸,使用Gradient clipping。
这里写图片描述

对于梯度消失,可以选择好的初始化,使用Relu激活函数。但是主要的方法还是使用GRU和LSTM。

猜你喜欢

转载自blog.csdn.net/yqmind/article/details/81226127
RNN