cs224n---lecture8: RNN

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

首先通过一个例子说一下语言模型:
cs224n---lecture8: RNN

RNN优点:

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

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

cs224n---lecture8: RNN

RNN公式:
ht=tanh(Whht1+Weet+b1)
ot=softmax(Uht+b2)
其中,Wh,We,b1,U,b2只有一套。

RNN可能会遭遇梯度消失或梯度爆炸问题:
EW=1...TEtW
其中
EtW=1...tEtotothththkhkW
其中
hthk 可以很大或很小。注意到hjhj1是向量对向量求导,结果是一个Jacobian矩阵,矩阵元素是每个点的导数。
cs224n---lecture8: RNN

对于梯度爆炸,使用Gradient clipping。
cs224n---lecture8: RNN

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