[DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN
5.1循环序列模型
觉得有用的话,欢迎一起讨论相互学习~
1.10长短期记忆网络(Long short term memory)LSTM
Hochreiter S, Schmidhuber J. Long Short-Term Memory[J]. Neural Computation, 1997, 9(8):1735-1780.
门控循环神经网络单元GRU
长短期记忆网络LSTM
- 记忆细胞更新:
\[\breve{C}^{<t>}=tanh(W_c[a^{<t-1>},x^{<t>}]+b_c)
\]
- 更新门:
\[\gamma_u=\sigma(W_u[a^{<t-1>},x^{<t>}]+b_{u})
\]
- 遗忘门--遗忘门在GRU中相当于\((1-\gamma_u)\),在LSTM中使用专用的\(\gamma_f\)代替:
\[\gamma_f=\sigma(W_f[a^{<t-1>},x^{<t>}]+b_{f})
\]
- 输出门:
\[\gamma_o=\sigma(W_o[a^{<t-1>},x^{<t>}]+b_{o})
\]
- 记忆细胞:
\[c^{<t>}=\gamma_u * \breve{c}^{<t>} + \gamma_f * c^{<t-1>}
\]
-
\[a^{<t>}=\gamma_o * tanh(c^{<t>}) \]
1.11双向神经网络Bidirectional RNN
- 这个模型可以让你在序列的某处不仅可以获取之前的信息,还可以获取未来的信息
- 在这个句子中,根据原始的模型,并不能区别泰迪熊和美国前总统泰迪的区别。必须要使用到Teddy词后的信息才能识别出Teddy的意义。无论这些单元是标准的RNN块还是GRU单元或者是LSTM单元,前向的结构都不能够识别出Teddy的意义。
- 双向神经网络结构如下图所示:
这样的网络构成了一个无环图,其中信息的流向,如下动图中显示:
1.12深层循环神经网络Deepl RNNs
- 通过计算\(a^{[2]<3>}\)的值来了解RNN的计算过程,\(a^{[2]<3>}\)有两个输入,一个是从下面传上来的\(a^{[1]<3>}\),一个是从左边传进来的输入\(a^{[2]<2>}\)
\[a^{[2]<3>}=g(W_a^{[2]}[a^{[2]<2>},a^{[1]<3>}]+b_a^{[2]})
\]
- 对于普通的神经网络,也许可以经常看见100层神经网络,但是对于RNN来说,有三层就已经有很多参数了,因为有时间的维度,RNN会变得相当大,一般很少会看见RNN堆叠到很深的层次。
- 但是深层次的预测却经常见到,即第三层的输出会连接上更深的层,但是水平方向上却不相连